- 积分
- 1929
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-4-3
- 最后登录
- 1970-1-1
|
发表于 2017-11-24 12:45:59
|
显示全部楼层
本帖最后由 guzhong 于 2017-11-24 12:47 编辑
关键语句就是
'set line xxx'
'draw line 'x1' 'y1' 'x0' 'y0''
set语句的xxx是线型线色线宽的设置,查一眼手册就知道对应的了,draw语句是把对应(x1,y1)(x0,y0)连起来,之前你要定义这些的位置,可以一个个定义,也可以通过read读取在txt文件里的数据。如果是经纬度lat0和lon0,需要用
'q w2xy ' lon0 ' ' lat0
语句转化成虚页英寸单位,之后
x0=subwrd(result,3)
y0=subwrd(result,6)
读取所得,再带回draw命令
当然如果你需要把点标出来就需要draw mark命令,定义一下颜色位置大小。
附一个例子吧,我用过的
'reinit'
'open D:\grib\fnl.ctl'
'enable print D:\grib\track.gmf'
'set font 1'
'set grads off'
'set grid off'
'set lon 118 125'
'set lat 20 30'
'set cmax 0'
'set xlint 2'
'set ylint 2'
'set xlopts 1 4 0.18'
'set ylopts 1 4 0.18'
'set clopts -1 -1 0.20'
'set grads off'
'set grid off'
'd PRMSLmsl'
'basemap l 15 0 m'
read_file=read('D:/grib/loc_pre3.txt')
read_line=sublin(read_file,2)
read_line=sublin(read_file,2)
lon0=subwrd(read_line,2)
lat0=subwrd(read_line,3)
date0=subwrd(read_line,1)
*rate0=subwrd(read_line,4)
low0=subwrd(read_line,4)
'q w2xy ' lon0 ' ' lat0
x0=subwrd(result,3)
y0=subwrd(result,6)
'set line 1 1 3'
'draw mark 2 'x0' 'y0' 0.07'
i=1
while(i<=10)
xbefore=x0
ybefore=y0
ratebefore=rate0
read_file=read('D:/grib/loc_pre3.txt')
read_code=sublin(read_file,1)
if(read_code>0);break;endif
read_line=sublin(read_file,2)
lon0=subwrd(read_line,2)
lat0=subwrd(read_line,3)
date0=subwrd(read_line,1)
*rate0=subwrd(read_line,4)
low0=subwrd(read_line,4)
'q w2xy ' lon0 ' ' lat0
x0=subwrd(result,3)
y0=subwrd(result,6)
'draw mark 2 'x0' 'y0' 0.07'
'set line 1 1 3'
'draw line 'xbefore' 'ybefore' 'x0' 'y0''
i=i+1
endwhile'print'
'c'
'disable print'
'reinit'
对应的loc_pre3.txt格式
date lon lat slp wind 这样的排列方式 ,排了11行,照猫画虎做就行了,你可以只在你的txt里写lon lat,然后把我的gs里对应位置改一下
|
|