亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用GDAL柵格化(python API)按屬性指定刻錄值?

如何使用GDAL柵格化(python API)按屬性指定刻錄值?

楊__羊羊 2022-08-25 13:32:25
我正在使用GeoTiff模板將形狀文件轉換為GeoTiff,同時通過刻錄輸出值。我想輸出的是一個.tif,其中刻錄值對應于給定屬性的值。我發現這是燒焦到與我的屬性字段中的值不對應的奇怪值。以下是我目前擁有的內容:gdal.RasterizeLayer()ATTRIBUTEgdal.RasterizeLayer()    gdalformat = 'GTiff'    datatype = gdal.GDT_Byte    # Open Shapefile    shapefile = ogr.Open(self.filename)    shapefile_layer = shapefile.GetLayer()    # Get projection info from reference image    image = gdal.Open(ref_image, gdal.GA_ReadOnly)    output = gdal.GetDriverByName(gdalformat).Create(output_tif, image.RasterXSize, image.RasterYSize, 1, datatype,                                                     options=['COMPRESS=DEFLATE'])    output.SetProjection(image.GetProjectionRef())    output.SetGeoTransform(image.GetGeoTransform())    # Write data to band 1    band = output.GetRasterBand(1)    band.SetNoDataValue(0)    gdal.RasterizeLayer(output, [1], shapefile_layer, options=['ATTRIBUTE=FCode'])    # Close datasets    band = None    output = None    image = None    shapefile = None    # Build image overviews    subprocess.call("gdaladdo --config COMPRESS_OVERVIEW DEFLATE " + output_tif + " 2 4 8 16 32 64", shell=True)發生的情況是,輸出.tif為每個屬性正確分配了不同的刻錄值,但該值與屬性值不對應。例如,輸入屬性值 FCode=46006 將變為刻錄值 182(不清楚為什么!我嘗試添加和刪除該選項,并添加和刪除的“ 3D”選項。不影響輸出刻錄值。'COMPRESS=DEFLATE'gdal.RasterizeLayer()您可以在此處查看輸入形狀文件和屬性值:輸入 .shp以及具有不正確值的輸出,如下所示:輸出柵格
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我自己修復了這個問題,將類型更改為.gdal.GDT_Int32



查看完整回答
反對 回復 2022-08-25
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號