Konvertieren von Rasterdaten in Polygondaten

12

Ich versuche, Rasterdaten in Polygondaten zu konvertieren. Bisher verwendete ich shapefile.py, um Punktdaten für einzelne Lat / Lon im Raster zu erstellen. Aber das wird riesige Daten erzeugen und das Abfragen wird ein großes Problem sein.

Es wäre also besser, wenn ich die Rasterdaten in Polygondaten konvertieren könnte. Ich konnte SAGA finden , aber es scheint, dass es nur die .grd-Dateien konvertieren kann . Gibt es eine Möglichkeit, GeoTIFF-Format oder Raster-Datasets im Allgemeinen in Polygon zu konvertieren?

UPDATE: Verwenden von gdal_polygonize.py

Ich führe die folgende Codezeile aus,

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

Aber ich erhalte den folgenden Fehler. Meine GDAL-Version ist 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
quelle
1
Wenn Sie eine Landklassifizierung mit Tiffs durchführen, lesen Sie den Link ( gis.stackexchange.com/q/29570/8104 ), in dem eine Methode zum Konvertieren von Tiffs in Polygone unter Verwendung der unbeaufsichtigten Maximalwahrscheinlichkeitsklassifizierung verfügbar ist.
Aaron
danke @ Aaron, aber ich muss an Open Source an diesem Projekt arbeiten
Sam007
gibt es eine möglichkeit 200 tifs auf einmal zu konvertieren?
Benjo

Antworten:

21

Versuchen Sie es mit gdal_polygonize.py . So erstellen Sie beispielsweise ein Shapefile mylayer.shpaus einer Eingabe myraster.tif:

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

oder um direkt in eine PostGIS-Datenbank auszugeben (siehe die PostgreSQL / PostGIS-Treiberdetails für GDAL ):

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

(Ignorieren Sie die Meldung "FEHLER 1: Keine Felddefinitionen für 'Mylayer' gefunden, ist es eine Tabelle?")

Darunter befinden sich Python-Bindungen für GDALPolygonize , wenn Sie dieses Tool anpassen möchten .

Mike T
quelle
Danke Mike. Lass es mich ausprobieren. Anstatt es als Shapefile auszugeben, kann ich es auch direkt in PostGIS zuweisen und vom Geoserver aus darauf zugreifen.
Sam007
@ Sam007 yup, PostGIS-Ausgabe funktioniert auch, siehe aktualisiert
Mike T
Ich habe diesen Fehler erhalten, warum ich das Shapefile erstellt habe. Wurde nicht zur Postgis-Datenbank hinzugefügt. dpaste.de/L8tSK Ist es ein Problem, wenn sich das GeoTIFF in einem anderen Verzeichnis befindet?
Sam007,
Das sieht nach einem ablenkenden Fehler aus, der mit den von Python verwendeten SWIG-Bindungen zusammenhängt. Welche Version von GDAL haben Sie und wie haben Sie sie installiert?
Mike T
1
@ Sam007 Versuch es sudo apt-get install python-gdal, aber wenn das nicht funktioniert, dann poste ja eine neue Frage. Ich bin immer noch nicht dazu gekommen, zu testen, wie es mit OpenGeo funktioniert oder nicht.
Mike T