爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
123
返回列表 发新帖
楼主: 二子搞研究

[求助] 利用Fortran做单一站点多时次txt转换grd时候出错!

[复制链接]

新浪微博达人勋

发表于 2016-3-3 21:07:04 | 显示全部楼层
二子搞研究 发表于 2016-3-3 20:11
谢谢大神,已经顺利做出!我参考的是魏凤英老师那本书P31页有关相关性检验求t的公式。
但我还想请教您两 ...

我没你厉害啊,这么复杂的东西。
但是你的想法应该是对的,超前滞后相关应该就是你说的那样就能实现。你说的第二个问题grads里面应该也是可以实现的,求相关之前可以利用ave函数把前8天的平均值计算出来啊,然后再带入tcorr
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-13 21:13:43 | 显示全部楼层
本帖最后由 yaotianci 于 2017-12-13 22:40 编辑
river 发表于 2016-3-2 08:53
是你自己搞错了吧。你仔细看看tcorr的用法。点对场的相关,只需要这个点上的一个时间序列就可以,和它在 ...

版主您好!上次多蒙指点,解决了grb格式数据的GrADS读取问题。再次感谢!这次小白又遇到麻烦了,希望得到你的帮助。
最近在试着用GrADS做点场相关。我有50年序列的年降水量资料(txt格式),但在利用fortran将其转为GrADS可读的二进制文件时遇到了麻烦。我的操作步骤是:1、准备原始数据(rain.txt,见截图1):
389.5905
523.4105
294.9465
392.5855
303.9285
426.7125
393.8455
490.8215
585.627
529.0375
427.611
320.6055
584.7345
438.9
483.217
515.143
486.36
257.277
297.5365
358.668
331.85
368.6955
585.6605
401.6495
289.8045
413.388
369.638
366.239
526.6555
396.358
469.828
464.265
552.7105
494.545
687.006
527.9905
461.004
494.183
707.0415
433.283
381.056
405.57
341.028
340.943
379.105
489.576
347.3445
422.3425
380.692
489.4765
436.3897


2、编写十进制转二进制的fortran程序:没有报错,能转出结果(用的Simply Fortran)。
program txt2Binary
implicit none
integer,parameter:: tn=50
  real :: val(tn)
  integer i
!tn为年数,时间序列长度
!读源数据
  open(1,file ='rain.txt',form='formatted',status='old')
    read(1,*) (val(i),i=1,tn)
  close(1)
  !写数据
open(3,file='Data.dat',status='replace',form='unformatted')
    do i=1,tn
       write(3) val(i)
    enddo
close(3)
end program txt2Binary

3、为data.dat配置描述文件
dset C:\Users\acer\Fortran\Test\Data.dat
undef -999.0
title rian
xdef  1 linear 0 1
ydef  1 linear 0  1
zdef 1 levels 0 1
tdef 50 linear 01JAN1961 1yr
vars 1
rain 0 99 timeseries rain data
endvars

4、在GrADS中验证读取的结果,遇到麻烦:
能正常打开ctl,但set t 1时,d rian的结果不是txt中的第一个值389.5905;
且发现,在grd数据中,每2个rain数据之间多了2个与rain数据无关的值5.60519e-45。见截图2。不知道二进制grd和txt对不上的原因出在哪?可能是个很幼稚的问题,但确实想了许久。请批评指正!期待得到您的指点。

年降水量序列

年降水量序列

验证界面

验证界面


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

新浪微博达人勋

发表于 2017-12-17 08:57:41 | 显示全部楼层
open(3,file='Data.dat',status='replace',form='unformatted')
改成下面那样试试吧
open(3,file='Data.dat',form='binary')
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-17 22:11:55 | 显示全部楼层
river 发表于 2017-12-17 08:57
open(3,file='Data.dat',status='replace',form='unformatted')
改成下面那样试试吧
open(3,file='Data.d ...

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

本版积分规则

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

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

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