2017-08-04 9 views
0

私は多くのデータセットを持っています。すべてが、経度と緯度を表す(586, 1383)の形をしています。データセットは土壌水分データ用です。例えばprint(dataset1[2, 435])は私に0.354という値を与えます。複数のデータセットのためのnumpy配列の作成

現在、これらのデータセットは31個あります。私は(31, 586, 1383)の形をしたnumpy配列を作成して、これらすべてのデータセットを保持したいと考えています。 print(smm.shape)は私に(586, 1383)を与え、最終的に

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)) 

:私は現在、私はそうのような配列に追加したいすべてのデータセットを開くことができます。上のコードは緯度と経度のデータを取得することでした。私はおそらくforループを使用して連続してファイルを空の配列に追加することを考えていましたが、どうしたらうまくいくのでしょうか。誰も私がこのコードをどのように扱うことができるか知っていますか、それとも変更するのですか?(31, 586, 1383)という形の配列にデータセットを追加できますか?

+0

なぜ 'pd.DataFrame(smm)'だけではないのですか? –

+0

@cᴏʟᴅsdataデータフレームのサイズはまだ '(586、1383)でした。 ' –

+0

ああ、そのビットは見ませんでした。パンダが3Dデータフレームをどれだけうまくサポートしているかは不明です。 –

答えて

0

pandas documentationで示されるように、DataFrameは2次元構造です。

DataFrameは、潜在的に異なるタイプの列を持つ2次元のラベル付きデータ構造です。スプレッドシートやSQLテーブル、またはSeriesオブジェクトの辞書のように考えることができます。

ただし、データフレームのリストまたはすべてのデータを同じデータフレームに含めることができます。これには、起点を示す追加の列があります。

関連する問題