我想在函数中用gdal编写栅格。

def WriteRaster(InputArray, OutputFile, NROWS, NCOLS, XULCorner, YULCorner, Cellsize, wkt_projection):
driver = gdal.GetDriverByName("GTiff")
dataset = driver.Create("%s", NROWS, NCOLS, 1, gdal.GDT_Float32 %(OutputFile))
dataset.SetGeoTransform((XULCorner,Cellsize,0,YULCorner,0,-Cellsize))
dataset.SetProjection(wkt_projection)
dataset.GetRasterBand(1).WriteArray(InputArray)
dataset.FlushCache()
return None


我收到此错误:


  %不支持的操作数类型:“ int”和“ str”


我以为可以这样定义输出文件名。为什么不?

感谢您的帮助!!!

最佳答案

我认为那条线:

dataset = driver.Create("%s", NROWS, NCOLS, 1, gdal.GDT_Float32 %(OutputFile))


应该更像是:

dataset = driver.Create("%s"%(OutputFile), NROWS, NCOLS, 1, gdal.GDT_Float32 )


看到我移动了%(OutputFile)位?

虽然,如果OutputFIle是字符串,则可以使用:

dataset = driver.Create(OutputFile, NROWS, NCOLS, 1, gdal.GDT_Float32 )


有关格式字符串的更多信息,请参见https://pyformat.info/

关于python - Python-用gdal编写光栅,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44569574/

10-12 22:33