2017-06-15 68 views
1

我想在函數中寫入gdal的光柵。Python - 使用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'

我想我可以定義輸出文件名這種方式。爲什麼不?

感謝您的幫助!

+0

給我們一個提示錯誤發生在哪條線上的提示? – barny

+0

當我想要定義輸出文件名稱時出現錯誤 dataset = driver.Create(「%s」,NROWS,NCOLS,1,gdal.GDT_Float32%(OutputFile)) – Lerchengott

+0

Yeah gdal.GDT_Float32%(OutputFile)doesn沒有多大意義 – barny

回答

0

我認爲行:

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/有關格式字符串的一些更多的信息。

+0

非常感謝您的幫助。現在工作正常 – Lerchengott