Sto riscontrando problemi nell'uso della funzione Polygonize in Python. L'esempio del libro di cucina per questo può essere trovato qui .
La parte rilevante del mio codice è:
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
So che la band ha informazioni pertinenti, ecco uno snippet di 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.],
Quando apro la tabella degli attributi in QGIS, è vuota:
Modificare:
La conversione funziona perfettamente in QGIS usando lo strumento Raster -> Conversione -> Poligonizza
Schermata del raster da poligonizzare:
E screenshot della conversione risultante dallo strumento QGIS:
Sto usando la distro Enthought su Windows 7, versione GDAL 1.10.0-3
Il problema è che non riesco a poligonizzare un raster in Python usando GDAL e l'esempio del ricettario, posso poligonizzare questo stesso raster senza alcun problema nella GUI di QGIS