Conversión de datos ráster a datos poligonales

12

Estoy tratando de convertir datos ráster en datos poligonales. Anteriormente estaba usando shapefile.py para crear datos de puntos en lat / lon individuales en el ráster. Pero eso creará una gran cantidad de datos y su consulta será un gran problema.

Por lo tanto, sería mejor si pudiera convertir los datos ráster en datos de polígono. Pude encontrar SAGA , pero parece que solo puede convertir los archivos .grd . ¿Hay alguna forma de convertir el formato GeoTIFF o datasets ráster en general a Polygon?

ACTUALIZACIÓN: Uso de gdal_polygonize.py

Estoy ejecutando la siguiente línea de código,

gdal_polygonize.py ~/development/Biodiversity/biodiversity/GeoTIFF/bio11.tif -f "ESRI Shapefile" bio11.shp

Pero recibo el siguiente error. Mi versión gdal es 1.9.0.

Traceback (most recent call last):
  File "/usr/bin/gdal_polygonize.py", line 34, in <module>
    import gdal, ogr, osr
  File "/usr/lib/python2.7/dist-packages/gdal.py", line 2, in <module>
    from osgeo.gdal import deprecation_warn
  File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: libjvm.so: cannot open shared object file: No such file or directory
Sam007
fuente
1
Si está haciendo una clasificación de tierras con tiffs, consulte el enlace ( gis.stackexchange.com/q/29570/8104 ) donde hay un método para convertir tiffs en polígonos utilizando una clasificación de máxima probabilidad sin supervisión.
Aaron
gracias @ Aaron, pero necesito trabajar en código abierto en este proyecto
Sam007
¿Hay alguna manera de convertir 200 tifs a la vez?
Benjo

Respuestas:

21

Prueba gdal_polygonize.py . Por ejemplo, para crear un Shapefile mylayer.shpdesde la entrada myraster.tif:

gdal_polygonize.py myraster.tif -f "ESRI Shapefile" mylayer.shp

o para enviar directamente a una base de datos PostGIS (vea los detalles del controlador PostgreSQL / PostGIS para GDAL ):

gdal_polygonize.py myraster.tif -f PostgreSQL PG:"dbname='postgis' user='postgres'" mylayer

(ignore el mensaje "ERROR 1: No se encontraron definiciones de campo para 'mylayer', ¿es una tabla?")

Hay enlaces de Python debajo de GDALPolygonize , si necesita esta herramienta personalizada.

Mike T
fuente
Gracias Mike Déjame intentarlo. Además, en lugar de mostrarlo como shapefile, ¿puedo asignarlo directamente a PostGIS y acceder desde Geoserver?
Sam007
@ Sam007 sí, la salida PostGIS también funciona, ver actualizado
Mike T
Tengo este error por qué crear el shapefile. No se agregó a la base de datos postgis. dpaste.de/L8tSK ¿Es un problema si GeoTIFF está en otro directorio?
Sam007
Parece un error de distracción, relacionado con los enlaces SWIG utilizados por Python. ¿Qué versión de GDAL tienes y cómo la instalaste?
Mike T
1
@ Sam007 Inténtalo sudo apt-get install python-gdal, pero si eso no funciona, entonces sí, publica una nueva pregunta. Todavía no he podido probar cómo funciona o no con OpenGeo.
Mike T