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

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18324|回复: 38

[分享资料] 用grads画站点资料的等值线

[复制链接]

新浪微博达人勋

发表于 2011-8-4 14:32:22 | 显示全部楼层 |阅读模式

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

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

x
一 先把站点文件转化为二进制文件
假定站点资料为
station  lat  lon  var
….   …. ….   …..   
  1 单个时间变量,单个要素 bintd.f90
program bintd
         parameter (st=3276) ! st means nums of station
         character stid(st)*8
     integer nflag,nlev
         real lat(st),lon(st),std(st),tim
         open(30,file='02070108.txt')
         open(40,file='td.dat',form='binary')
         do i=1,st
           read(30,'(a5,2f8.2,f7.1)')stid(i),lat(i),lon(i),std(i)
           write(*,*)stid(i),lat(i),lon(i),std(i)
         end do  
         close(30)
         tim=0.0
         nflag=1
         nlev=1
         do i=1,st
          write(40)stid(i),lat(i),lon(i),tim,nlev,nflag,std(i)
         end do
         nlev=0
         write(40)stid(3276),lat(3276),lon(3276),tim,nlev,nflag
         close(40)
         end
  2 多个时间变量,单个要素binstat.f90
假定站点资料为
time  station  lat  lon  var
……. ……    …  …   ….
program binstat
         character stid*8
     integer nflag,nlev
         real lat,lon,std,tim
         open(30,file='st020120.txt')
         open(40,file='bist020120.dat',form='binary')
         iflag=0
         i=0
10       read(30,'(i3,1x,a5,2f8.2,f7.1)',end=90)id,stid,lat,lon,var


         if(iflag.eq.0)then
           iflag=1
           ims=im
           ids=id
         end if
         if(ids.ne.id)then
            nlev=0
            write(40)stid,lat,lon,tim,nlev,nflag
            i=i+1
            write(*,*)i
         end if
         ims=im
         ids=id
         tim=0.0
         nflag=1
         nlev=1
         write(40)stid,lat,lon,tim,nlev,nflag
         write(40)var
         go to 10
90       continue
         nlev=0
         write(40)stid,lat,lon,tim,nlev,nflag
         stop
         end     
二 创建站点文件的描述文件  
  1单个时间变量 单个要素  td.ctl
dset td.dat
dtype station
stnmap td.map
undef 999.9
title daily td
tdef 1 linear Jan2002 1mo
vars 1
td 0 99 tdpoint data
endvars
  2 多个时间变量 单个要素  stat.ctl
dset bist020120.dat
dtype station
stnmap svar020120.map
undef 999.9
title daily svar
tdef 31 linear Jan2002 1mo
vars 1
svar 0 99 svars data
endvars
三 stnmap –i xxx.ctl
四 生成相应的格点文件   wgrid.f90
program wgrid
        ! to get  grids
        real gtd(50,50)
        ! redefine the grids numbers when necessary
        open(10,file='/Models/czh/wgrid.dat',form='binary')
        do i=1,50
          do j=1,50
           gtd(i,j)=0
          end do
        end do
        write(10)((gtd(i,j),i=1,50),j=1,50)
        end
五 生成格点文件的描述文件 grid.ctl
dset wgrid.dat
title gtd
undef -9.99E33
xdef 50 linear 115.07 0.18
ydef 50 linear 39.29 0.18
zdef 1 linear 1 1
tdef  1 linear jan2002 1mo
vars 1
gtd 0 99 grid td
endvars
六 生成最后的gs文件 stat.gs
1 显示一张图
'reinit'
'open gtd.ctl'
'open td.ctl'
'set mpdset cnworld'
'set lon 102.2 125.8'
'set lat 31.4 46.4'
'set t 1'
'define tds=oacres(gtd,std.2)'
'set cint 0.5'
'set gxout shaded'
'd tds'
'set gxout contour'
'd tds'
'printim td.gif white'
;
2 同时显示多个时刻的图
'reinit'
'open gtd.ctl'
'open 200201.ctl'
'set mpdset cnworld'
'set lon 115.17 117.672'
'set lat 39.29 41.216'
tm=1
while(tm<=31)
'set t '%tm
'define statvar=oacres(gtd,svar.2)'
'set cint 0.5'
'set gxout shaded'
'd statvar'
'set gxout contour'
'd statvar'
'printim statvar'% tm % '.gif white'
'd statvar'
'c'
tm=tm+1
endwhile

评分

参与人数 3金钱 +25 贡献 +2 收起 理由
godenflame135 + 10 + 2 很好,很全,很强大!
传说中的谁 + 10 很详细,谢谢分享
mofangbao + 5

查看全部评分

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-8-4 14:34:37 | 显示全部楼层
必须顶啊,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-4 14:35:00 | 显示全部楼层
这个貌似清风大大发过?也许是我记错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-4 17:44:50 | 显示全部楼层
本帖最后由 喜上眉梢 于 2011-8-4 17:46 编辑

全而详细,要是加上把站点等值线以外数据MUSKOUT掉的部分,就更全了,再附上上述F/GS/CTL程序包,就更更全了,总之感谢Mouse楼主的分享!。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-8-4 18:44:35 | 显示全部楼层

站点作图完美方案.zip (9.37 KB, 下载次数: 222)

评分

参与人数 1金钱 +10 收起 理由
godenflame135 + 10 虽然是版主,同样很辛苦~~~

查看全部评分

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

新浪微博达人勋

发表于 2011-8-4 20:24:47 | 显示全部楼层
这个论坛里好像已经有过了~~
不过还是要顶LZ~~~加油~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-5 09:47:49 | 显示全部楼层
顶啊!对我这种新手帮助很大,谢谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-5 13:11:13 | 显示全部楼层
建议管理员将此贴在grads板块置顶。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-5 13:22:45 | 显示全部楼层
喜上眉梢 发表于 2011-8-4 17:44
全而详细,要是加上把站点等值线以外数据MUSKOUT掉的部分,就更全了,再附上上述F/GS/CTL程序包,就更更全了 ...

maskout另有教程,在GRADS版块,需要的可以去找来看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-8-5 13:23:53 | 显示全部楼层
喜上眉梢 发表于 2011-8-4 17:44
全而详细,要是加上把站点等值线以外数据MUSKOUT掉的部分,就更全了,再附上上述F/GS/CTL程序包,就更更全了 ...

之前有童鞋做过两种屏蔽界外信息的教程,basemap和maskout
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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