爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14632|回复: 8

NCL--求散度的疑问

[复制链接]
发表于 2017-4-22 16:40:57 | 显示全部楼层 |阅读模式

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

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

x
资料:fnl_20031120_12_00.grib1(1°×1°)
欲求:散度(10°N-30°N     10°E-30°E  850hpa)



tz.png 上图(标题为tz)求散度的方法是:天气学诊断分析里的fortran程序改编(暂没计算边界点),并把散度乘以1000000:
读取10°N-30°N     10°E-30°E 的UV
U850=f->U_GRD_3_ISBL({850},{10:30},{10:30})
V850=f->V_GRD_3_ISBL({850},{10:30},{10:30})

再计算
R=6371000
pi=3.1415926
Delta=1.0
NX=20NY=20
do i=1,NX-1
do j=1,NY-1
div(i,j)=1./(2*R)*( (U850(i+1,j)-U850(i-1,j))/(Delta*pi/180*cos(pi*lat(j)/180.0))+(V850(i,j+1)-V850(i,j-1))/(Delta*pi/180)-2*V850(i,j)*tan(pi*lat(j)/180.0)  )
end do
end do
画出图来 这个瞅着还算正确
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

uv2dvf-global.png
上图(标题为uv2dvf-global grid)求散度的方法是:先读取-90°N-90°N     0°E-359°E的UV
U850=f->U_GRD_3_ISBL({850},:,:)
V850=f->V_GRD_3_ISBL({850},:,:)
再计算散度uv2dvf(U850, V850, div),然后选取范围
res@mpMinLatF=10
res@mpMaxLatF=30
res@mpMinLonF=10
res@mpMaxLonF=30

最后散度乘以1000000
这图瞅着很难受,应该是有问题的
------------------------------------------------------------------------------------------------------------------------------------------------------------------------








uv2dvg-global_grid.png
上图(标题为uv2dvg-global grid)求散度同第二张图求法,但把uv2dvf换成了uv2dvg函数求散度,最后散度乘以1000000。我个人认为FNL是fixed格点,应使用uv2dvf,但uv2dvg和uv2dvf差别也不大。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

uv2dvf-limited_grid.png
上图(标题为uv2dvf-limited_grid)的求法是
上图(标题为uv2dvf-global grid)求散度的方法是:先读取10°N-30°N     10°E-30°EU,V
U850=f->U_GRD_3_ISBL({850},{10:30},{10:30})
V850=f->V_GRD_3_ISBL({850},{10:30},{10:30})

再计算散度uv2dvf(U850, V850, div),
应该注意的是uv2dvf函数要求
最后散度乘以1000000,但个人认为有问题,比如10°附近的散度太过虚假

为什么用uv2dvf计算散度时选取10°N-30°N     10°E-30°E-90°N-90°N     0°E-359°E不一样
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

总之肯定有求法是错的,因为不可能画出来的图差别这么大。但不知错在哪里,而且对ncl的[size=13.3333px]Computes the ×× using spherical harmonics given the u and v wind components on a fixed grid[size=13.3333px]的‘spherical harmonics’[size=13.3333px]不知何意。
[size=13.3333px]

[size=13.3333px]表达欠缺,基础不牢,请各位指点。


U_x V_y.png
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-4-22 16:46:09 | 显示全部楼层
最后一张图传错了 请无视...
uv2dvf-limited_grid那张图下,不小心多打了”上图(标题为uv2dvf-global grid)”  请无视
密码修改失败请联系微信:mofangbao
发表于 2017-5-10 13:49:26 | 显示全部楼层
感谢楼主分享!!!
密码修改失败请联系微信:mofangbao
发表于 2017-11-2 18:11:33 | 显示全部楼层
是的 我在求流函数也遇到这个问题 好奇怪
密码修改失败请联系微信:mofangbao
发表于 2021-5-9 10:01:03 | 显示全部楼层
我也遇到了这个问题,好像是因为计算方法不同,楼主自己编程的算法是基于有限差分,而ncl中的那两个函数好像都是基于球函数的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-14 10:19:50 | 显示全部楼层
时隔5年,自己回复一下自己。请用uv2dv_cfd(u, v, lat, lon, boundOpt)、uv2vr_cfd(u, v, lat, lon, boundOpt)画有限区域的散度涡度,别乱用!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-6-19 11:41:44 | 显示全部楼层
happymgj 发表于 2022-6-14 10:19
时隔5年,自己回复一下自己。请用uv2dv_cfd(u, v, lat, lon, boundOpt)、uv2vr_cfd(u, v, lat, lon, boundO ...

谢谢 ,正好在画区域的散度
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-6-19 11:43:48 | 显示全部楼层
happymgj 发表于 2022-6-14 10:19
时隔5年,自己回复一下自己。请用uv2dv_cfd(u, v, lat, lon, boundOpt)、uv2vr_cfd(u, v, lat, lon, boundO ...

想请教下boundOpt该怎么设置呢?官网的解释不是太明白
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-20 14:01:05 | 显示全部楼层
X1a0wu 发表于 2022-6-19 11:43
想请教下boundOpt该怎么设置呢?官网的解释不是太明白

选0或2吧,uv2dv_cfd,uv2vr_cfd是中央差分,0把边界值设为缺测值;2代表边界值不采用中央差,而是单侧差分。至于1或3嘛,从来没有用过
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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