Python - 用 gdal 写栅格
Python - Write Raster with 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
我收到这个错误:
unsupported operand type(s) for %: 'int' and '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/。
我想在一个函数中用 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
我收到这个错误:
unsupported operand type(s) for %: 'int' and '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/。