मुझे अजगर में बहुभुज फ़ंक्शन का उपयोग करने में परेशानी हो रही है। इसके लिए कुकबुक उदाहरण यहां पाया जा सकता है ।
मेरे कोड का प्रासंगिक भाग है:
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 में विशेषता तालिका खोलता हूं, तो यह खाली है:
संपादित करें:
Raster -> रूपांतरण -> बहुभुज उपकरण का उपयोग करके रूपांतरण QGIS में ठीक काम करता है
बहुभुज होने के लिए रेखापुंज का स्क्रीनशॉट:
और QGIS उपकरण से परिणामी रूपांतरण का स्क्रीनशॉट:
मैं विंडोज 7, जीडीएएल संस्करण 1.10.0-3 पर एक्सिल्टेड डिस्ट्रो का उपयोग कर रहा हूं
समस्या यह है कि मैं GDAL और कुकबुक उदाहरण का उपयोग करके अजगर में एक रेखापुंज को बहुभुज नहीं कर सकता, मैं QGIS GUI में कोई समस्या नहीं के साथ इस एक ही रेखापुंज को बहुभुज कर सकता हूं