2017-06-15 24 views
1

gdalのラスターを関数内に書きたいと思っています。私は、出力ファイル名をこのように定義することができると思ったPython - gdalを使ってラスターを書く

unsupported operand type(s) for %: 'int' and 'str'

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 

は、私はこのエラーを取得します。何故なの?

助けてくれてありがとう!

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

以上のようなものでなければなりません:私はその行が思う

+0

エラーが発生した行をヒントにしてください。 – barny

+0

出力ファイル名を定義するときにエラーが発生しました dataset = driver.Create( "%s"、NROWS、NCOLS、1、gdal.GDT_Float32%(OutputFile)) – Lerchengott

+0

はいgdal.GDT_Float32%(OutputFile)doesnたくさんの意味があります。 – barny

答えて

0

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

関連する問題