2016-07-19 6 views
0

私は4つの2次元np配列を持っています。各アレイの形状は(203,135)である。今度は、これらの配列をすべて緯度と経度に関して1つの配列に結合します。複数の2d配列を1つの配列に組み合わせる/ pythonを使って

私はデータに

import pandas as pd 
import numpy as np 
import os 
import glob 
from pyhdf import SD 
import datetime 
import mpl_toolkits.basemap.pyproj as pyproj 

DATA = ({}) 
files = glob.glob('MOD04*') 
files.sort() 
for n, f in enumerate(files):  
    SDS_NAME='Deep_Blue_Aerosol_Optical_Depth_550_Land' 
    hdf=SD.SD(f) 
    lat = hdf.select('Latitude') 
    latitude = lat[:] 
    min_lat=latitude.min() 
    max_lat=latitude.max() 
    lon = hdf.select('Longitude') 
    longitude = lon[:] 
    min_lon=longitude.min() 
    max_lon=longitude.max() 
    sds=hdf.select(SDS_NAME) 
    data=sds.get() 

    p = pyproj.Proj(proj='utm', zone=45, ellps='WGS84') 
    x,y = p(longitude, latitude) 

    def set_element(elements, x, y, data): 
     # Set element with two coordinates. 
     elements[x + (y * 10)] = data 

    elements = [] 
    set_element(elements,x,y,data) 

を読むために以下のコードを使用しているしかし、私はエラーを得た:一つの要素を持つ唯一の整数配列を使用して、データを見つけることができるインデックス

に変換することができます。https://drive.google.com/open?id=0B2rkXkOkG7ExMElPRDd5YkNEeDQ

私はこの問題のためのおもちゃのデータセットを要求に従って作成しました。 私が望むのは、4つ(a、b、c、d)の配列から1つの配列を得ることです。次元は次のようなものにする必要があります(406,270)

a = (np.random.rand(27405)).reshape(203,135) 
b = (np.random.rand(27405)).reshape(203,135) 
c = (np.random.rand(27405)).reshape(203,135) 
d = (np.random.rand(27405)).reshape(203,135) 
a_x = (np.random.uniform(10,145,27405)).reshape(203,135) 
a_y = (np.random.uniform(204,407,27405)).reshape(203,135) 
d_x = (np.random.uniform(150,280,27405)).reshape(203,135) 
d_y = (np.random.uniform(204,407,27405)).reshape(203,135) 
b_x = (np.random.uniform(150,280,27405)).reshape(203,135) 
b_y = (np.random.uniform(0,202,27405)).reshape(203,135) 
c_x = (np.random.uniform(10,145,27405)).reshape(203,135) 
c_y = (np.random.uniform(0,202,27405)).reshape(203,135) 

ヘルプが必要ですか?

+0

おもちゃのデータ入力を定義してください(リンクをポストするのではなく)、このおもちゃのデータの例で達成したい出力を定義してください。 –

+1

また、あなたのforループで、あなたはset_elementsによって達成した前の結果を効果的に消去する要素= []を繰り返し設定します。 –

+0

@NikolasRieble、Okey私はおもちゃのデータを作成して投稿します – bikuser

答えて

0

これはコメントですが、コメントスペースではこれらの質問には十分ではありません。したがって、私はここに投稿しています:

何とか出力配列に統合される4つの入力配列(a、b、c、d)があります。理解される限り、これらの配列のうちの2つは、経度および緯度などの位置情報(x、y)を含む。あなたは、いくつかの入力配列を組み合わせて、あなたのコード内の行だけは、ここにある:

def set_element(elements, x, y, data): 
     # Set element with two coordinates. 
     elements[x + (y * 10)] = data 

ここでは、私はあなたの入力配列であることを前提とし、4つの入力変数(要素、X、Y、データ)(A、Bを持っています、c、d)。この操作ではまだそれらを結合しませんが、要素の要素(index:x + 10y)を新しい値(data)で上書きします。

したがって、私はあなたの目標出力を理解していません。

私はおもちゃのデータを求めていたとき、私は心の中でこのような何かを持っていたが:

a = [[1,2]] 
b = [[3,4]] 
c = [[5,6]] 
d = [[7,8]] 

これは、簡単に言うことができるような簡単な例のようになります。

を私が欲しいものはこれです:

res = [[[1,2],[3,4]],[[5,6],[7,8]]] 

次に、回答を見つけるお手伝いをすることができます。

x = a + b * c + dなどの数式で表記したい操作や、おもしろいデータを推論できるように、おもちゃのデータを追加してください。

+0

私を修正して私の質問を明確にしていただきありがとうございます。ステートメント...オハイオ州私はしようとします – bikuser

関連する問題