爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 63100|回复: 61

[作图] NCL和grads计算涡度和散度的函数差异很大

  [复制链接]

新浪微博达人勋

发表于 2013-6-20 18:06:08 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xo2001 于 2013-6-20 22:12 编辑

最近想用NCL画图,又怕函数用错,于是就用NCL,grads和自己编程三种方法对比,发现结果差异很大,比如散度,NCL用的是div=uv2dv_cfd(u,v,lat,lon,2)这个函数,自己编程用的也是中央差分的方法,grads用的是hdivg(u,v)的函数,但是结果,自己编程的和NCL在lat=-60到60度之间基本一致,高纬是有些差异。但是grads计算得到的差异就太大了。第一个 是grads画的,第二个是NCL,第三个是自己编程算的,有没有人知道为什么?求助~计算的步骤主要是
grads:
sdfopen  /work/cal/temp3/1999/uwnd.1999.nc
sdfopen /work/cal/temp3/1999/vwnd.1999.nc
d hdivg(uwnd,vwnd.2)

NCL:
ufile=addfile("/work/cal/temp3/1999/uwnd.1999.nc","r")
vfile=addfile("/work/cal/temp3/1999/vwnd.1999.nc","r")
u=ufile->uwnd(178,6,:,:)*0.01+202.66
v=vfile->vwnd(178,6,:,:)*0.01+202.66
lat=ufile->lat
lon=ufile->lon
div1=uv2dv_cfd(u,v,lat,lon,2)
plot=gsn_csm_contour_map(wks,div,res)

编程:
do i=2,nx-1
do j=2,ny-1
dx(i,j)=6400000*5/180*3.14159*cos((90-2.5*(j-1))/180*3.14159)    !2.5度一个格距,中央查分用到前后两个点5度距离
dy(i,j)=6400000*5/180*3.14159                                                           !2.5度一个格距,中央查分用上下两个点5度距离
div(i,j)=  (u(i+1,j)-u(i-1,j))/dx(i,j)+(v(i,j-1)-v(i,j+1))/dy(i,j)                       !计算散度
enddo
enddo



1.png
NCL.jpg
编程.jpg

评分

参与人数 1金钱 +2 收起 理由
杨松 + 2

查看全部评分

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

新浪微博达人勋

发表于 2013-6-20 18:25:51 | 显示全部楼层
是个有心人啊,继续找找原因。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-20 20:06:33 | 显示全部楼层
楼主图太小,看不清楚。贴几张大图吧,还有把你几种方法的过程,用的程序也都放上来吧。大家可以来个大讨论
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-20 21:04:52 | 显示全部楼层
嗯。。对。有心人啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-20 22:15:40 | 显示全部楼层

编程的和NCL的都应该是中央差分法,看了风场的实况,感觉NCL和编程的更接近实况。而涡度我用三个方法计算,NCL和编程也是基本一致,grads虽然有差异,但是没散度这么离谱。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-20 22:17:29 | 显示全部楼层
本帖最后由 xo2001 于 2013-6-20 23:02 编辑
river 发表于 2013-6-20 20:06
楼主图太小,看不清楚。贴几张大图吧,还有把你几种方法的过程,用的程序也都放上来吧。大家可以来个大讨论

贴好了,我觉得可能是我的grads做错了,或者函数做了一些平滑什么的,因为编程应该是没错的,NCL高纬度可能算法不一样,但是低纬度基本一致。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-20 22:21:38 | 显示全部楼层
nanqiyuan 发表于 2013-6-20 21:04
嗯。。对。有心人啊

最近想用NCL直接计算就省得编程了,所以就想把几个常用的函数了解了解~谁知道刚做个散度涡度就有问题...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-20 22:41:54 | 显示全部楼层
恳请楼主把错误的原因告诉大家把,方便其他人学习和避免出现这样的错误,非常感谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-20 22:56:33 | 显示全部楼层
本帖最后由 xo2001 于 2013-6-20 22:58 编辑
尽头的尽头 发表于 2013-6-20 22:41
恳请楼主把错误的原因告诉大家把,方便其他人学习和避免出现这样的错误,非常感谢

主要是不知道什么错误,所以把我的步骤贴出来给大家看看,不知道是我弄错了还是两个软件就是存在差异。版主有没有遇到过这种情况?上面回复那个弄好了是我把图和步骤贴粗来了...不是弄明白了...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-20 23:18:27 | 显示全部楼层
NCL好一些。
是ncl内置的算法吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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