爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3521|回复: 7

[图形美化] 【已解决】求助:grads读nc文件提示文件超限

[复制链接]

新浪微博达人勋

发表于 2016-11-23 20:47:24 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 海soso 于 2016-11-24 10:22 编辑

用家园里面找到的script算k指数,gs编写如下:
'reinit'
'sdfopen D:\data\t9415.nc'
'sdfopen D:\data\rh9415.850.nc'
'sdfopen D:\data\rh9415.700.nc'
'set lon 70 140'
'set lat 15 55'
'define rh1=r.2'
'define rh2=r.3'
*'set dfile 1'
'set lev 850'
'define T850=t.1-273.16'
'define Td850=T850-((14.55+0.114*T850)*(1-0.01*rh1) + pow((2.5+0.007*T850)*(1-0.01*rh1),3) + (15.9+0.117*T850)*pow((1-0.01*rh1),14))'
'set lev 700'
'define T700=t.1-273.16'
'define Td700=T700-((14.55+0.114*T700)*(1-0.01*rh2) + pow((2.5+0.007*T700)*(1-0.01*rh2),3) + (15.9+0.117*T700)*pow((1-0.01*rh2),14))'
*'set dfile 1'
'set lev 500'
'define T500=t.1-273.16'
'define k=T850-T500+Td850-(T700-Td700)'
'define temp1=ave(k,t=1217,t=1696)'
'define temp2=ave(k,t=2677,t=3160)'   
'define temp3=ave(k,t=4141,t=4620)'   
'define temp4=ave(k,t=5601,t=6080)'   
'define temp5=ave(k,t=7061,t=7540)'   
'define temp6=ave(k,t=8521,t=9004)'   
'define temp7=ave(k,t=9985,t=10464)'  
'define temp8=ave(k,t=11445,t=11924)'
'define temp9=ave(k,t=12905,t=13384)'
'define temp10=ave(k,t=14365,t=14848)'
'define temp11=ave(k,t=15829,t=16308)'
'define temp12=ave(k,t=17289,t=17768)'
'define temp13=ave(k,t=18749,t=19228)'
'define temp14=ave(k,t=20209,t=20692)'
'define temp15=ave(k,t=21673,t=22152)'
'define temp16=ave(k,t=23133,t=23612)'
'define temp17=ave(k,t=24593,t=25072)'
'define temp18=ave(k,t=26053,t=26536)'
'define temp19=ave(k,t=27517,t=27996)'
'define temp20=ave(k,t=28977,t=29456)'
'define temp21=ave(k,t=30437,t=30916)'

'close 3'
'close 2'
'close 1'
'reset'
'open D:\wu\gama850\fre.ctl'
#now interp the grid data to station data and export
'grads2ascii gr2stn(temp1,fre) D:\wu\wshear\kindex1994NDJF.txt'
'grads2ascii gr2stn(temp2,fre) D:\wu\wshear\kindex1995NDJF.txt'
'grads2ascii gr2stn(temp3,fre) D:\wu\wshear\kindex1996NDJF.txt'
'grads2ascii gr2stn(temp4,fre) D:\wu\wshear\kindex1997NDJF.txt'
'grads2ascii gr2stn(temp5,fre) D:\wu\wshear\kindex1998NDJF.txt'
'grads2ascii gr2stn(temp6,fre) D:\wu\wshear\kindex1999NDJF.txt'
'grads2ascii gr2stn(temp7,fre) D:\wu\wshear\kindex2000NDJF.txt'
'grads2ascii gr2stn(temp8,fre) D:\wu\wshear\kindex2001NDJF.txt'
'grads2ascii gr2stn(temp9,fre) D:\wu\wshear\kindex2002NDJF.txt'
'grads2ascii gr2stn(temp10,fre) D:\wu\wshear\kindex2003NDJF.txt'
'grads2ascii gr2stn(temp11,fre) D:\wu\wshear\kindex2004NDJF.txt'
'grads2ascii gr2stn(temp12,fre) D:\wu\wshear\kindex2005NDJF.txt'
'grads2ascii gr2stn(temp13,fre) D:\wu\wshear\kindex2006NDJF.txt'
'grads2ascii gr2stn(temp14,fre) D:\wu\wshear\kindex2007NDJF.txt'
'grads2ascii gr2stn(temp15,fre) D:\wu\wshear\kindex2008NDJF.txt'
'grads2ascii gr2stn(temp16,fre) D:\wu\wshear\kindex2009NDJF.txt'
'grads2ascii gr2stn(temp17,fre) D:\wu\wshear\kindex2010NDJF.txt'
'grads2ascii gr2stn(temp18,fre) D:\wu\wshear\kindex2011NDJF.txt'
'grads2ascii gr2stn(temp19,fre) D:\wu\wshear\kindex2012NDJF.txt'
'grads2ascii gr2stn(temp20,fre) D:\wu\wshear\kindex2013NDJF.txt'
'grads2ascii gr2stn(temp21,fre) D:\wu\wshear\kindex2014NDJF.txt'
;
算完了用兰溪大大的函数把k指数的1994到2015年11-2月(共21年)平均值插值到站点 因为用grads不多 循环总出错 就没有用循环全打出来了 现在的问题是grads报错:
gout.png

论坛里面有很多相关的帖子 基本上都看了 set dfile 什么的 不知道是不是我用的不对 问题没有解决 /(ㄒoㄒ)/grads小白求指导  真心谢谢
三个nc文件的ctl: tctl.png rh850ctl.png rh700ctl.png


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

新浪微博达人勋

发表于 2016-11-23 21:51:48 | 显示全部楼层
你把'reset' 去掉看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-23 22:01:47 | 显示全部楼层
river 发表于 2016-11-23 21:51
你把'reset' 去掉看看

去掉了,错误还是一样的/(ㄒoㄒ)/
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-11-24 08:45:28 | 显示全部楼层
本帖最后由 wet510 于 2016-11-24 08:46 编辑

看你的运行结果,只有提示data request warning ,提示数据超出文件范围,你看看求平均的t设置的是否合理,有没有超出数据范围的。还有,这个提示应该是在你reset之前出现的,所以在之前的代码或文件里找找不相匹配的地方
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-24 09:44:08 | 显示全部楼层
wet510 发表于 2016-11-24 08:45
看你的运行结果,只有提示data request warning ,提示数据超出文件范围,你看看求平均的t设置的是否合理, ...

'reinit'
'sdfopen D:\data\t9415.nc'
'sdfopen D:\data\rh9415.850.nc'
'sdfopen D:\data\rh9415.700.nc'
'set lon 70 140'
'set lat 15 55'
'define rh1=r.2'
'define rh2=r.3'
*'set dfile 1'
'set lev 850'
'define T850=t.1-273.16'
'define Td850=T850-((14.55+0.114*T850)*(1-0.01*rh1) + pow((2.5+0.007*T850)*(1-0.01*rh1),3) + (15.9+0.117*T850)*pow((1-0.01*rh1),14))'
'set lev 700'
'define T700=t.1-273.16'
'define Td700=T700-((14.55+0.114*T700)*(1-0.01*rh2) + pow((2.5+0.007*T700)*(1-0.01*rh2),3) + (15.9+0.117*T700)*pow((1-0.01*rh2),14))'
*'set dfile 1'
'set lev 500'
'define T500=t.1-273.16'
'define k=T850-T500+Td850-(T700-Td700)'
'set t 1'
'd k'
'close 3'
'close 2'
'close 1'
*'reset'

;
我把求平均的去掉了   set t 1 然后d k也还是一样的错误 要疯了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-24 10:01:47 | 显示全部楼层
本帖最后由 海soso 于 2016-11-24 10:05 编辑
wet510 发表于 2016-11-24 08:45
看你的运行结果,只有提示data request warning ,提示数据超出文件范围,你看看求平均的t设置的是否合理, ...

我重新下了一个相对湿度二个层次放在一起的nc文件 就好了 新的问题是输出的文件内容都是一样的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-11-24 14:35:19 | 显示全部楼层
海soso 发表于 2016-11-24 10:01
我重新下了一个相对湿度二个层次放在一起的nc文件 就好了 新的问题是输出的文件内容都是一样的{ ...

可能跟你之前用相对湿度的nc文件只有三维,没有高度维有关,这样的话你在计算T850,T700的时时候set lev 850之类的句子就会报错,建议在
'define Td850=T850-((14.55+0.114*T850)*(1-0.01*rh1) + pow((2.5+0.007*T850)*(1-0.01*rh1),3) + (15.9+0.117*T850)*pow((1-0.01*rh1),14))'
之前加上'set lev 0',试试!后面计算td700的时候同理
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-11-24 20:18:50 | 显示全部楼层
wet510 发表于 2016-11-24 14:35
可能跟你之前用相对湿度的nc文件只有三维,没有高度维有关,这样的话你在计算T850,T700的时时候set lev  ...

好的 我试试 非常感谢!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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