Raster Verilerini Poligon verilerine dönüştürme


12

Raster verilerini çokgen verilerine dönüştürmeye çalışıyorum. Daha önce raster üzerinde bireysel lat / lon üzerinde nokta verileri oluşturmak için shapefile.py kullanıyordum. Ancak bu çok büyük bir veri oluşturacak ve bunu sorgulamak büyük bir sorun olacaktır.

Raster verilerini bir çokgen verisine dönüştürebilseydim daha iyi olurdu. Ben bulabildim SAGA , ama buna gibi görünüyor sadece .grd dosyalarını dönüştürmek . GeoTIFF formatını veya raster veri setlerini genel olarak Polygon'a dönüştürmenin bir yolu var mı?

GÜNCELLEME: gdal_polygonize.py kullanma

Aşağıdaki kod satırını yürütüyorum,

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

Ama şu hatayı alıyorum. Benim gdal versiyonum 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
Tiff'ler ile arazi sınıflandırması yapıyorsanız, denetimsiz maksimum olabilirlik sınıflandırması kullanarak tiff'leri çokgenlere dönüştürmenin bir yöntemi olan bağlantıyı ( gis.stackexchange.com/q/29570/8104 ) kontrol edin .
Aaron

@Aaron teşekkürler ama bu projede açık kaynak üzerinde çalışmak gerekir
Sam007

Aynı anda 200 tifi dönüştürmenin bir yolu var mı?
Benjo

Yanıtlar:


21

Gdal_polygonize.py komutunu deneyin . Örneğin, mylayer.shpgirdiden bir Shapefile oluşturmak için myraster.tif:

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

veya doğrudan bir PostGIS veritabanına çıktı vermek için ( GDAL için PostgreSQL / PostGIS sürücü ayrıntılarına bakın ):

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

("HATA 1: 'mylayer' için alan tanımı bulunamadı, bu bir tablo mu? mesajı yoksay)

GDALPolygonize altında Python bağlamaları var , eğer bu araca özel ihtiyacınız varsa.


Teşekkürler Mike. Bir deneyeyim. Ayrıca, şekil dosyası olarak çıktı almak yerine, bunu doğrudan PostGIS'e atayabilir ve Geoserver'dan erişebilir miyim.
Sam007

@ Sam007 yup, PostGIS çıktısı da çalışıyor, bkz. Güncelleme
Mike T

Şekil dosyasını neden oluştururken bu hatayı aldım. Postgis veritabanına eklenmedi. dpaste.de/L8tSK GeoTIFF başka bir dizin içindeyse bir sorun mu var?
Sam007

Bu, Python tarafından kullanılan SWIG bağlarıyla ilgili dikkat dağıtıcı bir hataya benziyor. Hangi GDAL sürümüne sahipsiniz ve nasıl yüklediniz?
Mike T

1
@ Sam007 Deneyin sudo apt-get install python-gdal, ancak bu işe yaramazsa, evet yeni bir soru gönderin. Hala OpenGeo ile nasıl çalıştığını test edemiyorum.
Mike T
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.