- 积分
- 86
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-11-26
- 最后登录
- 1970-1-1
![[diva211] 粉丝数:32 微博数:449 新浪微博达人勋](source/plugin/sina_login/img/light.png)
|
按照您说的先计算再转置,成功了,非常感谢!
f = addfile("k:/MI/ozone.nc")
udata = f['u'][:,::-1,"36.66","117.04"]
vdata = f['v'][:,::-1,"36.66","117.04"]
rdata=f['r'][:,::-1,"36.66","117.04"]
tdata=f['t'][:,:,"36.66","117.04"]
Tdata=f['valid_time'][:]
wdata=f['w'][:,::-1,"36.65","117.04"]
odata = f['o3'][:,:, "36.65", "117.15"]
# 获取气压层数据
level = odata.dimvalue(1)
# 计算空气密度 (kg/m³)
Rd = 287.05 # 干空气气体常数 (J/(kg·K))
air_density = (level * 100) / (Rd * tdata) # 气压转换为Pa,计算密度
# 将臭氧质量混合比转换为质量浓度 (µg/m³)
ozone_concentration = odata * air_density * 1e9 # 1e9 将 kg/m³ 转换为 µg/m³
oc=ozone_concentration[:,::-1]
o3=oc.T
tdata=f['t'][:,::-1,"36.66","117.04"]
odata = f['o3'][:,::-1, "36.65", "117.15"]
u=udata.T*2.5
v=vdata.T*2.5
r=rdata.T
t=tdata.T
w=wdata.T
o=odata.T
# 将气压层转换为标准高度
level = o.dimvalue(0)
level = level[::-1] # 反转气压层顺序
height = meteolib.pressure_to_height_std(level)
height = height[:] / 1000 # 转换为千米
o.setdimvalue(0, height)
# 获取时间维度数据
tt = o.dimvalue(1)
#世界时转北京时
tt = tt + 3.6 * 8
# 绘制臭氧质量浓度
layer1 = contourf(tt, height, o3)
colorbar(layer1, fontsize=16, bold="True")
# 设置x轴
xaxis(axistype='time', timetickformat='ddHH')
xticks(fontsize=15, bold=True)
xlabel('Time (UTC)', fontsize=15, bold="True")
xlim(tt[169], tt[288])
# 设置y轴
ylim(height.min(), 1.6)
levy = array([1000, 975, 950, 925, 900, 875, 850])
yticks(o.dimvalue(0), levy)
ylabel('Pressure (hPa)', fontsize=15, bold="True") |
-
|