爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7174|回复: 10

[秀图] GRADS绘全国160个站雨量图问题

[复制链接]

新浪微博达人勋

发表于 2013-11-1 16:44:11 | 显示全部楼层 |阅读模式

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

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

x
绘全国160个站雨量图,等植线图比地图范围大,是什么原因,怎么修改,请大师指导。
图见附件

ttt.rar

26.35 KB, 下载次数: 5, 下载积分: 金钱 -5

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-11-1 16:58:50 | 显示全部楼层
这样描述估计少有人指导  把文件内容直接贴出来
还有自己先对你的方法进行一下描述 自己能检查到哪一步,好好看看提问的智慧这篇帖子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-1 17:31:08 | 显示全部楼层
马红云  李丽平  老师编<GRADS软件基础教程>中95--96页的绘全国160个站雨量图, 请哪位大师指导.
程序多又长,GS文件:
以下是书中的GS程序全文
'open d:/data/grid.ctl'
'open d:/data/201006.ctl'
'set grads off'
'enable print d:/data/201006.gmf'
'set lon 73 135.5'
'set lat 17 55'
'set mpdset cn cnriver'
'define a=oacres(g,p.2,10,7,4,2,1)'
'define al=maskout(a,g-0.5)'
'define aa=smth9(al)'
'set xlopts 1 10 0.18'
'set ylopts 1 10 0.18'
'set gxout shaded'
'd:\rgbset.gs'
'set clevs 0 10 50 100 200 300 400 500 600'
'set ccolor rainbow'
'd aa'
'cbarn.gs'
'set cthick 8'
'set clopts 1 6 0.1'
'set gxout contour'
'set cint 50'
'd aa'
pull dummy
river(15,4,4)
'd:/southsea.gs'
'print'
'disable print'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-1 17:35:35 | 显示全部楼层
修改一下你自己的提问方式吧,该帖的直接贴上来,该说明的都说明了,问题出在哪,你自己解决到哪一步了,都说说吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-1 18:33:30 | 显示全部楼层
是呀,问题描述具体些,大家回答起来也容易些  整篇都贴上,从头到尾找,效率低 回答也困难
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-1 20:16:52 | 显示全部楼层
<GRADS软件基础教程>中95--96页的绘全国160个站雨量图,程序是书上抄的,应该没有错,见附件.请大师指导.
pull dummy
river(15,4,4)
'd:/southsea.gs'
'print'
'disable print'
当执行到上面的
pull dummy
回车以后。又出现错:
Function  not found:river
  Error occurred on line 25
Infile rain.gs

data.rar

4.41 KB, 下载次数: 1, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2013-11-2 10:01:20 | 显示全部楼层
<GRADS软件基础教程>中95--96页的绘全国160个站雨量图,程序是书上抄的,应该没有错,见附件.请大师指导.
pull dummy
river(15,4,4)
'd:/southsea.gs'
'print'
'disable print'
当执行到上面的
pull dummy
回车以后。又出现错:
Function  not found:river
  Error occurred on line 25
Infile rain.gs

程序如下:
转二进制数据
        real vec(160)

ccccccc从文件"r1606.txt"中读入数据cccccccccccccccc
        open(1,file='d:\data\r1606.txt',status='old')
        read(1,*)(vec(i),i=1,160)
        close(1)

ccccccc将文本记录转换为GrADS所支持的二进制记录cccccccccccccccc
        call stntogrd(vec)
        end
       
ccccccc stntogrd 子程序  ccccccccccc
        subroutine stntogrd(x)
        real lat(160),lon(160),x(160)
        character *8 stid(160)

ccccccccccc从文件"china.dat"中读入160站的经纬度cccccccccccccc
      open(2,file='d:\data\china.dat')
        do 20 k=1,160
  20  read(2,*)lat(k),lon(k)
        close(2)

ccccccccc给出各站的站号cccccccccccc
        do 2 i=1,160
   2  stid(i)=char(i)

cccccccccc按排序向二进制文件“201006.grd”中写入记录cccccccccccc
        open(3,file='d:\data\201006.grd',form='binary')
        tim=0.0
        nlev=1
        nflag=1
        do 40 i=1,160
        write(3) stid(i),lat(i),lon(i)
        #,tim,nlev,nflag,x(i)
40          continue

ccccccccccc在文件最后,给出一个特别记录,表示这个时间组的记录结束cccccccccccccc
        nlev=0
        write(3) stid(i-1),lat(i-1),lon(i-1),tim,nlev,nflag
        close(3)
        return
        end
对应数据的描述
dset d:/data/201006.grd
dtype station
stnmap d:/data/rain.map
undef -999.0
title rain
tdef 1 linear Jun2010 1mo
vars 1
p 0 99 rainfall data
ENDVARS

格点文件生成程序

      parameter(nx=71,ny=41)
        real lat(ny),lon(nx)
        real s(nx,ny)
        open(1,file='d:\data\grid.grd',form='binary')
        lat(1)=15.0
        lon(1)=70.0
        do j=1,ny-1
        lat(j+1)=lat(j)*1.0
        enddo
        do i=1,nx-1
        lon(i*1)=lon(i)+1.0
        enddo
           do i=1,nx
           do j=1,ny
           s(i,j)=1
        enddo
        enddo
        write(1)s
        end

格点文件描述

dset d:/data/grid.grd
undef -999.0
title Sample GRID Data
xdef 71 linear 70 1
ydef 41 linear 15 1
zdef 1 linear 500 1
tdef 1 linear Jun2010 1mo
vars 1
g 0 99 grid data
ENDVARS

绘全国160个站雨量图GS
'open d:\data\grid.ctl'
'open d:\data\201006.ctl'
'set grads off'
'enable print d:\data\201006.gmf'
'set lon 73 135.5'
'set lat 17 55'
'set mpdset cn cnriver'
'define a=oacres(g,p.2,10,7,4,2,1)'
'define al=maskout(a,g-0.5)'
'define aa=smth9(al)'
'set xlopts 1 10 0.18'
'set ylopts 1 10 0.18'
'set gxout shaded'
'd:\rgbset.gs'
'set clevs 0 10 50 100 200 300 400 500 600'
'set ccolor rainbow'
'd aa'
'cbarn.gs'
'set cthick 8'
'set clopts 1 6 0.1'
'set gxout contour'
'set cint 50'
'd aa'
pull dummy
river(15,4,4)
'd:\southsea.gs'
'print'
'disable print'

GS文件中的2个文件
rgbset.gs
* light blue to dark blue
'set rgb 40 245 245 245'
'set rgb 41 225 255 255'
'set rgb 42 180 240 250'
'set rgb 43 150 210 250'
'set rgb 44 120 185 250'
'set rgb 45 80 165 245'
'set rgb 46 60 150 245'
'set rgb 47 40 130 240'
'set rgb 48 30 110 235'
'set rgb 49 20 100 210'
'set rbcols 40 41 42 43 44 45 46 47 48 49'

southsea.gs
* draw south China sea at the right
'q dim'
rec22=sublin(result,2)
rec33=sublin(result,3)
lon1=subwrd(rec22,6);lon2=subwrd(rec22,8)
lat1=subwrd(rec33,6);lat2=subwrd(rec33,8)
'q gxinfo'
rec1=sublin(result,1)
screen=subwrd(recl,4)
if(screen='Clear')
say'Can''t draw south China sea'
return
endif
rec3=sublin(result,3)
rec4=sublin(result,4)
xright=subwrd(rec3,6)
ybottom=subwrd(rec4,4)
xleft=xright-1.2
ytop=ybottom+2
yytop=ytop+0.035
xxleft=xleft-0.035
x2=xleft+0.05
y2=ytop-0.05
x3=xxleft+0.07
y3=yytop-0.07
'set line 1 1 1'
'set vpage 0 11 0 8.5'
'draw line 'x2''ytop''xright''ytop''
'draw line 'x3''yytop''xright''yytop''
'draw line 'xleft''ybottom''xleft''y2''
'draw line 'xxleft''ybottom''xxleft''y3''
'draw line 'xleft''y2''x2''ytop''
'draw line 'xxleft''y3''x3''yytop''
zx11=xright-0.8938;zx12=zx11+0.06;
zy11=ybottom+1.29;zy12=zy11-0.08;
'set cthick 6'
'draw line'zx11''zy11''zx12''zy12''
zx21=zx11+0.07;zx22=zx21-0.03;
zy21=zy11-0.31;zy22=zy21-0.1;
'draw line'zx21''zy21''zx22''zy22''
zx31=zx21-0.19;zx32=zx31+0.02;
zy31=zy21-0.41;zy32=zy31-0.11;
'draw line'zx31''zy31''zx32''zy32''
zx41=zx31+0.35;zx42=zx41-0.08;
zy41=zy31-0.24;zy42=zy41-0.05;
'draw line'zx41''zy41''zx42''zy42''
zx51=zx41+0.23;zx52=zx51-0.05;
zy51=zy41+0.30;zy52=zy51-0.09;
'draw line'zx51''zy51''zx52''zy52''
zx61=zx51+0.21;zx62=zx61-0.04;
zy61=zy51+0.42;zy62=zy61-0.10;
'draw line'zx61''zy61''zx62''zy62''
zx71=zx61+0.01;zx72=zx71;
zy71=zy61+0.28;zy72=zy71-0.10;
'draw line'zx71''zy71''zx72''zy72''
zx81=zx71+0.08;zx82=zx81-0.07;
zy81=zy71+0.22;zy82=zy81-0.08;
'draw line'zx81''zy81''zx82''zy82''
zx91=zx81+0.12;zx92=zx91-0.08;
zy91=zy81+0.12;zy92=zy91-0.05;
'draw line'zx91''zy91''zx92''zy92''
'set lon 105 122'
'set lat 0.0 25'
'set parea'xleft''xright''ybottom''ytop''
'set mpdset mres'
'draw map'
'set mpdset mres'
'set parea off'
'set vpage off'
'set lon'lon1''lon2''
'set lat'lat1''lat2''
'set cthick 1'
return
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-2 10:40:12 | 显示全部楼层
绘全国160个站雨量图,等植线图比地图范围大,是什么原因,怎么修改,请大师指导。 tu.bmp
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-3 07:22:57 | 显示全部楼层
程序贴上来了,全国160个站雨量图也贴上来了。存在问题:
1  绘全国160个站雨量图,等植线图比地图范围大,是什么原因,怎么修改?
2  当执行GS文件的
pull dummy
回车以后。又出现错:
Function  not found:river
  Error occurred on line 25
Infile rain.gs
请大师指导。谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-19 14:23:42 | 显示全部楼层
本帖最后由 柠檬汁儿 于 2013-11-19 14:28 编辑

可以用cnbasemap 语句把国界外的部分屏蔽
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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