Витягування всіх точок на певній відстані та різниці висот з Растра


11

У мене є растр, що містить десятки мільйонів точок, усі з визначеними даними X, Y і Z. Мені потрібно знайти простий спосіб вилучення та створення нового растру чи вектора зі ВСІМ точками на відстані 720 м одна від одної (X, Y) та на 120 м різниці висоти (Z) один від одного.

У мене є знання ZERO про SQL та Python. Я намагався зробити це на VBA і придумав пару алгоритмів, але час обробки нерозумний і нереальний. Я впевнений, що для цього має бути простий підхід у ГІС, але, здається, не можна його знайти.

Я використовую ArcMap.


Я використовую ArcMap. Дякуємо за ваш коментар Я також зміню його в оригінальному питанні :).
user32882

Ви кажете 720м по горизонталі та 120м по вертикалі, але звідки? Здається, у вас є якась хмара точок, але ви можете шукати точки, які повністю відповідають вашим критеріям з будь-якого місця в межах цієї хмари. Напевно у вас має бути якесь місце насіння або інші критерії, про які ви не згадували, такі як максимізація кількості балів, які повністю заповнюють критерії?
Хорнбідд

Як я вже казав, я намагаюся "витягнути ВСІ точки на відстані 720 м один від одного (X, Y) та на 120 м різниці висоти (Z) один від одного". Немає "місця насіння", я сканую ВСІ точки.
user32882

Одне з найбільших викликів, які я перед цим маю, - це відображення результату. Чи було б прийнятним мати растровий результат, в якому 0= немає точок на відстані 720 м & ± 120 м висоти, 1= одна або більше точок на відстані 720 м і підняття ± 120 м? Або вам потрібно порахувати, скільки балів відповідало б критеріям?
Еріка

Шановна Еріко, перший вибір був би більш ніж прийнятним. У мене немає вимоги рахувати, скільки балів відповідають цим критеріям, але мені потрібно мати можливість бачити їх порівняно з оригінальними растрами. Згідно з вашою пропозицією, будь-яка точка / піксель, призначена значенням 1, матиме ще одну чи кілька інших точок у межах необхідного висоти та відстані від неї, так що це ідеально! Єдине питання, яке у мене є, як це досягти ефективно?
user32882

Відповіді:


13

Можливо, занадто простим підходом було б використання Фокальної статистики .

  • Визначте околиці, що цікавлять, як кільцеву , із внутрішнім радіусом трохи нижче 720 м, а зовнішнім радіусом трохи більше 720 м. (Це дещо залежить від розміру комірок. Наприклад, у 5-мільйонних комірок буде кільцева кількість 717,5 - 722,5; хоча це може бути занадто великим вікном для растру на 1 м клітини.)
  • Використовуйте тип статистики MIN, щоб знайти найнижчу величину висоти в околицях.
  • Повторіть другий раз, використовуйте тип статистики MAX, щоб знайти найвище значення висоти в околицях.
  • Використовуючи калькулятор растрових обчислень , чи достатньо великі перепади висот. Щось на зразок

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

    Якщо різниця оригіналу-хв або різниця оригіналу-макс перевищує 120м, значення дорівнює 1, інакше - 0. ( Примітка: Я не перевіряв синтаксис. )

Це говорить лише про те, чи є клітина однією або кількома сусідніми клітинками, які відповідають вашим критеріям відстані / висоти, і це не говорить вам, скільки.


Вау .... Я думаю, що спрацювало .... неймовірно. Дуже дякую. Я проводив тижні, розмовляючи з VBA, намагаючись це зробити, коли рішення на ГІС досить просте. Бог вас благословить.
user32882

чи це не ототожнює точки з сусідом, що має різницю висоти принаймні 120 м? Я підозрюю, що це є питанням, але формулювання - "різниця в 120 м".
Llaves

@Llaves Так, ти маєш рацію. Я підозрюю, що для знаходження різниці в 120 м рівно в 720 м знадобиться дуже цікавий сценарій.
Еріка

Незважаючи на це, має бути інтервал, оскільки ми маємо справу з природним рельєфом. Для мого конкретного застосування різниці висот понад 120 метрів насправді цікавіші. Я повинен був бути більш точним у своєму первісному викладі. Спасибі, хлопці, все одно.
користувач32882
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.