Geotiffを利用して解析を行ってるものです。
フォルダ内にあるGeotiffを読み込んで,全ての合計値を出す作業をしています。
avetest.tifを初期値として,残りの*.tifを読み込んで,積算するプログラムを作成したのですが,
2回目以降にエラーが起きてしまいます。原因を調べているのですが,分かりません。
どこの部分がおかしいのか教えてください。
import
1import sys 2import numpy 3import numpy as np 4import subprocess 5from osgeo import gdal, gdalconst, gdal_array, osr 6import matplotlib.pyplot as plt 7import matplotlib.cm as cm 8import glob 9from PIL import Image 10import PIL 11 12path = "/media/student/data1" 13path1 = "/media/student/data1/test/" 14 15datalist = glob.glob(path1 + "*.tif") 16datalist1 = glob.glob(path1 + "avetest.tif") 17for data1 in datalist1: 18 for data in datalist: 19 name1 = data[len(path1)+0:-4] 20 with open(data, 'r') as target_file: 21 if target_file: 22 print name1+ "OK" 23 data = gdal.Open(data, gdalconst.GA_ReadOnly) # tif (read only) 24 data1= gdal.Open(data1, gdalconst.GA_ReadOnly) # tif (read only) 25 add = data.GetRasterBand(1).ReadAsArray() # Band1 numpy array 26 b1 = data1.GetRasterBand(1).ReadAsArray() #Band1numpyarray 27 sum_v = b1 + add #sum 28 pil_img = Image.fromarray(sum_v) 29 print "sum...ok" 30 outdata = path1+ "avetest.tif" 31 pil_img.save(outdata) 32 outdata = gdal.GetDriverByName('GTiff').Create(path1 + "avetest.tif" , 2500, 1500, 1, gdal.GDT_Float32) # empty_output path,xsize,ysize,band,dtype 33 xmin = 130 #latitude 34 ymax = 30 #longitude 35 resx = 0.02 #grid 36 resy = 0.02 #grid 37 outdata.SetGeoTransform([xmin, resx, 0, ymax, 0, -resy]) 38 srs = osr.SpatialReference() 39 srs.ImportFromEPSG(4326) # WGS84 40 outdata.SetProjection(srs.ExportToWkt()) # Combine spatial information 41 outdata.GetRasterBand(1).WriteArray(sum_v) # b1_numpy_2matrix 42 outdata.FlushCache() # read file 43 outdata = None 44
- エラー部分
student@student:/media/student/data1$ python a_sum.py 20161001-0010OK sum...ok 20161001-0020OK Traceback (most recent call last): File "a_sum.py", line 27, in <module> data1= gdal.Open(data1, gdalconst.GA_ReadOnly) # tif (read only) File "/usr/lib/python2.7/dist-packages/osgeo/gdal.py", line 2943, in Open return _gdal.Open(*args) RuntimeError: not a string
どうやら,2回目の27行目がエラーを起こしているのですが,原因が分かりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/14 07:26
2017/11/14 07:37
2017/11/15 02:39