爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5520|回复: 15

[分享资料] 【已解决】70080个时次,每24h相加求平均提取数据,所得数据只有1K,不科学啊~

[复制链接]

新浪微博达人勋

发表于 2013-9-17 21:56:46 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 shirly 于 2013-9-18 11:37 编辑

想每24个时次的数据相加再求平均提取数据,原始文件的ctl如下:
d:/shirly/dat/minqin/binary/A52681-2005_2012.dat
title The ground routine data
undef  999.9
xdef 1 linear 103.08 1
ydef 1 linear 38.62 1
zdef 6 linear 1 6
tdef 70080 linear 20:00Z31dec2004 1hr
vars 1
DB 6 99 The shallow ground temperature 0mm 5mm 10mm 15mm 20mm 40mm
endvars


提取数据的gs文件写法如下:
'reinit'
'open d:\shirly\dat\minqin\binary\A52681-2005_2012.ctl'

'set gxout fwrite'
'set fwrite d:\shirly\dat\minqin\binary\A52679-2005_2012.ave_d.dat'
'set x 1'
'set y 1'
n=1
while(n<=6)
'set z 'n''
'set t 1 '
'd ave(DB,t=1,t=70080,24))'
n=n+1
endwhile
'disable fwrite'
'reinit'




提取出来的数据只有1K,不科学啊,请前辈指导,感激不尽~!


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

新浪微博达人勋

发表于 2013-9-17 22:11:05 | 显示全部楼层
你从哪里看出来是70080 个时刻啊?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-17 22:34:55 | 显示全部楼层

嘿嘿,谢谢骞哥回复~
这个文件:d:/shirly/dat/wuwei/binary/A52679-2005_2012.24h.dat  是我自己fortran生成的,我自己算的~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-17 22:37:11 | 显示全部楼层
这个描述文件名不一样是干啥子的 搜狗截图20130917223543.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-17 22:44:28 | 显示全部楼层
你这个求平均的方式是不对的
'set t 1 '
'd ave(DB,t=1,t=70080,24))'
这样子每次循环只求出第一个小时的多日平均, 而你要的是1-24小时求平均,25-48小时求平均,明显数据出来不对
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-17 22:50:38 | 显示全部楼层
做个霸气的木头 发表于 2013-9-17 22:37
这个描述文件名不一样是干啥子的

不好意思,粘贴说明文件打开错了~我存的是一样的,不好意思呀添麻烦了~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-17 22:52:05 | 显示全部楼层
做个霸气的木头 发表于 2013-9-17 22:44
你这个求平均的方式是不对的
'set t 1 '
'd ave(DB,t=1,t=70080,24))'

那我这样改行不行:‘set t 1 2920’
(2920=70080/24)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-17 22:58:33 | 显示全部楼层

回帖奖励 +3 金钱

shirly 发表于 2013-9-17 22:52
那我这样改行不行:‘set t 1 2920’
(2920=70080/24)

这样也不对,grads处理这个不方便,我建议,你直接用fortran算得了,算一个24小时平均输出来,再算一个,如此,就得到你要的了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-17 23:15:01 | 显示全部楼层
本帖最后由 lqouc 于 2013-9-17 23:20 编辑
shirly 发表于 2013-9-17 22:34
嘿嘿,谢谢骞哥回复~
这个文件:d:/shirly/dat/wuwei/binary/A52679-2005_2012.24h.dat  是我自己fortra ...

唉,你就是太客气了,话说那么为啥你的tdef是24呢。其实就像阿木说的,这个可以用fortran算很简单的。当然grads也是可以的。你在设计的时候把t循环加进去
'set x 1'
'set y 1'
t=1
while(t<=70080)
n=1
while(n<=6)
'set z 'n''
'set t 't
'd ave(DB,t='t',t='t+23')'
n=n+1
endwhile
t=t+24
endwhile
你那样的问题不仅在于数学上得不到正确结果,在循环的方式上你把时间的循环也写在了高度里面,这样你的结果的ctl就不好写了。

还有你的平均那里多了个括号

最后注意你如果用grads计算的话,得到的数据undef改成-9.99e8.

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-9-18 08:47:18 | 显示全部楼层
楼上几位说的挺好的,就不多说了,用楼上这位的方法试试吧  
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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