Преобразование растровых данных в полигональные

12

Я пытаюсь преобразовать растровые данные в полигональные. Ранее я использовал shapefile.py для создания точечных данных по отдельным широтам / долготам на растре. Но это создаст огромные данные, и их запрос станет большой проблемой.

Таким образом, было бы лучше, если бы я мог преобразовать растровые данные в данные многоугольника. Мне удалось найти SAGA , но, похоже, он может конвертировать только файлы .grd . Есть ли способ преобразовать формат GeoTIFF или наборы растровых данных в целом в Polygon?

ОБНОВЛЕНИЕ: Использование gdal_polygonize.py

Я выполняю следующую строку кода,

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

Но я получаю следующую ошибку. Моя версия GDAL 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
источник
1
Если вы проводите классификацию земель с помощью tiff, перейдите по ссылке ( gis.stackexchange.com/q/29570/8104 ), где есть метод для преобразования tiff в полигоны с использованием неконтролируемой классификации максимального правдоподобия.
Аарон
спасибо @Aaron, но мне нужно работать над открытым исходным кодом над этим проектом
Sam007
Есть ли способ конвертировать 200 TIFS одновременно?
Бенджо

Ответы:

21

Попробуйте gdal_polygonize.py . Например, чтобы создать Shapefile mylayer.shpиз ввода myraster.tif:

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

или для вывода непосредственно в базу данных PostGIS (см. сведения о драйвере PostgreSQL / PostGIS для GDAL ):

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

(игнорируйте сообщение «ОШИБКА 1: не найдено определений полей для« mylayer », это таблица?»)

Под GDALPolygonize есть привязки Python , если вам нужно настроить этот инструмент.

Майк Т
источник
Спасибо майк Позвольте мне попробовать это. Кроме того, вместо того, чтобы выводить его в виде шейп-файла, я могу напрямую назначить его в PostGIS и получить к нему доступ с геосервера.
Sam007
@ Sam007 да, выход PostGIS тоже работает, смотрите обновленный
Mike T
Получил эту ошибку, почему создание шейп-файла. Не добавлено в базу данных postgis. dpaste.de/L8tSK Это проблема, если GeoTIFF находится в другом каталоге ?
Sam007
Это похоже на отвлекающую ошибку, связанную с привязками SWIG, используемыми Python. Какая у вас версия GDAL и как вы ее установили?
Майк Т
1
@ Sam007 Попробуйте sudo apt-get install python-gdal, но если это не сработает, тогда да, отправьте новый вопрос. Я до сих пор не удосужился проверить, как это работает или нет с OpenGeo.
Майк Т