Extrahieren aller Punkte innerhalb eines bestimmten Abstands- und Höhenunterschieds aus einem Raster


11

Ich habe ein Raster mit zig Millionen Punkten, für die alle X-, Y- und Z-Daten definiert sind. Ich muss einen einfachen Weg finden, um ein neues Raster oder einen neuen Vektor mit ALLEN Punkten in einem Abstand von 720 m voneinander (X, Y) und einem Höhenunterschied von 120 m (Z) voneinander zu extrahieren und zu erstellen.

Ich habe keine Kenntnisse in SQL und Python. Ich habe versucht, dies auf VBA zu tun, und mir ein paar Algorithmen ausgedacht, aber die Verarbeitungszeit ist unvernünftig und unrealistisch. Ich bin sicher, dass es einen einfachen GIS-Ansatz geben muss, um dies zu erreichen, kann ihn aber nicht finden.

Ich verwende ArcMap.


Ich verwende ArcMap. Vielen Dank für Ihren Kommentar. Ich werde es auch in der ursprünglichen Frage ändern :).
user32882

Sie sagen 720 m in der Horizontalen und 120 m in der Vertikalen, aber von wo? Klingt so, als hätten Sie eine Art Punktwolke, aber Sie könnten von jedem Ort innerhalb dieser Wolke aus nach Punkten suchen, die Ihre Kriterien vollständig erfüllen. Sicherlich müssen Sie eine Art Samenstandort oder ein anderes Kriterium haben, das Sie nicht erwähnt haben, z. B. die Maximierung der Anzahl der Punkte, die die Kriterien vollständig erfüllen?
Hornbydd

Wie gesagt, ich versuche "ALLE Punkte in einem Abstand von 720 m voneinander (X, Y) und in einem Höhenunterschied von 120 m (Z) voneinander zu extrahieren". Es gibt keinen "Startplatz", ich scanne ALLE Punkte.
user32882

Eine der größten Herausforderungen, die ich mir dabei vorstelle, ist die Darstellung des Ergebnisses. Wäre es akzeptabel, ein Rasterergebnis zu haben, bei dem 0= keine Punkte in 720 m Entfernung und ± 120 m Höhe, 1= ein oder mehrere Punkte in 720 m Entfernung und ± 120 m Höhe vorhanden sind? Oder müssen Sie zählen, wie viele Punkte die Kriterien erfüllen würden?
Erica

Liebe Erica, die erste Wahl wäre mehr als akzeptabel. Ich muss nicht zählen, wie viele Punkte diese Kriterien erfüllen, aber ich muss sie im Vergleich zum ursprünglichen Raster sehen können. Gemäß Ihrem Vorschlag hat jeder Punkt / jedes Pixel, dem der Wert 1 zugewiesen wurde, einen anderen oder mehrere andere Punkte innerhalb der erforderlichen Höhe und Entfernung, so dass dies perfekt ist! Die einzige Frage, die ich habe, ist, wie dies auf effiziente Weise erreicht werden kann.
user32882

Antworten:


13

Ein vielleicht zu einfacher Ansatz wäre die Verwendung von Fokusstatistiken .

  • Definieren Sie die interessierende Nachbarschaft als Ring mit einem Innenradius von knapp 720 m und einem Außenradius von knapp über 720 m. (Dies hängt etwas von der Zellengröße ab. Beispielsweise hätten 5-m-Zellen einen Ring von 717,5 - 722,5; dies könnte jedoch ein zu großes Fenster für ein 1-m-Zellenraster sein.)
  • Verwenden Sie den Statistiktyp MIN, um den niedrigsten Höhenwert in der Nachbarschaft zu ermitteln.
  • Wiederholen Sie diesen Vorgang ein zweites Mal und verwenden Sie den Statistiktyp MAX, um den höchsten Höhenwert in der Nachbarschaft zu ermitteln.
  • Mit Raster - Berechnung , zu bewerten , ob die Höhenunterschiede groß genug sind. Etwas wie

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

    Wenn die Original-Min-Differenz oder die Original-Max-Differenz 120 m überschreitet, ist der Wert 1, andernfalls 0. ( Hinweis: Ich habe die Syntax nicht getestet. )

Hier erfahren Sie nur, ob eine Zelle eine oder mehrere benachbarte Zellen hat, die Ihre Entfernungs- / Höhenkriterien erfüllen, und nicht, wie viele.


Wow ... ich denke das hat funktioniert ... unglaublich. Ich danke dir sehr. Ich habe Wochen damit verbracht, an VBA zu basteln, um dies zu tun, wenn die Lösung in GIS recht einfach ist. Gott segne dich.
user32882

Identifiziert dies nicht Punkte mit einem Nachbarn, dessen Höhenunterschied mindestens 120 m beträgt? Ich vermute, das ist die Absicht der Frage, aber der Wortlaut ist "bei 120 m Unterschied".
Llaves

@Llaves Ja, du hast recht. Ich vermute, dass das Finden eines Unterschieds von genau 120 m bei genau 720 m ein sehr interessantes Skript erfordern würde.
Erica

Unabhängig davon muss es eine Pause geben, da es sich um natürliches Gelände handelt. Für meine spezielle Anwendung sind Höhenunterschiede über 120 Metern tatsächlich interessanter. Ich hätte in meiner ursprünglichen Aussage genauer sein sollen. Trotzdem vielen Dank.
user32882
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.