提取nc文件用Xarray
时间: 2023-09-05 18:11:37 浏览: 110
提取nc文件的代码
好的,以下是使用Xarray提取nc文件的代码实现:
```python
import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
# 读取nc文件
ds = xr.open_dataset('sst.nc')
# 选取经纬度范围在170w-120w,5s-5n之间的数据
sst = ds.sst.sel(lon=slice(-170, -120), lat=slice(5, -5))
# 计算NINO3.4指数
nino34 = np.average(sst, axis=(1, 2), weights=np.cos(np.deg2rad(sst.lat)))
# 计算NINO4.3指数
nino43 = np.average(sst, axis=(1, 2))
# 计算两个指数的相关系数
corr = np.corrcoef(nino43, nino34)[0, 1]
# 绘制时间序列图和相关系数图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
nino43.plot(ax=ax1)
ax1.set_xlabel('Year')
ax1.set_ylabel('NINO4.3 Index')
ax1.set_title('Time Series of NINO4.3 Index')
sst_spatial_mean = sst.mean(dim=['lon', 'lat'])
ax2.scatter(nino43, nino34)
ax2.set_xlabel('NINO4.3 Index')
ax2.set_ylabel('NINO3.4 Index')
ax2.set_title(f'Correlation Coefficient: {corr:.2f}')
plt.show()
```
其中,我们使用`xr.open_dataset`读取nc文件,并使用`ds.sst.sel`选取经纬度范围在170w-120w,5s-5n之间的数据。接着,我们分别计算了NINO3.4指数和NINO4.3指数,并计算了两个指数之间的相关系数。最后,我们绘制了时间序列图和相关系数图,分别展示了NINO4.3指数的变化趋势和NINO4.3指数与NINO3.4指数的相关关系。
阅读全文