Extraire tous les points à une certaine distance et différence de hauteur d'un raster


11

J'ai un raster contenant des dizaines de millions de points, tous avec des données X, Y et Z définies. J'ai besoin de trouver un moyen simple d'extraire et de créer un nouveau raster ou vecteur avec TOUS les points à une distance de 720 m les uns des autres (X, Y) et à 120 m de dénivelé (Z) les uns des autres.

J'ai une connaissance ZÉRO de SQL et Python. J'ai essayé de le faire sur VBA et j'ai proposé quelques algorithmes, mais le temps de traitement est déraisonnable et irréaliste. Je suis sûr qu'il doit y avoir une approche SIG simple pour y parvenir, mais ne semble pas pouvoir la trouver.

J'utilise ArcMap.


J'utilise ArcMap. Merci pour votre commentaire. Je vais également le changer dans la question d'origine :).
user32882

Vous dites 720m à l'horizontale et 120m à la verticale mais d'où? On dirait que vous avez une sorte de nuage de points, mais vous pouvez rechercher des points qui remplissent pleinement vos critères à partir de n'importe quel emplacement dans ce nuage. Vous devez sûrement avoir une sorte d'emplacement de semences ou un autre critère que vous n'avez pas mentionné, comme maximiser le nombre de points qui remplissent pleinement les critères?
Hornbydd

Comme je l'ai dit, j'essaie "d'extraire TOUS les points à une distance de 720 m les uns des autres (X, Y) et à 120 m de dénivelé (Z) les uns des autres". Il n'y a pas de "position de départ", je scanne TOUS les points.
user32882

L'un des plus grands défis que j'envisage avec cela est la façon dont le résultat est présenté. Serait-il acceptable d'avoir un résultat raster dans lequel 0= n'a aucun point à 720 m et ± 120 m d'altitude, 1= un ou plusieurs points à 720 m et ± 120 m d'altitude? Ou, devez-vous compter combien de points répondraient aux critères?
Erica

Chère Erica, Le premier choix serait plus qu'acceptable. Je n'ai pas besoin de compter le nombre de points qui répondent à ces critères, mais je dois pouvoir les voir par rapport au raster d'origine. Selon votre suggestion, tout point / pixel affecté d'une valeur de 1 aura un ou plusieurs autres points dans l'élévation et la distance requises, ce qui est parfait! La seule question que j'ai est de savoir comment y parvenir de manière efficace?
user32882

Réponses:


13

Une approche peut-être trop simple serait d'utiliser les statistiques focales .

  • Définissez le voisinage d'intérêt comme un espace annulaire , avec un rayon intérieur un peu moins de 720 m et un rayon extérieur un peu plus de 720 m. (Cela dépend quelque peu de la taille des cellules. Par exemple, les cellules de 5 m auraient un espace annulaire de 717,5 à 722,5; cependant, cela pourrait être une fenêtre trop grande pour un raster de cellules de 1 m.)
  • Utilisez le type de statistiques MINpour trouver la valeur d'élévation la plus basse du quartier.
  • Répétez une deuxième fois, utilisez le type de statistiques MAX, pour trouver la valeur d'élévation la plus élevée dans le quartier.
  • À l'aide de la calculatrice raster , évaluez si les différences d'élévation sont suffisamment importantes. Quelque chose comme

    Con((Abs("DEM" - "FSMin") > 120) | (Abs("DEM" - "FSMax") > 120), 1, 0)

    Si la différence original-min ou original-max dépasse 120 m, la valeur est 1, sinon 0. ( Remarque: je n'ai pas testé la syntaxe. )

Cela vous indique uniquement si une cellule a une ou plusieurs cellules voisines qui répondent à vos critères de distance / élévation, elle ne vous indique pas combien.


Wow .... Je pense que cela a fonctionné ... incroyable. Merci beaucoup. J'ai passé des semaines à bricoler avec VBA pour essayer de le faire lorsque la solution est assez simple sur SIG. Dieu te bénisse.
user32882

cela n'identifie-t-il pas des points avec un voisin qui a au moins 120 m de dénivelé? Je soupçonne que c'est l'intention de la question, mais le libellé est "à 120 m de différence".
Llaves

@Llaves Oui, vous avez raison. Je soupçonne que trouver exactement 120m de différence à exactement 720m nécessiterait un script très intéressant.
Erica

Quoi qu'il en soit, il doit y avoir un intervalle puisque nous avons affaire à un terrain naturel. Pour mon application particulière, les différences d'élévation supérieures à 120 mètres sont en fait plus intéressantes. J'aurais dû être plus précis dans ma déclaration d'origine. Merci les gars quand même.
user32882
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.