爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18213|回复: 18

[作图] 求解为何NCL和GrADS求得Nino3.4指数不一样?

[复制链接]
发表于 2015-4-1 21:05:03 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 aa22556688 于 2015-4-1 21:08 编辑

最近在学NCL,利用NCL求取Nino3.4指数,-5S~5N,190~240Lon的区域平均,但是发现NCL(图1)求出来的指数要比GrADS(图2小0.03左右。
GrADS中用的函数:
'set x 1'
'set y 1'
'set z 1'
'set t 1 1932'
'd tloop(aave(at,lon=190,lon=240,lat=-5,lat=5))'

NCL脚本:
begin
latS   =  -70.0
latN   =  70.0
lonL   =  30.0                 
lonR   =  290.0
yrStrt = 1900
yrLast = 2014
yrClimStrt = 1981
yrClimLast = 2010

dir="/cvfs01/disk1/wangq316/zc/data/"
fil="sst.mnmean.nc"
fsst=addfile(dir+fil,"r")
st       = fsst->sst
lat      = fsst->lat
lon      = fsst->lon

utc_date   = cd_calendar(fsst->time, 0)  
YYYY       = tointeger(utc_date(:,0))  
istime    = ind(YYYY.ge.yrStrt .and. YYYY.le.yrLast)
cltime    = ind(YYYY.ge.yrClimStrt .and. YYYY.le.yrClimLast)

st!0      = "time"
st!1      = "lat"
st!2      = "lon"
sst_selc  = st(istime , {latS:latN}, {lonL:lonR})  
sst_clm   = st(cltime , {latS:latN}, {lonL:lonR})
slon      = lon({lonL:lonR})
slat      = lat({latS:latN})

sstClm    = clmMonTLL(sst_clm)
ssta      = calcMonAnomTLL (sst_selc, sstClm)   
copy_VarCoords(sst_selc, ssta)
ssta@long_name = "ANOMALIES: "+sst_selc@long_name

nino  = dim_avg_n_Wrap(ssta(:,{-5:5},{190:240}),(/1,2/))
print(nino)
end

求各位高手给指点迷津,是NCL哪里计算出问题了?
图1 NCL.jpg
图2 Grads.jpg
密码修改失败请联系微信:mofangbao
发表于 2015-4-1 21:54:23 | 显示全部楼层
基本一致,可能是面积平均函数用的权重不一样,最好分别找下说明
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-4-1 22:23:06 | 显示全部楼层
一水天下 发表于 2015-4-1 21:54
基本一致,可能是面积平均函数用的权重不一样,最好分别找下说明

非常感谢,可能NCL求平均函数dim_avg_n_Wrap没有面积权重
密码修改失败请联系微信:mofangbao
发表于 2015-4-2 08:10:10 | 显示全部楼层
时间一致么?
看你两个脚本里出现过几个年的设置,grads和NCL没有一个是相同的。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-4-2 10:51:25 | 显示全部楼层
hzwjy 发表于 2015-4-2 08:10
时间一致么?
看你两个脚本里出现过几个年的设置,grads和NCL没有一个是相同的。

非常感谢哈。
时间设置的是不一样,为了方便GrADS就选择了整个时间序列(1841.1~2014.12),ncl选择是1900.1~2014.12
但是气候态选得都是1981.1~2010.12,最后比的时间段都是2014.1~12月的NINO的值,所以不存在问题哈。
密码修改失败请联系微信:mofangbao
发表于 2015-4-3 10:55:13 | 显示全部楼层
数据是不是标准化了?数据时间段不同,对应的均值和标准差也不同,对同样的数据分别进行标准化后得到的结果也不同。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-4-3 10:57:22 | 显示全部楼层
维克多·蓝晶 发表于 2015-4-3 10:55
数据是不是标准化了?数据时间段不同,对应的均值和标准差也不同,对同样的数据分别进行标准化后得到的结果 ...

没有经过过任何处理,就是简单用原场求气候态,然后求异常,对异常值求区域平均,区域相同,时间段也是相同,所以就不清楚是为什么了。
密码修改失败请联系微信:mofangbao
发表于 2016-11-19 20:44:56 | 显示全部楼层
本帖最后由 朝夕木兰 于 2016-11-19 20:46 编辑

ncl减去的当月平均,grads减去的是所有月份平均
密码修改失败请联系微信:mofangbao
发表于 2017-3-17 08:40:29 | 显示全部楼层
aave()函数采用地球坐标进行计算,考虑了不同纬度的权重
密码修改失败请联系微信:mofangbao
发表于 2017-3-17 09:06:28 | 显示全部楼层
朝夕木兰 发表于 2016-11-19 20:44
ncl减去的当月平均,grads减去的是所有月份平均

他是ncl减了气候平均值,grads减了当月平均值吧,当然其grads程序不完整
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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