爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 117|回复: 2

[求助] 急急急!python计算水汽通量及其散度数值大小异常问题

[复制链接]
发表于 昨天 19:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题:整层水汽通量的大致范围应该是200-400,水汽通量散度大概在-2-2为什么算出来的水汽通量最大值是1514,水汽通量散度是-0.5-0.5问题到底出在哪里呀

# 读取数据
ds = xr.open_dataset('G:/LPT/postvar202007051200100.nc')
# 读取1000-300hPa风场和比湿
q = ds['SPFH_P0_L100_GLL0'].sel(lv_ISBL0=slice(30000,100000))#单位:kg/kg
q = q[::-1,::-1, :]# 确保气压是递减的(从地面到高空),纬度为从南到北
u = ds['UGRD_P0_L100_GLL0'].sel(lv_ISBL0=slice(30000,100000))#单位:m/s
u = u[::-1,::-1, :]
v = ds['VGRD_P0_L100_GLL0'].sel(lv_ISBL0=slice(30000,100000))
v = v[::-1,::-1, :]

# 计算水汽通量
g = 9.81# 重力加速度
qx = q * u / g  # 东西向水汽通量
qy = q * v / g  # 南北向水汽通量

# 计算整层水汽通量
qu_total = np.trapz(qx, q.lv_ISBL0, axis=0)  # 东西向整层水汽通量 (kg/(m·s))
qv_total = np.trapz(qy, q.lv_ISBL0, axis=0)  # 南北向整层水汽通量 (kg/(m·s))
print(qu_total.max(),qv_total.max())
# 计算水汽通量的大小
water_vapor_flux = np.sqrt(qu_total ** 2 + qv_total ** 2)
print(water_vapor_flux.max())#1514.4551# 读取经度和纬度变量
lons = q.lon_0
lats = q.lat_0

# 计算网格间距
dx, dy = mpcalc.lat_lon_grid_deltas(lons, lats)
# 计算整层水汽通量散度
div_total = mpcalc.divergence(qu_total, qv_total, dx=dx, dy=dy)
print(div_total.max(), div_total.min())#0.4894305675005015 -0.5806067644805083

密码修改失败请联系微信:mofangbao
发表于 14 小时前 | 显示全部楼层
本帖最后由 tulalang 于 2026-1-15 08:22 编辑

你这是复现文献吗?看下来,感觉代码没问题啊,通量那个似乎没其他改的了吧?通量散度那个不然你试试先求出各层再积分试试?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 小时前 | 显示全部楼层
tulalang 发表于 2026-1-15 08:20
你这是复现文献吗?看下来,感觉代码没问题啊,通量那个似乎没其他改的了吧?通量散度那个不然你试试先求出 ...

谢谢,看别人对比了先求散度再积分和先积分再求散度,差别不大。我先画别的图了,水汽通量尝试了好多办法,值都是这么大,没招了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表