У мене виникають проблеми з використанням функції Polygonize в python. Приклад кулінарної книги для цього можна знайти тут .
Відповідна частина мого коду:
sourceRaster = gdal.Open('myraster.tif')
band = sourceRaster.GetRasterBand(1)
bandArray = band.ReadAsArray()
outShapefile = "polygonized"
driver = ogr.GetDriverByName("ESRI Shapefile")
if os.path.exists(outShapefile+".shp"):
driver.DeleteDataSource(outShapefile+".shp")
outDatasource = driver.CreateDataSource(outShapefile+ ".shp")
outLayer = outDatasource.CreateLayer("polygonized", srs=None)
gdal.Polygonize( band, None, outLayer, -1, [], callback=None )
outDatasource.Destroy()
sourceRaster = None
Я знаю, що група має відповідну інформацію, ось фрагмент bandArray
:
array([[ 4., 4., 3., 3., 3., 2., 2., 2., 2., 3., 3., 3., 3.,
3., 3., 3., 3., 4., 4., 4., 4., 4., 4., 4., 4., 4.,
4., 4., 4., 4.],
Коли я відкриваю таблицю атрибутів у QGIS, вона порожня:
Редагувати:
Перетворення працює чудово в QGIS за допомогою інструменту Raster -> Conversion -> Polygonize
Скріншот растру, який потрібно полігонізувати:
І скріншот результативного перетворення з інструменту QGIS:
Я використовую дистрибутив Enthought у Windows 7, версія GDAL 1.10.0-3
Проблема полягає в тому, що я не можу полігонізувати растр у python за допомогою GDAL та прикладу кулінарної книги, я можу полігонізувати цей самий растр без проблем у графічному інтерфейсі QGIS