L'Inverse de la Distance Pondérée (IDW) Interpolation avec Python

La Question:
Quelle est la meilleure façon de calculer l'inverse de la distance pondérée (IDW) interpolation en Python, pour les emplacements des points?

Un Peu De Contexte:
Actuellement, je suis en utilisant RPy2 à l'interface avec la R et ses gstat module. Malheureusement, la gstat module de conflits avec arcgisscripting laquelle je suis arrivé en cours d'exécution RPy2 une analyse fondée sur un processus distinct. Même si ce problème est résolu dans un récent/version future, et d'améliorer l'efficacité, je voudrais encore supprimer mon dépendance sur l'installation de R.

La gstat site web fournit un seul exécutable, qui est plus facile à forfait avec mon script python, mais j'ai encore de l'espoir pour un Python solution qui ne nécessite pas de multiples écritures sur le disque et le lancement d'un processus externe. Le nombre d'appels à la fonction d'interpolation, des ensembles de points et de valeurs, peut approcher 20 000, le traitement que j'effectue.

J'ai précisément besoin pour interpoler des points, donc à l'aide de l'IDW fonction dans ArcGIS pour générer des trames de sons encore pire qu'à l'aide de R, en termes de performances.....à moins qu'il y est un moyen efficace de masque seulement les points dont j'ai besoin. Même avec cette modification, je ne m'attends pas à des performances à être tout ce que beaucoup. Je vais examiner cette option comme une autre alternative. Mise à JOUR: Le problème ici c'est que vous êtes lié à la taille de la cellule que vous utilisez. Si vous réduisez la cellule de taille pour obtenir une meilleure précision, le traitement prend beaucoup de temps. Vous devez également suivi par l'extraction par des points.....sur tous une méthode laide si vous souhaitez que les valeurs pour des points spécifiques.

J'ai regardé le scipy documentation, mais il n'a pas l'air comme il est simple de calculer IDW.

Je pense que je vais rouler ma propre mise en œuvre, éventuellement à l'aide de certaines scipy de la fonctionnalité localiser les points les plus proches et le calcul des distances.

Ai-je raté quelque chose d'évident? Est-il un module python je n'ai pas vu qui fait exactement ce que je veux? Est la création de mon propre mise en œuvre avec l'aide de scipy un choix judicieux?

InformationsquelleAutor M J | 2010-06-23