Esto se puede hacer con QGIS y SAGA (ya sea SAGA independiente, o a través del panel de procesamiento en QGIS)
Supongo que con "XZY DEM" te refieres a un rejilla ascii .
Si los puntos no tienen una cuadrícula regular (por ejemplo, de un estudio UAS o de un LIDAR), también puede hacerlo importando a SAGA como una nube de puntos desde un archivo de texto .xyz, y luego convirtiendo la nube de puntos en ráster.
Si se trata de un archivo XYZ cuadriculado ascii, o un raster normal, puede importarlo utilizando Archivo > GDAL/OGR > Importar Raster .
Puede encontrar zonas planas utilizando Terreno > Preprocesamiento > Detección de planos .
Esto creará dos rásteres;
- uno sólo para zonas planas,
- uno para las zonas no planas.
Dependiendo de lo que quiera, puede elegir que los valores de los píxeles del raster plano se establezcan en la elevación de cada área plana ('elevación') o en un ID único ('enumeración'). Todo lo demás se establece como NODATA.
La captura de pantalla que aparece a continuación muestra la identificación única de los lagos del centro de Escocia. Por lo que sé, las zonas planas están numeradas de izquierda a derecha, de abajo a arriba, de ahí el gradiente de color.
A continuación, puede convertirlos en polígonos, ya sea en SAGA o en QGIS, y utilizar Simplificar las geometrías si es necesario para eliminar los artefactos de píxeles a lo largo de los bordes.
EDITAR :
Para introducir un archivo XYZ en SAGA como nube de puntos, utilice Archivo > Formas > Importar > Nube de puntos desde archivo de texto . Me parece que las nubes de puntos pueden ser difíciles de trabajar si la memoria RAM es escasa, así que a veces utilizo un script de python para muestrear aleatoriamente (digamos) el 1% o el 10% de los puntos
Siguiente, Formas > Nubes de puntos > Conversión > Nube de puntos en cuadrícula Probablemente quieras los valores por defecto (sólo Z, primer valor) pero comprueba si alguna de las otras opciones es más apta para tus necesidades (si más de un punto se asigna a un píxel, puedes elegir el máximo, el mínimo, la media, etc).
También puedes elegir el tamaño de los píxeles. Los archivos con los que trabajo tienen coords en UTM30N (metros), por lo que el tamaño de la celda es el número de metros por píxel.
Finalmente, tendrás una trama. Bueno, en realidad dos rásteres..
- MyGrid [Z]
- MyGrid [Puntos por celda]
El primero tiene su DEM, el segundo muestra cuántos puntos cayeron en cada píxel.
Es posible que haya datos que falten, es decir, píxeles en los que no se han encontrado muestras (especialmente si sólo se trabaja con un subconjunto de datos).
Para solucionarlo, puede utilizar
- Cuadrícula > Huecos > Cerrar Huecos de una celda (rápido, pero sólo funciona con vacíos de un solo píxel)
- Cuadrícula > Huecos > Cerrar huecos (lento, pero funciona con vacíos más grandes)