ss_147=np.zeros((147,147)) pi=3.14159265 R=6.37e6 for ilat in range(0,128): for ilon in range(0,512): delta_lat=lat[ilat]-lat_t delta_lon=lon[ilon]-lon_t distance=(delta_lat*R*math.pi/180.)**2 + (delta_lon*R*math.cos(lat[ilat]*math.pi/180.)*math.pi/180.)**2 # print(distance) dmin=np.where(distance==np.min(distance)) latind_min=dmin[0] lonind_min=dmin[1] # print(latind_min,lonind_min) # print(pre_147[latind_min,latind_min],pp[ilat,ilon]) ss_147[latind_min,lonind_min]=s[ilat,ilon]+ss_147[latind_min,lonind_min]
时间: 2024-04-16 11:24:02 浏览: 175
torch_scatter-2.1.2-cp310-cp310-macosx_11_0_x86_64.whl.zip
你的代码中计算了一个147x147的数组`ss_147`,其中每个元素是通过对原始大小为(128, 512)的数组进行格点累加得到的。
根据你的代码,我假设`lat`是一个长度为128的纬度数组,`lon`是一个长度为512的经度数组。
以下是修改后的代码,将原始大小为(128, 512)的数组通过格点累加插值成(147, 147)的数组`ss_147`:
```python
import numpy as np
import math
ss_147 = np.zeros((147, 147))
pi = 3.14159265
R = 6.37e6
for ilat in range(128):
for ilon in range(512):
delta_lat = lat[ilat] - lat_t
delta_lon = lon[ilon] - lon_t
distance = (delta_lat * R * math.pi / 180.)**2 + (delta_lon * R * math.cos(lat[ilat] * math.pi / 180.) * math.pi / 180.)**2
dmin = np.unravel_index(np.argmin(distance), distance.shape)
latind_min, lonind_min = dmin
ss_147[latind_min, lonind_min] += s[ilat, ilon]
```
这样,`ss_147` 就是通过格点累加和插值后的结果数组。请确保在运行代码之前定义了`lat_t`和`lon_t`,且`lat`和`lon`是合适的纬度和经度数组。
阅读全文