Tengo datos LiDAR "sucios" que contienen el primer y el último retorno y también inevitablemente errores debajo y por encima del nivel de la superficie. (captura de pantalla)
Tengo a mano SAGA, QGIS, ESRI y FME, pero no tengo ningún método real. ¿Cuál sería un buen flujo de trabajo para limpiar estos datos? ¿Existe un método completamente automatizado o de alguna manera estaría borrando manualmente?
Respuestas:
Parece que tienes valores atípicos:
Para 'i', la opción es usar un algoritmo de filtro de tierra que pueda tener en cuenta los 'errores negativos' para obtener una nube de puntos de tierra LiDAR limpia. Vea el algoritmo de Clasificación de Curvatura Multiescala (MCC) de Evans y Hudak (2007). Se dice en la página 4:
A continuación hay una publicación con un ejemplo sobre el uso de MCC-LIDAR:
Una vez que tenga una nube de puntos de tierra LiDAR precisa para hacer una DEM precisa, es posible normalizar la nube de puntos y excluir los puntos que están debajo de la superficie DEM (los que tienen valores negativos). Con el mismo enfoque, también es posible abordar el número de punto 'iii' eliminando puntos por encima de un umbral fijo. Ver, por ejemplo:
Luego, nos deja con 'ii', que se aborda en la respuesta
lasnoise
de AlecZ que recomienda LAStools. También manejará 'iii', y quizás parte de 'i' también (LAStools requiere una licencia). Aquí se citaron otras herramientas específicamente creadas para verificar / eliminar valores atípicos: lafilters.outlier
herramienta de PDAL en la respuesta de Charlie Parr, que tiene una explicación detallada sobre cómo funciona la herramienta, y con la ventaja de que PDAL es un software gratuito.Luego, lo que queda del proceso automatizado (si hay valores atípicos) se puede eliminar manualmente. Por ejemplo:
Evans, Jeffrey S .; Hudak, Andrew T. 2007. Un algoritmo de curvatura multiescala para clasificar LiDAR de retorno discreto en entornos forestales . Transacciones IEEE sobre Geociencia y Teledetección. 45 (4): 1029-1038.
fuente
Recomendaré PDAL la biblioteca de abstracción de datos de puntos. He tenido buen éxito al usar PDAL para un problema de filtrado similar. Me gusta PDAL porque es de código abierto, proporciona soporte para Python y me facilita la reproducción del procesamiento y el seguimiento de mis parámetros de filtrado. También me gusta porque tiene 'tuberías' donde puedes encadenar varios pasos (por ejemplo, recortar, luego filtrar y luego exportar) y ejecutarlos a la vez. Tenga en cuenta que si tiene nubes de puntos realmente grandes, PDAL podría no ser tan rápido como algunas otras soluciones (LASTools, QTM, etc.).
Puede abordar el problema de los puntos periféricos con una tubería PDAL similar a la siguiente:
Esta tubería lee en un LAS, lo recorta en una extensión UTM especificada, luego realiza un filtro que marca todos los puntos periféricos, luego realiza un segundo filtro que retiene solo puntos no periféricos (es decir, el indicador de Clasificación! = 7), luego exporta a una resolución de 1 m GeoTIFF. El filtro estadístico está realizando un cálculo de distancia media del vecino más cercano para probar si un punto está "demasiado lejos" de sus vecinos y, por lo tanto, un valor atípico.
De la documentación :
fuente
Dado que OP no limitó las soluciones al código abierto, sugeriría Quick Terrain Modeler ( QT Modeler ). Requiere una licencia. Cargue la nube de puntos en QT, y esencialmente la inclina para obtener la vista de perfil que desea, coloca el clúster que desea eliminar y simplemente presiona eliminar.
fuente
He tenido suerte simplemente usando una varianza focal en un ráster interpolado. Luego asigna los valores de varianza a sus puntos y utiliza un umbral para eliminar las variaciones localmente altas, que representan grandes desviaciones de la estimación del núcleo local.
Debe asegurarse de que la resolución de la superficie interpolada sea un grano lo suficientemente pequeño como para capturar la variación local en un nivel de punto (s). El tamaño del kernel también tendrá un efecto, pero para valores atípicos individuales debería ser suficiente una ventana de 3x3. Puede perder algunos puntos adicionales de escuchar y escuchar, pero con lidar tiene muchos datos de sobra.
fuente
Lastools proporciona exactamente lo que necesita: scripts automatizados que eliminarán todos estos puntos por usted. Sin embargo, hay un costo de licencia para eso, pero si este es un proceso que desea realizar rápidamente como una tarea regular, usar el script lasnoise de su conjunto de herramientas es una opción perfecta.
Como señaló @Andre Silva, ArcGIS tiene un conjunto de herramientas de última generación, que puede usar después de ejecutar la herramienta de geoprocesamiento Crear dataset LAS. Desde allí, puede ingresar manualmente para reclasificar o eliminar estos puntos de ruido. El inconveniente es que no es un proceso tan intuitivo o efectivo como QT Modeler (sugerido por @auslander), probablemente el mejor programa para visualizar / analizar / manipular los archivos manualmente, y también con un costo de licencia. ArcMap limitará la cantidad de puntos visibles al editar su nube de puntos, lo que significa que probablemente tendrá que acercarse a áreas con ruido, eliminarlas o reclasificarlas, y luego moverse como parte de un proceso de limpieza manual. Pero esto hará el trabajo.
fuente
Como dijo Andre Silva , MCC-LIDAR es una buena opción para extraer los puntos básicos, pero desde mi experiencia, tendrá dificultades si tiene una nube de puntos muy grande (500 millones de puntos o incluso menos). En otras palabras, devolverá un error y no ejecutará el algoritmo, incluso si cambia la configuración (parámetros de escala y curvatura). Además, desde mi experiencia, mantiene algunos de los "errores negativos" en los datos.
Mi alternativa para eso es invertir la nube de puntos (los puntos debajo del suelo subirán y el suelo arriba bajará). Para obtener esto, cargo los datos en R e invierto la altura, luego ejecuto MCC-LIDAR y reinvierto los datos. Probablemente podría hacer esto en QGIS o ArcGIS, pero dependiendo del tamaño de su conjunto de datos, podría llevar un tiempo hacerlo.
La herramienta PDAL planta es también una buena opción, ya que funciona mejor con grandes conjuntos de datos, pero, de nuevo, algunos de los puntos bramido todavía se mantenía suelo. Invertir el conjunto de datos nuevamente ayudará a resolver este problema.
Para los puntos sobre el suelo, mi mejor enfoque es una limpieza manual y la mejor herramienta de código abierto que he encontrado para hacerlo es dentro de CloudCompare. Elegirás
Segment
en el menú de la barra superior y podrás eliminar los puntos seleccionados o todos los demás. He usado LAStools antes (lasview
herramienta) para esto, pero la forma en que funciona la interfaz 3D no es tan fácil de usar.fuente
Soy un soporte técnico de GreenValley International, la herramienta de eliminación de valores atípicos en nuestro software insignia LiDAR360 se puede utilizar para eliminar estos errores tanto como sea posible y, por lo tanto, mejorar la calidad de los datos.
El algoritmo primero buscará los puntos vecinos de cada punto dentro de un vecindario definido por el usuario, y calculará la distancia promedio desde el punto a sus puntos vecinos. Luego, se calcula la media y la desviación estándar de estas distancias promedio para todos los puntos. Si la distancia promedio de un punto a sus vecinos es mayor que la distancia máxima (distancia máxima = media + n * desviación estándar, donde n es un número múltiple definido por el usuario), se considerará un valor atípico y se eliminará del original punto de nube.
fuente
Como opción de código abierto, 3D Forest tiene algunas buenas herramientas para filtrar automáticamente, así como herramientas manuales para limpiar nubes de puntos. Es posible que deba probar con diferentes parámetros de filtro para obtener el resultado que necesita. Aunque está orientado a las nubes de puntos del bosque, muchas herramientas son útiles en cualquier nube de puntos.
fuente