5 votos

Crear una curva de nivel a partir de una tabla de puntos en PostGIS

Tengo una tabla de puntos que contiene valores que van de 0 a 100 y me gustaría dibujar una línea de contorno para el valor 70. (Véase la imagen siguiente)

Sé cómo crear curvas de nivel en QGIS para datos ráster pero ahora me gustaría hacerlo con datos vectoriales (mi tabla de puntos) usando PostGIS para poder integrarlo en un script de python.

¿Alguna idea de cómo empezar?

EDITAR: Esta pregunta es diferente de Generación de curvas de nivel y contornos rellenos a partir de puntos ya que no incluye datos rasterizados (ni en la entrada ni en la salida)

enter image description here

1voto

jlehenbauer Puntos 7749

Creo que lo que quieres es algo así como gdal_contour .

gdal_contour: Builds vector contour lines from a raster elevation model.

Usage: gdal_contour [-b <band>] [-a <attribute_name>] [-3d] [-inodata]
                    [-snodata n] [-i <interval>]
                    [-f <formatname>] [[-dsco NAME=VALUE] ...] [[-lco NAME=VALUE] ...]
                    [-off <offset>] [-fl <level> <level>...]
                    [-nln <outlayername>]
                    <src_filename> <dst_filename>

Pero PostGIS no parece implementar algo así desde GDAL .

GDAL espera un modelo de elevación rasterizado de entrada (DEM). PostGIS tiene algunos Funciones del DEM pero no creo que te ayuden aquí.

0voto

Ricalsin Puntos 161

Para crear el contorno en PostGIS suelo utilizar ST_ConvexHull o ST_ConcaveHull

Su uso es así de sencillo:

SELECT
  st_convexhull(st_collect(geom)),
               pointsId
             FROM point_table 
             GROUP BY pointId;

Pero crear un polígono como el de tu foto no es realmente fácil.

Puedes probar otras funciones utilizando esto hoja de trucos .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X