Suite

Moyenne zonale pondérée par la distance du point


J'utilise ArcGIS 10.2. J'ai une couche vectorielle avec des points, qui représentent des maisons et une couche raster avec des valeurs de 0 ou 1, selon un certain seuil. Dans une zone tampon de 5 km autour de chacune de ces maisons je veux calculer le nombre moyen de points raster au-dessus d'un certain seuil (valeur=1), pondéré en fonction de la distance au carré de la maison.

Sans la pondération, ce serait assez simple : je ferais de manière itérative des tampons autour de la maison (pour avoir des tampons qui ne se dissolvent pas) puis utiliserais la commande 'statistiques zonales comme table'. Maintenant, la pondération le complique.

J'ai essayé la procédure suivante (itération maison par maison dans un modèle, voir ci-dessous) : d'abord rastériser les maisons (pointer sur raster) puis calculer la distance euclidienne, puis utiliser la calculatrice raster pour prendre le carré de la distance et diviser mon raster avec seuils par le raster avec des distances au carré. En attendant, je crée des tampons autour des maisons, pixellise ces tampons, puis lance une commande de statistiques zonales sous forme de table pour obtenir les statistiques de la sortie de ma deuxième rastérisation dans les 5000 km. Enfin, j'utilise la commande append pour créer une seule table pour toutes les maisons.

Maintenant, j'ai deux questions :

1) Est-ce une bonne approche ou est-ce que je me trompe fondamentalement quelque part ?

2) L'analyse semble bien fonctionner, mais j'obtiens des résultats étranges pour certaines maisons (par exemple une valeur maximale de 5 pour une maison). De plus, si je suis chacune des étapes précédentes sans modèle (manuellement) pour certaines maisons, j'obtiens des résultats différents. Je ne comprends pas pourquoi.

Quelqu'un pourrait-il m'aider?


Merci whuber, ça m'a aidé.

J'ai créé un fichier ascii pour définir les poids, puis j'ai exécuté une moyenne focale pondérée. Parce que cela n'a pas fonctionné dans ArcGIS (il semblait y avoir un problème avec mon fichier txt), j'ai exécuté l'ensemble du processus dans QGIS (où le même fichier txt fonctionnait bien).

J'ai donc utilisé la commande r.neighbors, qui est l'équivalent QGIS de la commande focal mean dans ArcGIS. Ensuite, j'ai utilisé la commande "Ajouter des valeurs de grille au point" et cela a bien fonctionné. Aucune itération ou modèle n'est plus nécessaire.


Alors laissez-moi comprendre…

  1. Quel que soit le scénario, vous parcourez toute la chaîne pour chaque village individuellement ?
  2. Vous dites que cela fonctionne la plupart du temps mais qu'il a parfois des valeurs étranges ?
  3. Que vous obteniez des résultats «différents» lorsque vous l'exécutez manuellement…

Difficile à dire… Je parcourrais 2-3 itérations et enregistrerais toutes les sorties intermédiaires et vérifierais que chaque étape fait exactement ce que vous pensez qu'elle est. Pour les lignes avec des valeurs étranges, essayez de vous concentrer sur celles-ci. Un domaine à rechercher qui me fait souvent trébucher… assurez-vous que toute opération de calculatrice raster s'exécute dans le type de données que vous pensez qu'elle devrait… flottant ou entier.


Il s'agit d'une opération simple et unique, ne nécessitant aucune itération ou modèle compliqué. Vous demandez les valeurs d'une moyenne focale pondérée de la couche raster. Pour le réaliser, vous définissez d'abord un quartier pondéré dans lequel vous placez les poids basés sur la distance (quels qu'ils soient). En utilisant ce voisinage, vous demandez une moyenne focale. Lorsque cette opération est terminée - elle a tendance à être rapide - vous n'avez alors qu'à extraire ses valeurs aux points de la maison, ce qui peut être fait de plusieurs manières simples.