Konwertowanie danych rastrowych na dane wielokąta

12

Próbuję przekonwertować dane rastrowe na dane wielokąta. Wcześniej używałem shapefile.py do tworzenia danych punktowych na poszczególnych lat / lonach na rastrze. Ale to stworzy ogromne dane, a zapytania będą dużym problemem.

Byłoby lepiej, gdybym mógł przekonwertować dane rastrowe na dane wielokąta. Udało mi się znaleźć SAGA , ale wygląda na to, że można konwertować tylko pliki .grd . Czy istnieje sposób na konwersję formatu GeoTIFF lub ogólnie zestawów danych rastrowych na Polygon?

AKTUALIZACJA: Korzystanie z gdal_polygonize.py

Wykonuję następujący wiersz kodu,

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

Ale pojawia się następujący błąd. Moja wersja gdal to 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
źródło
1
Jeśli prowadzisz klasyfikację gruntów za pomocą tiffs, sprawdź link ( gis.stackexchange.com/q/29570/8104 ), w którym znajduje się metoda konwersji tiffów na wielokąty przy użyciu nienadzorowanej klasyfikacji największego prawdopodobieństwa.
Aaron
dzięki @Aaron, ale muszę pracować nad open source w tym projekcie
Sam007,
czy istnieje sposób na konwersję 200 tifów jednocześnie?
Benjo,

Odpowiedzi:

21

Spróbuj gdal_polygonize.py . Na przykład, aby utworzyć plik Shapefile na mylayer.shppodstawie danych wejściowych myraster.tif:

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

lub do wyjścia bezpośrednio do bazy danych PostGIS (zobacz szczegóły sterownika PostgreSQL / PostGIS dla GDAL ):

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

(zignoruj ​​komunikat „BŁĄD 1: Nie znaleziono definicji pól dla„ mylayer ”, czy to tabela?)

Istnieją powiązania Python poniżej GDALPolygonize , jeśli potrzebujesz tego narzędzia dostosowanego.

Mike T.
źródło
Dzięki Mike. Daj mi spróbować. Ponadto zamiast wysyłać go jako plik kształtu, mogę bezpośrednio przypisać to do PostGIS i uzyskać do niego dostęp z Geoserver.
Sam007,
@ Sam007 tak, wyjście PostGIS też działa, zobacz zaktualizowane
Mike T
Wystąpił ten błąd, dlaczego tworzenie pliku shapefile. Nie dodano do bazy danych Postgis. dpaste.de/L8tSK Czy to problem, jeśli GeoTIFF jest w innym katalogu?
Sam007
To wygląda jak rozpraszający błąd związany z powiązaniami SWIG używanymi przez Pythona. Którą wersję GDAL posiadasz i jak ją zainstalowałeś?
Mike T
1
@ Sam007 Spróbuj sudo apt-get install python-gdal, ale jeśli to nie zadziała, to tak, opublikuj nowe pytanie. Nadal nie mam ochoty testować, jak to działa, czy nie z OpenGeo.
Mike T,