ディレクトリ内の31個のファイルからappend
データをnumpy
配列に変換しようとしています。私はラインを持っている理由でa.appendを使用して所望の形状の配列を作成する
directory = r"C:\Users\matth\Downloads\AMSRE"
for root, dirs, filenames in os.walk(directory):
for f in filenames:
if f.startswith("AMSR_E_L3_DailyLand_V06_201001"):
log = open(os.path.join(root, f), 'r')
file_name = (("C:\\Users\\matth\\Downloads\\AMSRE\\") + f)
hdf = SD(file_name, SDC.READ)
g = gdal.Open(('HDF4_EOS:EOS_GRID:') + file_name + (':Ascending_Land_Grid:A_Soil_Moisture'))
sm = g.ReadAsArray()
lons = np.fromstring (urllib2.urlopen("ftp://sidads.colorado.edu/pub/tools/easegrid/lowres_latlon/MLLONLSB").read(), \
dtype=np.int32)/100000.
lats = np.fromstring (urllib2.urlopen("ftp://sidads.colorado.edu/pub/tools/easegrid/lowres_latlon/MLLATLSB").read(), \
dtype=np.int32)/100000.
lons = lons.reshape(sm.shape)
lats = lats.reshape(sm.shape)
smm = np.ma.array (sm, mask=np.logical_or (sm==-9999, sm==9999))
soil_moisture = []
soil_moisture.append(smm)
soil_moisture2006 = np.asarray(soil_moisture)
output = np.vstack(soil_moisture2006)
すべてがAMSR_E_L3_DailyLand_V06_201001
で始まるファイル、
if f.startswith("AMSR_E_L3_DailyLand_V06_201001"):
1つのファイルは(586, 1383)
の形状を有しています。ディレクトリに31個のファイルがあるので、numpy
の形状の(31, 586, 1383)
の配列を持っています。しかし、 output
配列のshape
を私のコードで作ったとき、その形状は(586, 1383)
であり、私はなぜそれがわからないのですか?誰もを使用して形状がnum3の配列を作成する方法を知っていますか?(31, 586, 1383)
?前もって感謝します。
ループの外側に 'soil_moisture'を初期化します。また、ループの後に配列に変換します。 'vstack'は必要ありません。小さなインタラクティブなケースでこれを練習しましたか?小さく始める。 – hpaulj