Python --处理nc数据

首先你得安装 netCDF4这个库 (pip install)
简单读取 如下
Python --处理nc数据_第1张图片
可以看到
dimensions(sizes): longitude(480), latitude(241), time(480)
variables(dimensions): float32 longitude(longitude), float32 latitude(latitude), int32 time(time), int16 z(time,latitude,longitude)
这是一个三维数据集,空间两维(z高度层为1,500hPa)、时间一维

数据提取

Python --处理nc数据_第2张图片
注意:变量是 z ,shape= (480,241,480)
时间40年x12月,空间0.75°x0.75°

np.array把数据转化成数组(矩阵)类型

import numpy as np
import netCDF4 as nc

d=nc.Dataset('weishi79_18.nc')
time=np.array(d.variables['time'])
d_lon=np.array(d.variables['longitude'])
d_lat=np.array(d.variables['latitude'])
ws=np.array(d.variables['z'])

只做冬季,挑选所有12,1,2月
现有时间序列:197901-201812

a=[]
for t in range(1,481):
    if t%12==1 or t%12==2 or t%12==0 :
        a.extend([t-1])
ws_t=ws[a,:,:]    
ws_winter=np.zeros((39,241,480))
for m in range(0,39):
    ws_winter[m,:,:]=(ws_t[m*3+2,:,:]+ws_t[m*3+3,:,:]+ws_t[m*3+4,:,:])/3

80年-18年冬季平均就得到了
求距平值

ws_mean=np.zeros((241,480))
ws_mean=np.mean(ws_winter,axis=0)
ws_st=np.zeros((39,241,480))
for m in range(0,39):
    ws_st[m,:,:]=ws_winter[m,:,:]-ws_mean[:,:]    

你可能感兴趣的:(气象数据,Python)