本科研训练需要用到的数据(全球海温nc数据,分辨率为5˚)
链接: https://pan.baidu.com/s/1NXHrX46hjubZIWObny6CXA?pwd=mbk3 提取码: mbk3
import numpy as np
from netCDF4 import Dataset
# 读取数据
ncf = Dataset('./WOA2009_SST_annual.nc')# 改为数据的真实路径
sst = ncf.variables['t_mn'][:]
lon = ncf.variables['lon'][:]
lat = ncf.variables['lat'][:]
ncf.close()
print(sst.shape) #维度为1(时间)、33(深度)、36(纬度)和72(经度)
# 想去掉时间维度;只需要海洋表面温度(最上面的深度水平)
sst = np.squeeze(sst)[0, :, :]
print(sst.shape) #(36, 72)
# 将经度和纬度一维向量组合成网格化的二维数组
x,y = np.meshgrid(lon, lat)
# 地球网格面积加权,计算权重
cosy = np.cos(np.deg2rad(y))
# 取一个变量(如SST)的面积加权平均值
print('The area-weighted global mean SST is:')
print(u'{0:.2f}°C ({1:.1f}K)'.format(np.ma.average(sst, weights=cosy), np.ma.average(sst+273.15, we