Перетворення растрових даних у дані багатокутника


12

Я намагаюся перетворити растрові дані в полігонові дані. Раніше я використовував shapefile.py для створення точкових даних про окремі lat / lon на растрі. Але це створить величезні дані і запити їх будуть великою проблемою.

Отже, було б краще, якщо я зможу перетворити растрові дані в дані багатокутника. Мені вдалося знайти SAGA , але, здається, він може конвертувати лише файли .grd . Чи є спосіб перетворити формат GeoTIFF або растрові набори даних взагалі в багатокутник?

ОНОВЛЕННЯ: Використання 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

1
Якщо ви робите класифікацію земель з тиффами, перегляньте посилання ( gis.stackexchange.com/q/29570/8104 ), де існує метод перетворення тифів на багатокутники, використовуючи непідконтрольну класифікацію максимальної ймовірності.
Аарон

дякую @Aaron, але мені потрібно працювати над відкритим кодом над цим проектом
Sam007

чи є спосіб перетворити 200 тифів одночасно?
Беньо

Відповіді:


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 і отримати доступ до нього через Geoserver.
Sam007

@ Sam007 так, вихід PostGIS також працює, дивіться оновлений
Майк Т

Отримала цю помилку, чому створює файл форми. Не додано до бази даних postgis. dpaste.de/L8tSK Це проблема, якщо GeoTIFF знаходиться в іншому режимі?
Sam007

Це виглядає як відволікаюча помилка, пов'язана з прив'язкою SWIG, використовуваною Python. Яку версію GDAL у вас є, і як ви її встановили?
Майк Т

1
@ Sam007 Спробуйте sudo apt-get install python-gdal, але якщо це не працює, то так, поставте нове запитання. Я все ще не маю тестування, як це працює чи ні з OpenGeo.
Майк Т
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.