J'ai du mal à utiliser la fonction Polygonize en python. L'exemple de livre de cuisine pour cela peut être trouvé ici .
La partie pertinente de mon code est:
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
Je sais que le groupe a des informations pertinentes, voici un extrait de 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.],
Lorsque j'ouvre la table attributaire dans QGIS, elle est vide:
Éditer:
La conversion fonctionne très bien dans QGIS en utilisant Raster -> Conversion -> Outil Polygonize
Capture d'écran du raster à polygoniser:
Et capture d'écran de la conversion résultante de l'outil QGIS:
J'utilise la distribution Enthought sur Windows 7, GDAL version 1.10.0-3
Le problème est que je ne peux pas polygoniser un raster en python en utilisant GDAL et l'exemple de livre de recettes, je peux polygoniser ce même raster sans problème dans l'interface graphique QGIS