爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: 提米苏拉

[求助] 求高手怎样从逐日资料中提取9月到次年4月的资料(考虑闰年)

[复制链接]

新浪微博达人勋

发表于 2013-4-25 00:24:28 | 显示全部楼层
本帖最后由 冰点 于 2013-4-25 01:04 编辑

好像你没明白我要说啥,闰月是农历里面的,就像1987年农历里面有两个六月,也就是说那年在农历中有13个月,而阳历中说的只有2月是28或29天的差别。NC数据是按每年12个月计的,同样是1987年在阳历中还是只有12个月。而你所说的闰年也就是相比往年2月多了一天而已,即为闰日,有闰日的这一年称为闰年。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-25 09:27:01 | 显示全部楼层
提米苏拉 发表于 2013-4-24 22:22
谢谢你哈,有点思路了。你是提取夏季的逐日资料吧,我要提取1-5月和9-12月的。

是的,判断闰年这个很好用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-29 16:18:02 | 显示全部楼层
'reinit'
yy=1948
while(yy<=2012)
'sdfopen e:\coldair\daily\'yy'.nc'
'set gxout fwrite'
'set fwrite e:\coldair\win.1948-2012.grd'
'set lat 10 80'
'set lon 30 160'
'set z 1'



if (yy=1948|yy=1952 | yy=1956 | yy=1960 | yy=1964 | yy=1968 | yy=1972 | yy=1976 | yy=1980 | yy=1984 | yy=1988 | yy=1992 | yy=1996 | yy=2000 | yy=2004 | yy=2008|yy=2012 )
tt=1
while(1<=tt<=182|275<=tt<=366)
'set t 'tt''
'd air'
tt=tt+1
endwhile
else
tt=1
while(1<=tt<=181|274<=tt<=365)
'set t 'tt''
'd air'
tt=tt+1
endwhile
endif
yy=yy+1
'close 1'
endwhile

'disable fwrite'
'reinit'
;
后来自己编了一个程序,发现出错了,不知道是不是while那里不能那么假设,求高手帮忙看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-21 15:29:07 | 显示全部楼层
提米苏拉 发表于 2013-4-24 22:24
逻辑思维不行啊,所以就容易乱了。大神要体谅。我也找了半天,但没找到提取逐日的。

我是要提取冬季(12月-2月)的逐日数据,并求年平均,你写出来了吗?我想看看你是怎么写的,因为我写的循环貌似有问题。。。。谢谢你
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-7 17:11:14 | 显示全部楼层
遇到同样的问题,正在学习中,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 00:30:34 | 显示全部楼层
提米苏拉 发表于 2013-4-29 16:18
'reinit'
yy=1948
while(yy

#grads批处理nc数据之闰年问题#
快一年的帖子  楼主的问题 还有大神的回复讨论 给了我不少启发  希望和我一样的小白少走弯路  
我的问题和楼主类似  但是我的数据没有合并过  有54年的 我借鉴楼主的gs 并且觉得楼主遇到的问题 可能跟我一样  就是 最后endwhile 应该放在disable fwrite 之外   贴下 我的gs 供参考  
'reinit'
yy=1961
while(yy<=2014)
'sdfopen d:\nc\hgt\hgt.'yy'.nc'
'set gxout fwrite'
'set fwrite d:\nc\bin\hgt\'yy'.bin'
'set x 1 144'
'set y 1 73'
'set lev 500'
if (yy=1964 | yy=1968 | yy=1972 | yy=1976 | yy=1980 | yy=1984 |
yy=1988 | yy=1992 | yy=1996 | yy=2000 | yy=2004 | yy=2008|yy=2012 )
'set t 1 366'
else
'set t 1 365'
endif

'd hgt'

yy=yy+1
'close 1'
'disable fwrite'
endwhile
;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 00:33:28 | 显示全部楼层
Sophie 发表于 2015-9-24 00:30
#grads批处理nc数据之闰年问题#
快一年的帖子  楼主的问题 还有大神的回复讨论 给了我不少启发  希望和 ...

这个gs主要是提取500hpa数据  接下来的抹掉闰日的问题  我打算借鉴 前排以为大神的 fortran处理  
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-24 21:44:58 | 显示全部楼层
谢谢楼主分享,学习了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-9 23:36:29 | 显示全部楼层
提米苏拉 发表于 2013-4-24 22:24
逻辑思维不行啊,所以就容易乱了。大神要体谅。我也找了半天,但没找到提取逐日的。

楼主呀 怎么解决的 我也遇到了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-9 14:15:29 | 显示全部楼层
学习中 真的是要建立起逻辑思维
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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