Conversion de données raster en données de polygone

12

J'essaie de convertir des données raster en données polygonales. Auparavant, j'utilisais le fichier shapefile.py pour créer des données ponctuelles sur des lat / lon individuels sur le raster. Mais cela créera une énorme donnée et l'interroger sera un gros problème.

Donc, ce serait mieux si je suis capable de convertir les données raster en données polygonales. J'ai pu trouver SAGA , mais il semble qu'il ne peut convertir que les fichiers .grd . Existe-t-il un moyen de convertir le format GeoTIFF ou les jeux de données raster en général en polygone?

MISE À JOUR: Utilisation de gdal_polygonize.py

J'exécute la ligne de code suivante,

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

Mais j'obtiens l'erreur suivante. Ma version gdal est 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
la source
1
Si vous effectuez une classification des terres avec des tiffs, consultez le lien ( gis.stackexchange.com/q/29570/8104 ) où il existe une méthode pour convertir les tiffs en polygones en utilisant une classification de vraisemblance maximale non supervisée.
Aaron
merci @Aaron mais j'ai besoin de travailler sur l'open source sur ce projet
Sam007
est-il possible de convertir 200 tifs à la fois?
Benjo

Réponses:

21

Essayez gdal_polygonize.py . Par exemple, pour créer un Shapefile à mylayer.shppartir de l'entrée myraster.tif:

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

ou pour sortir directement vers une base de données PostGIS (voir les détails du pilote PostgreSQL / PostGIS pour GDAL ):

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

(ignorez le message "ERREUR 1: aucune définition de champ trouvée pour 'mylayer', s'agit-il d'une table?")

Il y a des liaisons Python en dessous pour GDALPolygonize , si vous avez besoin de cet outil personnalisé.

Mike T
la source
Merci Mike. Laissez-moi l'essayer. De plus, plutôt que de le produire sous forme de fichier de formes, puis-je l'assigner directement dans le PostGIS et y accéder depuis le Geoserver.
Sam007
@ Sam007 yup, la sortie PostGIS fonctionne aussi, voir mise à jour
Mike T
Vous avez cette erreur pourquoi créer le fichier de formes. N'a pas ajouté à la base de données postgis. dpaste.de/L8tSK Est-ce un problème si le GeoTIFF est dans un autre répertoire?
Sam007
Cela ressemble à une erreur distrayante, liée aux liaisons SWIG utilisées par Python. Quelle version de GDAL possédez-vous et comment l'avez-vous installée?
Mike T
1
@ Sam007 Essayez sudo apt-get install python-gdal, mais si cela ne fonctionne pas, alors oui, posez une nouvelle question. Je n'ai toujours pas essayé de tester comment cela fonctionne ou non avec OpenGeo.
Mike T du