Mam raster zawierający dziesiątki milionów punktów, wszystkie ze zdefiniowanymi danymi X, Y i Z. Muszę wymyślić prosty sposób wyodrębnienia i utworzenia nowego rastra lub wektora ze WSZYSTKIMI punktami w odległości 720 m od siebie (X, Y) i przy różnicy wysokości 120 m (Z) od siebie.
Mam ZERO znajomość SQL i Pythona. Próbowałem to zrobić na VBA i wymyśliłem kilka algorytmów, ale czas przetwarzania jest nieuzasadniony i nierealny. Jestem pewien, że aby to osiągnąć, musi istnieć proste podejście GIS, ale wydaje się, że nie można go znaleźć.
Korzystam z ArcMap.
arcgis-desktop
vba
użytkownik32882
źródło
źródło
0
= nie ma punktów oddalonych o 720 m i wysokości ± 120 m,1
= jednego lub więcej punktów oddalonych o 720 m i ± 120 m wysokości? A może musisz policzyć, ile punktów spełnia kryteria?Odpowiedzi:
Być może zbyt prostym podejściem byłoby użycie statystyki ogniskowej .
MIN
, aby znaleźć najniższą wartość wysokości w okolicy.MAX
, aby znaleźć najwyższą wartość wysokości w okolicy.Za pomocą kalkulatora rastrowego oceń, czy różnice wysokości są wystarczająco duże. Coś jak
Con((Abs("DEM" - "FSMin") > 120) | (Abs("DEM" - "FSMax") > 120), 1, 0)
Jeśli różnica oryginalna-minimalna lub oryginalna-maksymalna przekracza 120 m, wartość wynosi 1, w przeciwnym razie 0. ( Uwaga: nie testowałem składni ).
To mówi tylko, czy komórka ma jedną lub więcej sąsiadujących komórek, które spełniają kryteria odległości / wysokości, ale nie mówi, ile.
źródło