Python - 用gdal写Raster

时间:2017-06-15 14:02:47

标签: python raster gdal

我想在函数中编写一个带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'

的操作数类型

我以为我可以用这种方式定义输出文件名。为什么不呢?

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:1)

我认为那句话:

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/