爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12862|回复: 22

[分享资料] (已解决)求问grads读取多个nc数据,计算差值问题?

[复制链接]

新浪微博达人勋

发表于 2013-10-1 12:25:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 vendya 于 2014-7-30 00:19 编辑

求问,我想计算两个NDVI数据集中相同一个地区2001年到2006年12月-2月平均值的差值图,结果老是出错,不知大家可否帮忙看一下程序,先谢谢大家了!
这是程序:
'reinit'
*gimms
'sdfopen /Users/geog493/ndvi/ndvi0.5deg.2006.nc'
'sdfopen /Users/geog493/ndvi/ndvi0.5deg_modis_westafrica.nc'
'set lat 13 20.0'
'set lon -15.0 20.0'
* DJF
'define gy01=ave(ndvi.1,t=467,t=472)'
'define gy02=ave(ndvi.1,t=491,t=496)'
'define gy03=ave(ndvi.1,t=515,t=520)'
'define gy04=ave(ndvi.1,t=539,t=544)'  
'define gy05=ave(ndvi.1,t=563,t=568)'
'define gy06=ave(ndvi.1,t=587,t=592)'
'define gyclim=(gy01+gy02+gy03+gy04+gy05+gy06)/6.'
*'modis ndvi'
'set dfile 2'
'set t 1 307'
* DJF
'define my01=ave(ndvi.2,t=15,t=20)'
'define my02=ave(ndvi.2,t=38,t=43)'
'define my03=ave(ndvi.2,t=61,t=66)'
'define my04=ave(ndvi.2,t=84,t=89)'  
'define my05=ave(ndvi.2,t=107,t=112)'
'define my06=ave(ndvi.2,t=130,t=135)'
'define myclim=(my01+my02+my03+my04+my05+my06)/6.'
'define difyclim=gyclim-myclim'
'd gyclim-myclim'

结果老是说“Error in gagchk: axis sizes are not the same
Operation error:  Incompatable grids ”

但我的两个NDVI数据集都是0.5X0.5的,不知道是什么原因?不过gimms数据集是从lat -61.75  lon -179.75开始; modis数据集是从lat 0  lon -20 开始,不知是否是这个缘故?如果是的话,应该怎么解决呢?
由于本人新手,都没有积分的,先大大的谢谢大家!

=====================================
07/29/2014
解决方法
因为两个NDVI数据的起始网格点不同,需要转换到同一的网格点上,运用函数re可做到这步:
define gyclim1=re(gyclim, 70, linear, -15, 0.5, 14, linear, 13, 0.5, ba)
define myclim1=re(myclim, 70, linear, -15, 0.5, 14, linear, 13, 0.5, ba)
但不知什么原因,re在我最初的grads上显示没有此函数,后来重新装了openGrADS才可行。openGrADS的安装方法如下:
Installing openGrADS
http://opengrads.org/wiki/index.php?title=Installing_the_OpenGrADS_Bundle

1: mv Contents $HOME/opengrads
2: export PATH=$HOME/opengrads:$PATH

note: in order to execute step 2, firstly, I should access to the opengrads folder, which means I should:

cd opengrads
export PATH=$HOME/opengrads:$PATH

After that, I can access to the folder where my code is in, then open grads, e.g.,
cd Sahel (my code is in the Sahel folder)
grads



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

新浪微博达人勋

发表于 2013-10-1 17:44:01 | 显示全部楼层
把set dfile 2去掉试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-1 23:19:46 | 显示全部楼层
Thank you for your answer! Sorry for no Chinese in this computer.

when i delete 'set dfile 2' it shows:

World coordinates convert to non-integer  grid coordinates
    Variable = ndvi.2  Dimension = 3

  'myclim' not a variable or function name
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-1 23:24:28 | 显示全部楼层
original data information
modis
xdef 81 linear -20 0.5
ydef 81 linear 0 0.5
gimms
xdef 720 linear -179.75 0.5
ydef 304 linear -61.75 0.5

Should I do something about this?


Thank you everyone in advance!{:soso_e183:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-2 00:53:31 | 显示全部楼层

Thank you for your answer! Sorry for no Chinese in this computer.

when i delete 'set dfile 2' it shows:

World coordinates convert to non-integer  grid coordinates
    Variable = ndvi.2  Dimension = 3

  'myclim' not a variable or function name
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-2 00:54:02 | 显示全部楼层
river 发表于 2013-10-1 17:44
把set dfile 2去掉试试

original data information
modis
xdef 81 linear -20 0.5
ydef 81 linear 0 0.5
gimms
xdef 720 linear -179.75 0.5
ydef 304 linear -61.75 0.5

Should I do something about this?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 08:27:17 | 显示全部楼层
vendya 发表于 2013-10-2 00:54
original data information
modis
xdef 81 linear -20 0.5

我晕,你这个两个资料虽然分辨率一样,但是格点对不上啊。把你的资料重新插值吧,插到同样的格点上去
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 08:29:15 | 显示全部楼层
vendya 发表于 2013-10-2 00:53
Thank you for your answer! Sorry for no Chinese in this computer.

when i delete 'set dfile 2' i ...

我不知道不明不明白set dfile作用呢?从你的脚本上看应该是不太清楚的,这个命令是用来切换你同时打开的多个数据文件的,如果使用了set dfile,就不需要在变量名之后加上 .数字 来区别了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-2 09:18:35 | 显示全部楼层
river 发表于 2013-10-2 08:29
我不知道不明不明白set dfile作用呢?从你的脚本上看应该是不太清楚的,这个命令是用来切换你同时打开的多 ...

好的,谢谢river!!!我把.1,.2删掉再试试看~另外你说的重新插值,是说要对原始数据进行重新插值吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 10:42:48 | 显示全部楼层
vendya 发表于 2013-10-2 09:18
好的,谢谢river!!!我把.1,.2删掉再试试看~另外你说的重新插值,是说要对原始数据进行重新插值吗?

对的呀,不然不在相同的格点上的数据是无法直接做运算的。你可以只重新插值其中的一个资料,和另一个插值到相同的格点上就好,可以利用grads自带的函数RE(),具体用法你看下官方文档
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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