ฉันมีปัญหาในการใช้ฟังก์ชัน 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 -> เครื่องมือรูปหลายเหลี่ยม
ภาพหน้าจอของแรสเตอร์ที่จะจัดรูปแบบ:
และภาพหน้าจอของการแปลงผลลัพธ์จากเครื่องมือ QGIS:
ฉันใช้เครื่องคิดเลขทางธุรกิจบน Windows 7, GDAL เวอร์ชั่น 1.10.0-3
ปัญหาคือฉันไม่สามารถใช้หลายรูปแบบแรสเตอร์ในไพ ธ อนโดยใช้ GDAL และตัวอย่างตำราอาหารฉันสามารถสร้างรูปหลายเหลี่ยมแรสเตอร์เดียวกันนี้โดยไม่มีปัญหาใน QGIS GUI