我有四个2维np数组。每个阵列的形状是(203,135)。现在我希望将所有这些数组连接成一个关于纬度和经度的单个数组。
我使用下面的代码来读取数据
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
我根据要求为此问题创建了玩具数据集。 我想要的是从四个(a,b,c,d)数组中获取一个单独的数组。其维度应该类似于(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 :(得分:0)
这应该是一个评论,但评论空间不足以解决这些问题。因此我在这里发帖:
你说你有4个输入数组(a,b,c,d),它们以某种方式集成到输出数组中。据了解,这些阵列中的两个包含位置信息(x,y),例如经度和纬度。代码中唯一可以组合多个输入数组的行是:
def set_element(elements, x, y, data):
# Set element with two coordinates.
elements[x + (y * 10)] = data
这里有四个输入变量(元素,x,y,数据),我假设它们是你的输入数组(a,b,c,d)。在此操作中,您尚未组合它们,但是使用新值(数据)覆盖元素元素(index:x + 10y)。
因此,我不了解您的目标输出。
当我要求提供玩具数据时,我有类似的想法:
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)或玩具数据的更多信息,以便我们可以推断出您要求的功能。