我有两个月的全球网格数据集液态水当量厚度的格式(时间,纬度,伦敦)。两者具有相同的空间和时间分辨率。我想把它们关联起来,但是numpy.corrcoef()
只适用于2D数组,而不是3D数组。
所以我想把两个变量在整个时间序列中的同一个网格点(x,y)关联起来。事实上,我想要一个新的nc文件与网格的相关系数。在
import numpy as np
from netCDF4 import dataset
wdir = '.../Data/'
# read GRACE NCs
GRACE_GFZ = Dataset(wdir+'GRACE/GRCTellus.GFZ.200204_201607.nc','r')
GRACE_JPL = Dataset(wdir+'GRACE/GRCTellus.JPL.200204_201607.nc','r')
两个变量(gfz和jpl)在相同的位置有相同数量的缺失值。在
^{pr2}$由于它们具有相同的时间和空间分辨率,因此时间、经度和纬度可以同时用于两者。在
time = GRACE_GFZ.variables['time'][:]
lons = GRACE_GFZ.variables['lon'][:]
lats = GRACE_GFZ.variables['lat'][:]
gfz = GRACE_GFZ.variables['lwe_thickness'][:]
jpl = GRACE_JPL.variables['lwe_thickness'][:]
这里我要穿过网格,把corrcoef放入一个数组中。这给了我一堆2x2矩阵。在
test = []
for x in range(len(lats)):
for y in range(len(lons)):
print(np.corrcoef(gfz[:,x,y],jpl[:,x,y]))
如何将每个点的corrcoef放入正确位置的新数组中?在
我克服了以下问题:
基本上,我做了一个包含零的矩阵,并用corrcoef矩阵中的相关系数值替换它们。我对每一个网格单元都做了这个,每个网格单元都有一个for循环。 之后,我创建了一个新的netcdf文件,定义了所有的维度和变量。在
^{pr2}$欢迎提出改进建议!在
相关问题 更多 >
编程相关推荐