临近考试根据上课内容和ppt整理的grads笔记,ppt翻来翻去太难受了,就看这篇叭,过考试绝对没问题
如有疏漏请大家多多指教
考试要考呜,不然早去专精matlab和python画图了
grads中经常需要修改文件路径,小白同学一定要会这个基础技能
后面频繁用到绝对路径,一定要掌握哦
成功进去后第一件事就是按下键盘的l后回车
Landscape mode? ('n' for portrait): l
//之后出现
ga->
//说明成功,可以正常使用了
重点记住区分不同文件的打开方式
ga-> open E:\Grads\h4\JJ-ave-pre-grads.ctl
这里绝对路径也可以不用手动写,直接写完open,加个空格,把ctl文件拖入就可以自动出来
warning:open后面一定要有空格!!!!
ga-> sdfopen d:/uwnd.nc
很常用
ga-> run E:\Grads\h3\demo01.gs
ga-> E:\Grads\h3\demo01.gs
//两种方式都可以打开gs
open E:\Grads\h2\CMAP-precip-Jan-Dec-1979.ctl
d uwnd
=> 打开的ctl文件里有一个叫uwnd的变量,d就是把他画出来
ga-> q ctlinfo
//下方就是ctl内的信息
dset E:\Grads\h3\cor.ISM.JJ-hgt.79-10.grd
title corr
undef -32766
xdef 144 linear 0 2.5
ydef 73 linear -90 2.5
zdef 17 levels 1000 925 850 700 600 500 400 300
250 200 150 100 70 50 30 20 10
tdef 32 linear 00Z01JAN1979 12mo
vars 1
cor 17 33,100,0 monthly geopotential heights on pressures levels [gpm]
endvars
gxprint F:\HJG\monsoon\Cor-NAM-SFW.pdf
保存的就是pdf格式文件
重中之重
创建一个文本文件,将后缀改成.ctl,就是个ctl文件(注意要像前文说的打开文件拓展名,否则你的文件会改成xxx.ctl.txt 本质还是txt文件)
打开ctl文件——ctl文件不能直接双击打开,可以用打开方式——记事本打开
先看一段完整的ctl文件
dset E:\Grads\h3\cor.ISM.JJ-hgt.79-10.grd
title corr
undef -9999
xdef 144 linear 0.000 2.500
ydef 73 linear -90.000 2.500
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef 32 linear 01JAN1979 1yr
vars 1
cor 17 33,100,0 monthly geopotential heights on pressures levels [gpm]
Endvars
虽然每次都不知道缺测值是啥,但是必须写上,不然就会报错,数字可以随便写,我喜欢写-99999
//骨架
xdef x方向点的数量 linear 起始 增量
ydef y方向点的数量 linear 起始 增量
举个例子
xdef 144 linear 0.000 2.500
ydef 73 linear -90.000 2.500
表示的就是:
x方向有144个点(可以理解为144个经度) 线性增加 从0度经度开始 间隔2.5个经度
这里2.5*144=360 刚好就是全球的经度
y方向73个点,从南纬90开始间隔2.5线性增加,刚好是全球的纬度
//骨架
zdef 气压层数 levels 一系列气压值
举个例子
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
表示有17个气压面,分别是1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10百帕高度
//骨架
tdef 时间点数量 linear 起始时间 时间增量
举个例子
tdef 32 linear 01JAN1979 1yr
表示从1979年1月1日,每间隔一年,总共32年
时间增量的简称:
- mn 分钟
- hr 小时
- dy 天
- mo 月
- yr 年
起始时间的表达:顺序是 小时:分钟 Z 日期 月份 年 | hh:mmZddmmmyyyy
ex:
TDEF 60 LINEAR 00Z31dec1999 1mn
TDEF 73 LINEAR 3jan1989 5dy
TDEF 730 LINEAR 00z1jan1990 12hr
TDEF 12 LINEAR 1jan2000 1mo
TDEF 365 LINEAR 12Z1jan1959 1dy
TDEF 40 LINEAR 1jan1950 1yr
//骨架
vars 变量数量
变量名 变量的层数(一般和zdef中层数相同)预设的最大值,比前一个数大就行,(后面的参数请看上面的链接) 变量描述
变量2
变量3 ...
endvars
举个例子
vars 1
uwnd 4 99 u wind (m/s)
Endvars
=>uwnd变量有四个层次,这里是对应了zdef的四个高度,预设的最大值为99,后面是这个变量的描述
ga-> open E:\Grads\h4\JJ-ave-pre-grads.ctl
gs就是把一堆在命令行要写的内容写在一个脚本文件中,每次执行gs就等于执行了里面一堆的命令行代码,更加方便,而且描述性语言可以写在gs中
跟创建ctl类似,将文本文件后缀改成.gs,之后用记事本打开就可以进行编辑
命令行需要每行用 ''单引号括起来
,描述性语言不需要
//举个例子
每一行都是可以在命令行里输入的,写在gs中一次性全部执行,更加方便
'reinit'
'open E:\Grads\h3\cor.ISM.JJ-hgt.79-10'
'q ctlinfo'
'set lat 0 60'
'set lon 40 140'
'set lev 200'
'E:\OpenGrADS-2.2\Contents\Resources\Scripts\subplot 1 2 1'
'set gxout shaded'
'd cor'
'set ccolor 5'
'd abs(cor)>0.35 '
'set ccolor 8'
'd abs(cor)>0.45'
很常用
ga-> run E:\Grads\h3\demo01.gs
ga-> E:\Grads\h3\demo01.gs
//两种方式都可以打开gs
简单但是重要
xdef 144 linear 0.000 2.500
ydef 73 linear -90.000 2.500
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef 32 linear 01JAN1979 1yr
这些就是时空信息
注意设置的范围不能越界,超过ctl中定义的范围
set lat 20 40 =>设置纬度范围是20到40
set lon 80 120
set lev 500 =>高度设置为500hpa高度
set t 3 =>设置为第三个时间点 比如从2000年作为起始时间增量为一年,set t 3 就是2003年
set t 3 6=>设置时间为第三到第六个时间点
使用set gxout type来设置图形类型
contour: 二维等值线图
shaded: 二维填色图
grid: 二维场不绘图
vector: 矢量箭头形式绘二维风场
stream: 流线形式绘制二维风场
barb: 风向杆形式绘制二维风场
line: 对一维场绘制单线图default)
bar: 对一维场不绘单线图,而绘制直方图
linefill: 两单曲线之间填色
使用时
set gxout shaded =>之后画的图就是填色的
set ccolor 0
0 - 黑 1 - 白,2 - 红,3 - 绿 ,4 - 兰
5 - 青,6 - 洋红,7 - 黄 ,8 - 橘黄 ,15 - 灰
set ccolor rainbow 彩虹色
set cstyle 1
1 - 实线,2 - 长虚线,3 - 短虚线,5 - 点线
set cthick 1
线宽的取值范围是0~10
set cint 2
间隔2数值画一条等值线
set clevs 2 8
只画值为2和8的等值线
d uwnd
set clevs 2 6
set ccols 1 3
d uwnd
指定2,6两根等值线颜色色号是1,3
set cmin val =>只画不低于val的等值线
set cmax val =>只画不高于val的等值线
set black val1 val2... =>不画 val1和val2...的等值线
set cmark 0
0 -无标记,1 -叉号,2 -空心圆,3 -实心圆,4 -空心方框,5 -实心方框
color style thickness
设置地图背景的颜色color、线型style和线宽thicknessdraw各种东西
x y string
在图(x,y)的地方写下字符串color
设置字符串颜色x1 y1 x2 y2
画线color style thickness
设置线的样式 xlo ylo xhi yhi
画一个不填色的长方形xlo ylo xhi yhi
画一个填色的长方形string
给x,y轴一个名字varName.fileNum=>varName是ctl中变量的名字,fileNum就是文件序号
ga->open model.ctl=>文件编号为1
ga->open model.le.ctl =>文件编号就是2
2号文件中有个变量叫uwnd,表示这个变量就叫uwnd.2
d uwnd.2 就是把2号文件中的uwnd画出来
可以直接用括号在后面设置纬度
d uwnd(lev=850, t=2)
比较重要
调用方式:函数名(参数)
常用函数:
open model.ctl
set lev 500
d ave(z,t=1,t=5)
用ave求纬向平均
ave(uwnd,lon=0,lon=360)
ave(uwnd,lon=0,lon=360,lat=-30,lat=30)参数是一个矩形的范围
set t 1 120
d tloop(ave(uwnd,lat=60,lat=75)) 按时间序列重复计算平均
描述语言是GrADS软件包中自带的高级语言。通过描述语言,如 if / else / endif和 while / endwhile 语句块,可以进行流程控制,实现较为复杂的绘图控制功能。
在gs脚本文件中使用,不用引号引起来
示例代码
'reinit'
'open E:\Grads\h2\CMAP-precip-Jan-Dec-1979.ctl'
t=4
y=1
WHILE(t<=9) //while循环,不需要用单引号括起来
'set t 't''
'query time'
time=result
'E:\OpenGrADS-2.2\Contents\Resources\Scripts\subplot 2 3 'y''
'd precip'
say time
month=substr(time,13,3)
'draw title 'month''
t=t+1
y=y+1
ENDWHILE
a=3 =>直接赋值给变量就可以了
b='hello world'
//骨架
if(判断条件)
else
endif
//骨架
while(判断条件)
=>代码块
endwhile
//
示例代码
t=1
while ( t<10 )
‘set t ’t
‘d z’
t = t + 1
endwhile
从stirng中切下从start开始,length个字符
substr('hello",1,3) =>hel
subwrd('hello Chris Redghost',2) 第二个次是Chris
say expression
prompt expression 屏幕上要显示的提示信息
pull var 要用户输入的,赋值给var变量
line = ‘I Love GrADS’
say line
prompt ‘Enter latitude: ’ =>屏幕提示输入纬度
pull lat =>让输入的赋值给lat
prompt ‘Enter longitude: ’
pull lon
‘set lat ’ lat
‘set lon ’ lon
'query time'
say result
=>此时result就是查询出来的time