【发布时间】:2015-06-16 17:03:40
【问题描述】:
我有三个数组
lat=[15,15.25,15.75,16,....30]
long=[91,91.25,91.75,92....102]
data=
array([[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
...,
[-99.9, -99.9, -99.9, ..., 0. , 0. , 0. ],
[-99.9, -99.9, -99.9, ..., 0. , 0. , 0. ],
[-99.9, -99.9, -99.9, ..., 0. , 0. , 0. ]])
它是 [44 cols and 60 rows] 与 long x lat 相同
如果我输入任何点 (16.3,101.6),我需要找出最近的网格并从第三个数组中从该网格中提取数据。我怎样才能在 python 中使用 numpy 呢?这里我举一个例子,但在实际问题中,我有几点。
这个功能我试过了,
def getclosest_ij(lats,lons,latpt,lonpt):
dis_sq1=(lats-latpt)
dis_sq2=(lons-lonpt)
minidex_lat=dis_sq1.argmin()
minidex_lon=dis_sq2.argmin()
return minidex_lon,minidex_lat
【问题讨论】:
-
请向我们展示您解决此问题的尝试
-
我试图计算每个 lat 和 long 值的绝对距离,并返回该索引以提取该数据,但我得到了错误的值。我在我的问题中添加了我的功能。
-
只需为差值
np.abs(lats-latpt)等添加绝对值,您的实现应该可以正常工作。
标签: python python-2.7 numpy