爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5213|回复: 7

[分享资料] 湿位涡公式疑惑

[复制链接]

新浪微博达人勋

发表于 2017-6-3 11:54:39 | 显示全部楼层 |阅读模式

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

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

x
我看了清风大神的湿位涡的脚本,其中有个疑问。还请大神们指点指点。
部分代码:
'set lev 925'
'define vo=hcurl(uwnd,vwnd)'
'define f=2*7.292*sin(lat*3.14159/180.0)*0.00001'
'define g=9.8'
'define dp=100*(1000-850)'
'define dthse=thse(lev=1000)-thse(lev=850)'
'define du=uwnd(lev=1000)-uwnd(lev=850)'
'define dv=vwnd(lev=1000)-vwnd(lev=850)'
'define dx=2.0*6370949.0*cos(lat*3.14159/180.0)*3.14159/180.0'
'define dy=2.0*6370949.0*3.14159/180.0'
'define dtx=cdiff(thse,x)'
'define dty=cdiff(thse,y)'
'define mpv1=-g*(vo+f)*dthse/dp'  
'define mpv2=g*((dv/dp)*(dtx/dx)-(du/dp)*(dty/dy))'
'define mpv=mpv1+mpv2'

=================================
我不解的是这个红色部分的dx,dy。这个是格点之间的距离,不是应该要和数据分辨率有关吗?
但是脚本里的ctl分辨率是2.5*2.5的。
我的理解是这样的,假如分辨率1*1。那么格点就是360*181
所以dx=2.0*6370949.0*cos(lat*3.14159/180.0)*3.14159/359   ;   整个球的周长/步长
       dy=6370949.0*3.14159/180.0                                            ;半个球的周长/步长
如果分辨率是2.5*2.5,就在后面乘以2.5就行。
不知道我的理解对不对。

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

新浪微博达人勋

发表于 2017-6-3 12:39:23 | 显示全部楼层
建议使用中央差分函数来做
'define dx = cdiff(lon,x)*cos(lat*3.1415926/180)*3.1416*6.37e6/180'
'define dy = cdiff(lat,y)*3.1416*6.37e6/180'
这样是不是就不涉及资料分辨率了呢
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-6-3 12:36:57 | 显示全部楼层
@mofangbao 大神求助
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-3 12:49:59 | 显示全部楼层
river 发表于 2017-6-3 12:39
建议使用中央差分函数来做
'define dx = cdiff(lon,x)*cos(lat*3.1415926/180)*3.1416*6.37e6/180'
'defi ...

谢谢,这个挺不错,有个问题,这个除以180是什么含义呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-3 20:54:46 | 显示全部楼层
1649518749 发表于 2017-6-3 12:49
谢谢,这个挺不错,有个问题,这个除以180是什么含义呀?

这个可能写的有些问题,改成这样
'define dx = cdiff(lon,x)*cos(lat*3.1415926/180)*3.1416/180*6.37e6'
'define dy = cdiff(lat,y)*3.1416/180*6.37e6'
其实就是角度和弧度的换算,地球是圆的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-4 08:32:53 | 显示全部楼层
你说的2.5°是平面网格,是等距的。计算的时候你得把这张网包裹到地球上(因为大气包裹着地球,计算要符合实际),它就成了球面网格。球面网格是不等距的,所以
'define dx = cdiff(lon,x)*cos(lat*3.1415926/180)*3.1416/180*6.37e6'
'define dy = cdiff(lat,y)*3.1416/180*6.37e6'
这两句就是描述球面网格的长和宽。因为你在研究湿位涡,所以dx和dy的表达式怎么来的你可以不细究。如果还想刨根问底,你就得研究3个问题:1、经度和纬度在球体里面到底指哪两个角度?2、在任意纬度平面上,任意经度角对应的弧长怎么表达?3、在任意经度平面上,任意纬度角对应的弧长怎么表达?这3个问题搞定,你肯定能明白dx和dy的表达式是怎么来的了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-6-4 11:32:24 | 显示全部楼层
18380463812 发表于 2017-6-4 08:32
你说的2.5°是平面网格,是等距的。计算的时候你得把这张网包裹到地球上(因为大气包裹着地球,计算要符合 ...

谢谢你,我明白了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-14 16:56:58 | 显示全部楼层
谢谢,这个挺不错,
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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