请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5645|回复: 8

[图形美化] 单站逐小时降水量怎样用GRADS画成折线图

[复制链接]

新浪微博达人勋

发表于 2015-9-23 21:27:11 | 显示全部楼层 |阅读模式

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

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

x
日/时01234567891011121314151617181920212223
500000000602996927532033111411100000
例如只有上表这样单站一天24小时的逐小时降水量,想转换成grads能读取的二进制,再用grads画成折线图。
我尝试了两种办法,第一用Fortran转换成二进制,类似站点数据转换为格点数据,程序借鉴气象家园的,如下
program zhexian
implicit none
character*8 stid(10)
real lon(10),lat(10),rain(10),tim
integer i,nlev,flag
do i=1,10
lon(i)=90
lat(i)=120
enddo

open(11,file='e:/fortran/zhexian/test3.txt',status='old')
open(12,file='e:/fortran/zhexian/test33.txt',form='formatted',status='unknown')
open(13,file='e:/fortran/zhexian/test33.dat',form='binary',status='unknown')
print*,"ok"
10 read(11,*,end=100)rain
print*,rain
goto 10
100 continue
do i=1,10
tim=0.0
nlev=1
flag=1
write(12,*)12345,lat(i),lon(i),nlev,flag,rain(i)
write(13)stid(i),lat(i),lon(i),nlev,flag,rain(i)
nlev=0
write(13)stid,lat,lon,nlev,flag
enddo
close(11)
close(12)
close(13)

end
这里的站点、经度、纬度都是瞎写的,因为对结果没影响。可是我觉得就是一个站点资料,这样做有点太麻烦了,而且最后还没生成map文件。
然后想到另外一个方法,就是直接在grads脚本上赋值,类似这样:
'reinit'
'open e:/fortran/zhexian/new.ctl'
'set gxout fwrite'
'set fwrite e:/fortran/zhexian/test444.dat'
'set t '1
'define rain1=5'
'set t '2
'define rain2=12'
'set t '3
'define rain3=17'
'set t '4
'define rain4=80.5'
'disable fwrite'
这个没写完,因为不知道要怎样循环输出,感觉第二个方法简单点,应该可行,所以想请教大家,要怎样修改,或者有其他方法,谢谢了~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-23 21:29:53 | 显示全部楼层
求大神帮助!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 08:05:25 | 显示全部楼层
你让自己钻进了牛角尖啊,既然只要画折线,那就是个一维数组,随时间的变化。和是不是站点没有任何关系。直接按时间顺序写成二进制文件,编写ctl 画图就可以了。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 08:42:10 | 显示全部楼层
求分享   我也很想弄明白这个东西
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-24 10:34:01 | 显示全部楼层
river 发表于 2015-9-24 08:05
你让自己钻进了牛角尖啊,既然只要画折线,那就是个一维数组,随时间的变化。和是不是站点没有任何关系。直 ...

那grads存储数据有什么格式吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 11:01:57 | 显示全部楼层
可以分享、、、、、、
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 17:32:04 | 显示全部楼层
碎琼乱玉 发表于 2015-9-24 10:34
那grads存储数据有什么格式吗

有啊,你去看grads使用手册  
排放顺序为先经度、纬度、高度,然后是物理变量,最后是时次变化。一个x、y数据场构成一个记录。
x从西---东
y从南---北
z从下---上

不同维数的循环嵌套顺序
(lon lat lev 不同变量 time )
(x    y   z   不同变量  t   )
(内循环-------------外循环)

但是说了那么多,你的数据有什么层次和经纬度变化吗?有很多人不同的变量吗?
你的数据不就只有一个时间变化吗,所以按顺序写进去就行了。
建议加强GrADS基础

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

新浪微博达人勋

 楼主| 发表于 2015-9-25 08:38:23 | 显示全部楼层
river 发表于 2015-9-24 17:32
有啊,你去看grads使用手册  
排放顺序为先经度、纬度、高度,然后是物理变量,最后是时次变化。一个x、 ...

我纠结的就是只有时间变化,经纬度要不要存数据,虽然ctl里经纬度都要设为1个,但是grads会不会要按顺序来读数据。我先试试了,谢谢你。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-25 12:21:08 | 显示全部楼层
碎琼乱玉 发表于 2015-9-25 08:38
我纠结的就是只有时间变化,经纬度要不要存数据,虽然ctl里经纬度都要设为1个,但是grads会不会要按顺序 ...

没什么纠结的,一维数据不需要存经纬度数据,哪怕是四维数据只是要按照经度从东往西 维度从南到北的顺序存放。格点数据里根本就没有你说的经纬度数据。
说到底,还是先去看GrADS实用手册,加强基础知识最重要!

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

本版积分规则

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

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

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