爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 28353|回复: 58

计算并绘制波作用通量

  [复制链接]

新浪微博达人勋

发表于 2020-6-7 06:46:55 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 AXD 于 2023-6-14 09:54 编辑

用ncl基于NCEP逐月数据计算并绘制TN(2001)和Plumb(1985)水平波作用通量,代码为函数,可以在ncl中调用,调用方法写成了注释。Code主要根据网站http://www.atmos.rcast.u-tokyo.ac.jp/nishii/programs/index.html提供的代码修改。由于不同的软件处理数据可能有所不同,因此绘图结果可能略有不同。网址https://www.jianshu.com/p/97042d9019c0给出了利用Pyhon绘制的脚本,亦可参考。图片为2014年11月TN01波作用通量绘制结果,填色为散度,等值线为位势高异常,箭头为波作用通量。附件为代码和相关计算方法的原始参考文献。图2是最近对比python程序(https://mp.weixin.qq.com/s/Q1nl-n1tXUq3Tw1PvQPbrQ)画的,供大家参考。

注:微信公众号“海气风华”有Code!
ncl_6.png
微信图片_20220503082659.png

TN01.pdf

433.79 KB, 下载次数: 276, 下载积分: 金钱 -5

On_the_Three-Dimensional_Propagation_of_Stationary.pdf

883.89 KB, 下载次数: 176, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-9-29 13:33:55 | 显示全部楼层
【摸鱼咯】在简书上所给出的python脚本中TN01的Fy计算不对哦,并不是因为不同软件绘图的差异,我已经给他指出了。我认为楼主这个才是正确的。仔细对比两人的结果图【注意看东亚地区】可以看到楼主没有很强的向南波作用通量,这符合日本人给出的结果。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-6-12 11:10:01 | 显示全部楼层
感谢大佬!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-6-21 14:29:54 | 显示全部楼层
感谢大佬!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-6-21 22:11:07 | 显示全部楼层
牛X!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-7-19 21:49:52 | 显示全部楼层
您好!首先感谢大神,我有两个小问题想请教
请问程序里的
it_s_c = 198101
it_e_c = 201012
为什么是这两个时间呢?
还有
itime = 0,ntime-13,12
为什么是减13?
期待您的答复
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-20 08:18:57 | 显示全部楼层
本帖最后由 AXD 于 2020-7-20 08:38 编辑

关于循环程序里:

do itime = 0,ntime-13,12

    cuvar(itime:itime+11,:,:) = buvar(:,:,:)
    cvvar(itime:itime+11,:,:) = bvvar(:,:,:)
end do

有人反馈说如果ntime-13,则最后1年的算不出来,应该是ntime-1。确实如此!
这个循环是以12为间隔,假如ntime = 80(ncl计到79),如果设置为ntime-13,那么最后一循环的结束值是67。如设置为ntime-1,则最后一循环的结束值是79。少一年基本不影响结果,但为了严谨,大家还是按ntime-1计算。


如果大家还有改进或修正的想法,欢迎一起交流。大家也可以与其他人写的代码对照一下。
在此致谢我的师弟whw!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-20 08:21:03 | 显示全部楼层
本帖最后由 AXD 于 2020-7-20 09:58 编辑
44444 发表于 2020-7-19 21:49
您好!首先感谢大神,我有两个小问题想请教
请问程序里的
it_s_c = 198101

198101-201012是我们习惯使用的气候态(30年)。目前国际上都这么用,一个不成文的规定吧。减13是隔12一循环,最后肯定到不了ntime,所以得减掉一个循环周期。由于ncl从0开始计数,所以减的是13而不是12。比如总数是80,但算出来的ntime是79。即便你循环到最后一个数,也是ntime-1。至于减多少,这个你也可以自己尝试,然后就理解了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-21 18:37:06 | 显示全部楼层
AXD 发表于 2020-7-20 08:21
198101-201012是我们习惯使用的气候态(30年)。目前国际上都这么用,一个不成文的规定吧。减13是隔12一 ...

好的,谢谢大神
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-7-25 07:44:38 | 显示全部楼层
想问一下,do itime=0,ntime-13,12那里,改成do itime=0,ntime-12,12是可行的吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-25 09:50:35 | 显示全部楼层
biguo 发表于 2020-7-25 07:44
想问一下,do itime=0,ntime-13,12那里,改成do itime=0,ntime-12,12是可行的吗

好好理解一下这段代码是干嘛的,你就知道你的想法可不可行了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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