Tôi gặp sự cố khi sử dụng hàm Polygonize trong python. Ví dụ sách dạy nấu ăn cho điều này có thể được tìm thấy ở đây .
Phần có liên quan của mã của tôi là:
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
Tôi biết rằng ban nhạc có thông tin liên quan, đây là một đoạn 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.],
Khi tôi mở bảng thuộc tính trong QGIS, nó trống:
Biên tập:
Chuyển đổi hoạt động tốt trong QGIS bằng cách sử dụng Raster -> Chuyển đổi -> Công cụ đa giác
Ảnh chụp màn hình của raster sẽ được đa giác hóa:
Và ảnh chụp màn hình chuyển đổi kết quả từ công cụ QGIS:
Tôi đang sử dụng bản phân phối Enth think trên Windows 7, phiên bản GDAL 1.10.0-3
Vấn đề là tôi không thể đa giác hóa một raster trong python bằng cách sử dụng GDAL và ví dụ về cookbook, tôi có thể đa giác hóa cùng một raster này mà không gặp vấn đề gì trong GUI củaISIS