У меня есть «грязные» данные LiDAR, содержащие первые и последние данные, а также неизбежные ошибки на уровне поверхности и над ним. (Скриншот)
У меня под рукой есть SAGA, QGIS, ESRI и FME, но нет реального метода. Какой будет хороший рабочий процесс для очистки этих данных? Есть ли полностью автоматизированный метод, или я бы как-то удалял вручную?
Ответы:
Вы, кажется, имеют выбросы:
Для «i» вариант состоит в том, чтобы использовать алгоритм наземного фильтра, который может учитывать «отрицательные ошибки», чтобы получить чистое облако наземных точек LiDAR. См. Алгоритм классификации многомасштабной кривизны (MCC) от Evans and Hudak (2007). На странице 4 сказано:
Ниже приведен пост с примером использования MCC-LIDAR:
Если у вас есть точное наземное облако точек LiDAR для создания точной матрицы высот, можно нормализовать облако точек и исключить точки, которые находятся ниже поверхности матрицы высот (с отрицательными значениями). Используя тот же подход, можно также обратиться к точке с номером «iii», удалив точки выше некоторого фиксированного порога. Смотрите, например:
Затем он оставляет нам «ii», на который отвечает ответ Алекса, рекомендованный
lasnoise
LAStools. Он также будет обрабатывать «iii» и, возможно, часть «i» (LAStools требует лицензии). Здесь были упомянуты другие инструменты, специально созданные для проверки / удаления выбросов:filters.outlier
инструмент PDAL в ответе Чарли Парра, в котором есть подробное объяснение того, как работает инструмент, и с преимуществом, что PDAL является свободным программным обеспечением.Затем то, что осталось от автоматизированного процесса (если есть выбросы), может быть удалено вручную. Например:
Эванс, Джеффри С .; Hudak, Andrew T. 2007. Алгоритм кривизны с несколькими масштабами для классификации дискретного возврата LiDAR в лесных средах . IEEE Сделки по геонауке и дистанционному зондированию. 45 (4): 1029-1038.
источник
Я рекомендую PDAL библиотеку абстракции точечных данных. Я имел хороший успех, используя PDAL для аналогичной проблемы фильтрации. Мне нравится PDAL, потому что он с открытым исходным кодом, обеспечивает поддержку Python и позволяет мне легко воспроизводить обработку и отслеживать параметры фильтрации. Мне также нравится это, потому что у него есть «конвейеры», где вы можете соединить вместе несколько шагов (например, обрезать, затем отфильтровать, затем экспортировать) и выполнить их сразу. Обратите внимание, что если у вас действительно очень большие облака точек, PDAL может быть не таким быстрым, как некоторые другие решения (LASTools, QTM и т. Д.).
Вы можете решить проблему отдаленных точек с помощью конвейера PDAL, подобного следующему:
Этот конвейер читает в LAS, обрезает его до заданного экстента UTM, затем выполняет фильтр, который помечает все удаленные точки, затем выполняет второй фильтр, который сохраняет только непрямые точки (т. Е. Флаг классификации! = 7), затем экспортирует в разрешение 1 м GeoTIFF. Статистический фильтр выполняет вычисление среднего расстояния ближайшего соседа, чтобы проверить, находится ли точка «слишком далеко» от своих соседей и, следовательно, от выброса.
Из документации :
источник
Поскольку OP не ограничивал решения с открытым исходным кодом, я бы предложил Quick Terrain Modeler ( QT Modeler ). Это требует лицензии. Загрузите облако точек в QT, и вы по существу наклоните его, чтобы получить желаемое представление профиля, наложите резинку на кластер, который хотите удалить, и просто нажмите «Удалить».
источник
Мне повезло, просто используя фокусную дисперсию на интерполированном растре. Затем вы присваиваете значения отклонений вашим точкам и используете порог для удаления локально высоких отклонений, представляющих большие отклонения от оценки локального ядра.
Вы должны убедиться, что разрешение интерполированной поверхности достаточно малое, чтобы уловить локальные изменения на уровне точек. Размер ядра также окажет влияние, но для одиночных выбросов должно хватить окна 3х3. Вы можете потерять несколько дополнительных очков, но с лидаром у вас есть достаточно данных, чтобы сэкономить.
источник
Lastools предоставляет именно то, что вам нужно - автоматизированные скрипты, которые уберут все эти пункты за вас. Однако для этого существует стоимость лицензирования, но если это процесс, который вы хотите быстро выполнить как обычную задачу, использование сценария lasnoise из их набора инструментов является идеальным вариантом.
Как заметил @Andre Silva, ArcGIS имеет набор инструментов las, который вы можете использовать после запуска инструмента геообработки Создать набор данных LAS. Оттуда вы можете войти вручную, чтобы реклассифицировать или удалить эти точки шума. Недостатком является то, что это не такой интуитивный или эффективный процесс, как QT Modeler (предложенный @auslander), вероятно, лучшая программа для визуализации / анализа / манипулирования файлами las вручную, а также с затратами на лицензию. ArcMap будет ограничивать количество видимых точек при редактировании облака точек, а это означает, что вам, вероятно, придется увеличивать области с шумом, удалять или реклассифицировать их, а затем перемещаться в рамках процесса ручной очистки. Но это сделает работу.
источник
Как сказал Андре Сильва , MCC-LIDAR - это хороший вариант для извлечения базовых точек, но, по моему опыту, он будет испытывать трудности, если у вас очень большое облако точек (500 миллионов точек или даже меньше). Другими словами, он вернет ошибку и не запустит алгоритм, даже если вы измените настройки (параметры масштаба и кривизны). Кроме того, по моему опыту, он сохраняет некоторые «негативные ошибки» в данных.
Моя альтернатива для этого - инвертировать облако точек (точки под землей поднимутся, а над землей опустятся). Чтобы получить это, я загружаю данные в R и инвертирую высоту, затем запускаю MCC-LIDAR и заново инвертирую данные. Возможно, вы могли бы сделать это в QGIS или ArcGIS, но в зависимости от размера вашего набора данных это может занять некоторое время.
Инструмент PDAL земля также вариант хорош , как это лучше работает с большими наборами данных , но, опять же , некоторые из точек сильфонные земля будет по- прежнему сохраняется. Инвертирование набора данных снова поможет решить эту проблему.
Для точек над землей мой лучший подход - это ручная очистка, а лучший инструмент с открытым исходным кодом, который я нашел для этого, находится в CloudCompare. Вы выберете
Segment
в верхней панели меню, и вы можете удалить выбранные точки или все остальные. Я использовал LAStools прежде (lasview
инструмент) для этого, но способ работы 3D-интерфейса не так удобен для пользователя.источник
Я - техническая поддержка со стороны GreenValley International, утилита Outlier Removal в нашем флагманском программном обеспечении LiDAR360 может использоваться для максимально возможного устранения этих ошибок и, следовательно, для улучшения качества данных.
Алгоритм сначала ищет соседние точки каждой точки в определенной пользователем окрестности и вычисляет среднее расстояние от точки до соседних точек. Затем рассчитывается среднее и стандартное отклонение этих средних расстояний для всех точек. Если среднее расстояние точки до ее соседей больше максимального расстояния (максимальное расстояние = среднее + n * стандартное отклонение, где n - это определенное пользователем множественное число), оно будет считаться выбросом и будет удалено из исходного облако точек.
источник
В качестве опции с открытым исходным кодом, 3D Forest имеет несколько хороших инструментов для автоматической фильтрации, а также ручные инструменты для очистки облаков точек. Возможно, вам придется попробовать разные параметры фильтра, чтобы получить нужный результат. Несмотря на то, что он ориентирован на облака точек леса, многие инструменты полезны в любом облаке точек.
источник