收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

[Python] 【数据处理】meteoinfolab 水汽通量散度计算

[复制链接]
                                                                                                   
( _; z$ J2 v2 a% [+ @' d4 H2 j
摘自《MeteoInfo气象GIS、科学计算与可视化平台》182页。

7 B+ P& ~! ]7 |1 ]  T# W4 _
水汽通量散度是分析水气循环和降水常用的指标之一,需要用到风场、温度和湿度进行计算。下面这个例子从多个NetCDF中分别读取700hPa温度、风场U/V风量、相关湿度数据。
用meteolib包的saturation_mixing_ratio函数来计算饱和比湿,再通过计算比湿,再用divergence函数计算散度。
* l/ M" n  P4 s
相关数据下载可以访问meteoinfo官网这个页面,www.52ocean.cn
adb88cd5b309b6e04908d9eab742b624.png

  v* a2 U+ s! I3 W' ~
' I2 j  b# C2 z9 `! ]! Y, i
[Python] 纯文本查看 复制代码
print 'Open data files...'
f_air = addfile('/Users//Documents/MeteoInfo/milab_sample/temp_adv//air.2011.nc')
f_uwnd = addfile('/Users//Documents/MeteoInfo/milab_sample/temp_adv//uwnd.2011.nc')
f_vwnd = addfile('/Users//Documents/MeteoInfo/milab_sample/temp_adv//vwnd.2011.nc')
f_rhum = addfile('/Users//Documents/MeteoInfo/milab_sample/temp_adv//rhum.2011.nc')

print 'Read data array...'
tidx = 173 # Jun 23, 2011
t = f_air.gettime(tidx)
lidx = 3 # 700 hPa
air = f_air['air'][tidx,lidx,:,:]
uwnd = f_uwnd['uwnd'][tidx,lidx,:,:]
vwnd = f_vwnd['vwnd'][tidx,lidx,:,:]
rhum = f_rhum['rhum'][tidx,lidx,:,:]

# Calculate
print 'Calculate...'
prs = 700
g = 9.8
qs = meteolib.saturation_mixing_ratio(prs, air-273.15)
q = qs * rhum / 100
qhdivg = meteolib.divergence(q*uwnd/g, q*vwnd/g) * 1000

#Plot
print 'Plot...'
axesm()
geoshow('coastline', color='k')
layer = contourf(qhdivg, 20)
title(u'Water Vapor Flux Divergency (气象可视化)')
colorbar(layer)
xlim(0, 360)
ylim(-90, 90)

savefig('/Users//Desktop/MeteoInfo/script/wxj/water_vapor_flux_divg.png', 600, 300, dpi=300)

, v1 A' d/ O/ O3 X4 N

: q9 p. `  r# O; j0 e欢迎大家加入meteoinfo官方qq交流群,一起交流。王老师和众多气科院的老师们都在的。只要申请,我都会通过的。               
9 n8 e2 [, f( ?2 j: E" W; ]( o; \7 H
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
冯建
活跃在2022-11-8
快速回复 返回顶部 返回列表