爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16277|回复: 6

[脚本编辑] nc逐月资料中提取6-8月资料

[复制链接]

新浪微博达人勋

发表于 2021-2-25 11:52:20 | 显示全部楼层 |阅读模式

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

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

x
现有1960-2014的逐月降水资料,我想从中提取1999-2014年6-8月份的资料算季节平均,提取的gs文件可以运行,但是不能生成grd文件,请问大佬们有没有什么办法?谢谢大家!
下面是提取的gs:
'reinit'
'sdfopen e:\pr\historical\pr_Amon_ACCESS-CM2_historical_1x1regrid_196001-201412.nc'
'set gxout fwrite'
'set fwrite e:\pr\historical\pr_Amon_ACCESS-CM2_historical_1x1regrid_1999-2014summer.grd'
'set lev 0'
tt=480
a=1
while(a<=15)
'set t 'tt+6''
'd pr'
'set t 'tt+7''
'd pr'
'set t 'tt+8''
'd pr'
a=a+1
tt=tt+12
endwhile
'disable fwrite'
;

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

新浪微博达人勋

发表于 2021-2-25 15:42:51 | 显示全部楼层
少一个endwhile,循环没成功吧。另外里面的循环a<15干嘛用的,没有意义啊。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-25 20:11:05 | 显示全部楼层
苏拉苏拉 发表于 2021-2-25 15:42
少一个endwhile,循环没成功吧。另外里面的循环a

你好,a是限制1999-2014年用的,我又用下面程序试了一下:
'reinit'
'sdfopen e:\pr\historical\pr_Amon_ACCESS-CM2_historical_1x1regrid_196001-201412.nc'
'set gxout fwrite'
'set fwrite e:\pr\historical\access-cm2_9914summer.grd'
tt=468
while(tt<660)
'set t 'tt+6''
'd pr'
'set t 'tt+7''
'd pr'
'set t 'tt+8''
'd pr'
tt=tt+12
endwhile
'disable fwrite'
;
结果是可以生成grd文件,但画出来的图只有边界,用nc文件直接画的图就很正常,请问可以帮帮我吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-1 16:18:17 | 显示全部楼层
樱花阿喵 发表于 2021-2-25 20:11
你好,a是限制1999-2014年用的,我又用下面程序试了一下:
'reinit'
'sdfopen e:\pr\historical\pr_Amo ...

你这个描述太笼统了,画出来只有边界,多大的边界,显示的值又是多少。又可能提取出的数据有问题,也有可能缺测配的不对。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-1 17:28:51 | 显示全部楼层
'display'后,是不是要加个‘c’清除一下?如果没问题,那可能是ctl文件错了,请把ctl贴上来研究一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-1 20:34:05 | 显示全部楼层
苏拉苏拉 发表于 2021-3-1 16:18
你这个描述太笼统了,画出来只有边界,多大的边界,显示的值又是多少。又可能提取出的数据有问题,也有可 ...

非常感谢您对这个问题的回答,目前我已经发现了问题,因为set gxout fwrite缺测值和nc的缺测值不一样,所以在前面在设置一下和nc文件相同的缺测值就好了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-1 20:39:47 | 显示全部楼层
栤唥de嶶笑 发表于 2021-3-1 17:28
'display'后,是不是要加个‘c’清除一下?如果没问题,那可能是ctl文件错了,请把ctl贴上来研究一下

非常感谢您的回答,我直接用月份循环已经可以出图了。下面是我的程序:

'reinit'
'sdfopen e:\pr\historical\pr_Amon_ACCESS-CM2_historical_1x1regrid_196001-201412.nc'
'set undef 1e+20'
'set gxout fwrite'
'set fwrite e:\pr\historical\access-cm2_9514summer.grd'
tt=420
while(tt<660)
'set t 'tt+6''
'd pr'
'set t 'tt+7''
'd pr'
'set t 'tt+8''
'd pr'
tt=tt+12
endwhile
'disable fwrite'
;


下面是提取文件的ctl文件:
dset e:\pr\historical\access-cm2_9514summer.grd
title month precipitation
undef 1e+20
xdef 51 linear 60 1
ydef 31 linear 20 1
zdef 1 linear 0 1
tdef 60 linear 12Z16JUN1995 1mo
vars 1
pr=>pr  0  t,y,x  Precipitation
endvars
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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