如何使用Haversine公式并置2个分辨率不同的nc文件

时间:2019-07-31 13:44:38

标签: python netcdf haversine

我正在尝试使用python中的Haversine公式并置2个不同分辨率的数据集。

此循环使用Haversine公式花费太多时间来计算距离。为了减少不必要的并置2个非常远的数据点,我给了一个条件,使其跳到下一个网格点

for i in range(len(lati1)):
for j in range (len(long1)):
    for x in range(len(lati2)):
        for y in range(len(long2)):

            lat1 = radians(lati1[i])
            lon1 = radians(long1[j])
            lat2 = radians(lati2[x])
            lon2 = radians(long2[y])



       temp[0][i][j]
            dlat = lat2 - lat1
            dlon = lon2 - lon1
            a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
            c = 2 * atan2(sqrt(a), sqrt(1 - a))
            distance = R * c 
            print distance
            if ( distance <= 3.5):
                print distance, lati1[i], long1[j],lati2[x], long2[y], temp[i][j], preci[x][y]
                writer.writelines("\r")
                writer.writelines( (' ').join([distance, lati1[i], long1[j], temp[i][j], preci[x][y]]))
            elif (distance < 5.0):
                break
    break
j=j+1

长时间运行此程序后,它显示如下

572
572
3.2412380942 0.13999939 60.100006 0.125 60.125 287.77 0.0
Traceback (most recent call last):

  File "<ipython-input-36-ac8328bf9abd>", line 40, in <module>
    writer.writelines( (' ').join([distance, btlat[i], btlon[j], btlat[0,i,j], predata[x,y]]))

  File "/home/krishna/.local/lib/python2.7/site-packages/numpy/ma/core.py", line 3174, in __getitem__
    dout = self.data[indx]

IndexError: too many indices for array

〜我可以更改数组索引,但是还有更好的解决方案吗? 搭配?

您可以帮我解决这个问题吗? 谢谢

0 个答案:

没有答案