Grads保姆级教学——小乌龟考试看这一篇就够了

临近考试根据上课内容和ppt整理的grads笔记,ppt翻来翻去太难受了,就看这篇叭,过考试绝对没问题


如有疏漏请大家多多指教

目录

  • Grads保姆级教学——小乌龟考试看这一篇就够了
  • 一、Grads概述
    • 1.Grads是啥
    • 2.为啥用Grads
    • 3.Grads基础需要掌握什么?
  • 二、基础命令
    • 0.如何获得文件绝对路径
    • 1.进入画图模式
    • 2.打开文件操作
    • 3.几个常用基础命令
  • 三. ctl和gs的创建和使用
    • 1.ctl文件
      • 1.ctl是什么
      • 2.如何创建一个ctl文件
      • 3. ctl文件中的属性解释
      • 4.使用ctl
    • 2.gs文件
      • 1. gs是什么
      • 2.创建gs文件
      • 3.编写gs
      • 4.使用gs
  • 四. 绘图要素的设置
    • 1.维度设置
    • 2.图形类型设置
    • 3.设置各种绘图样式
      • 1.对图形类型为contour起作用
      • 2.对图形类型为contour或shaded起作用
      • 3.对于图形类型为contour, shaded, vector, stream起作用的设置
      • 4.对于图形类型为line起作用的设置
      • 5.对于图形类型为vector起作用的设置
      • 6. 设置坐标轴要素
      • 7.地图设置
  • 五.绘图指令补充
  • 六.命令语言中的变量和函数
    • 1.完全变量名
    • 2.函数调用
  • 七. 描述语言的应用
    • 1.什么是描述语言
    • 2.怎么使用描述语言
    • 3.描述语言基础知识
    • 4.选择结构
    • 5.循环结构
    • 6.常用内部函数
    • 7.输入输出

一、Grads概述

1.Grads是啥

  • Grads全称: Grid Analysis and Display System
  • Grads是一款在气象界应用广泛的数据处理和显示的绘图软件

2.为啥用Grads

  • 考试要考呜,不然早去专精matlab和python画图了
  • 体积小,各种操作系统都使用
  • 免费
  • 出图类型多种多样
  • 操作简单上手快

3.Grads基础需要掌握什么?

  • CTL 文件编写
  • gs脚本使用
  • 命令行基础设置操作
  • 命令行基础绘图操作
  • 描述性语言使用
  • 和Fortran联动的数据预处理
  • 保存绘图结果

二、基础命令

0.如何获得文件绝对路径

grads中经常需要修改文件路径,小白同学一定要会这个基础技能

  • 进入文件夹后点上方,可以查看当前文件夹的绝对路径
  • 一定先打开显示文件拓展名
  • 之后拼接文件名在目录的绝对路径后面,就是文件的绝对路径,注意因为当前目录下的东西所以要加一个\ 表示当前目录下

后面频繁用到绝对路径,一定要掌握哦

1.进入画图模式

  • 打开grads会闪退的可能需要手动打开xming后再打开grads
  • xming的位置是 E:\OpenGrADS-2.2\Contents\Resources\Xming 注意\OpenGrADS-2.2前是你grads的安装位置,我安装在E盘根目录下所以是这个地址,找到xming打开
  • 成功进去后第一件事就是按下键盘的l后回车
Landscape mode? ('n' for portrait):  l
//之后出现
ga->
//说明成功,可以正常使用了

2.打开文件操作

重点记住区分不同文件的打开方式

  • open+文件路径命令用于打开.ctl格式文件,是最常用的命令
ga-> open E:\Grads\h4\JJ-ave-pre-grads.ctl

这里绝对路径也可以不用手动写,直接写完open,加个空格,把ctl文件拖入就可以自动出来
warning:open后面一定要有空格!!!!


  • sdfopen用来打开.nc数据,基本没用过
ga-> sdfopen d:/uwnd.nc

  • run用来打开.gs文件,gs文件也可以不用 run直接可以跑
    很常用
 ga-> run E:\Grads\h3\demo01.gsga-> E:\Grads\h3\demo01.gs//两种方式都可以打开gs

3.几个常用基础命令

  • d 变量=>用来将变量画在图上,是最核心的命令
open E:\Grads\h2\CMAP-precip-Jan-Dec-1979.ctl
d uwnd
=> 打开的ctl文件里有一个叫uwnd的变量,d就是把他画出来

  • q ctlinfo 查看ctl文件中的信息,用来查看都有什么变量,各个维度的范围
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 300250 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
  • clear 清理画布
  • reinit 初始化grads,在gs文件的第一行一般加上
  • reset 清除所有set设置
  • gxprint +要保存文件的绝对路径 什么格式,后缀就是什么
gxprint F:\HJG\monsoon\Cor-NAM-SFW.pdf
保存的就是pdf格式文件
  • enable print 路径+格式
  • printim 路径

三. ctl和gs的创建和使用

重中之重

1.ctl文件

1.ctl是什么

  • ctl是数据的描述文件,用来描述别的文件的各种信息,包括经纬度,气压高度,变量等信息,在grads中读取了ctl之后就可以设定各个参数的数值,之后把变量画出来

2.如何创建一个ctl文件

  • 创建一个文本文件,将后缀改成.ctl,就是个ctl文件(注意要像前文说的打开文件拓展名,否则你的文件会改成xxx.ctl.txt 本质还是txt文件)

  • 打开ctl文件——ctl文件不能直接双击打开,可以用打开方式——记事本打开

3. 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
  • dset :二进制原始数据文件的完整路径 ctl本质是给一个数据文件写描述,这个文件就是dset中的地址
  • title:这个ctl文件的题目,可以随便写
  • undef:定义缺测值,虽然每次都不知道缺测值是啥,但是必须写上,不然就会报错,数字可以随便写,我喜欢写-99999
  • xdef和ydef:经度方向的范围设置
//骨架
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 设置气压面
//骨架
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设置时间映射
//骨架
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 变量数量
    详细请看这里,有点复杂
//骨架
vars 变量数量
变量名 变量的层数(一般和zdef中层数相同)预设的最大值,比前一个数大就行,(后面的参数请看上面的链接) 变量描述
变量2
变量3 ...
endvars举个例子
vars 1
uwnd  4 99 u wind (m/s)
Endvars
=>uwnd变量有四个层次,这里是对应了zdef的四个高度,预设的最大值为99,后面是这个变量的描述

4.使用ctl

  • 在grads中 open+ctl文件绝对路径即可使用
ga-> open E:\Grads\h4\JJ-ave-pre-grads.ctl
  • 在gs中使用

2.gs文件

1. gs是什么

gs就是把一堆在命令行要写的内容写在一个脚本文件中,每次执行gs就等于执行了里面一堆的命令行代码,更加方便,而且描述性语言可以写在gs中

2.创建gs文件

跟创建ctl类似,将文本文件后缀改成.gs,之后用记事本打开就可以进行编辑

3.编写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'

4.使用gs

  • run用来打开.gs文件,gs文件也可以不用 run直接可以跑
    很常用
 ga-> run E:\Grads\h3\demo01.gsga-> E:\Grads\h3\demo01.gs//两种方式都可以打开gs

四. 绘图要素的设置

1.维度设置

简单但是重要

  • 维度在grads中可以理解为时空设置——经纬度,气压高度,时间的设置
  • 读入ctl之后,如果需要就得手动设置时空范围
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
这些就是时空信息
  • 设置方式 :set关键字设置注意设置的范围不能越界,超过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=>设置时间为第三到第六个时间点

2.图形类型设置

使用set gxout type来设置图形类型

contour: 二维等值线图
shaded: 二维填色图
grid: 二维场不绘图
vector: 矢量箭头形式绘二维风场
stream: 流线形式绘制二维风场
barb: 风向杆形式绘制二维风场
line: 对一维场绘制单线图default)
bar: 对一维场不绘单线图,而绘制直方图
linefill: 两单曲线之间填色使用时
set gxout shaded =>之后画的图就是填色的

3.设置各种绘图样式

1.对图形类型为contour起作用

  • set ccolor 色号=>设置等值线颜色
set ccolor 0
0 - 黑 1 - 白,2 - 红,3 - 绿 ,4 - 兰
5 - 青,6 - 洋红,7 - 黄 ,8 - 橘黄 ,15 - 灰set ccolor rainbow 彩虹色
  • set cstyle style=>设置等值线的线型
set cstyle 1
1 - 实线,2 - 长虚线,3 - 短虚线,5 - 点线
  • set cthick 线宽=>设置线宽度
set cthick 1
线宽的取值范围是0~10

2.对图形类型为contour或shaded起作用

  • set cint value --设置间隔几根
set cint 2
间隔2数值画一条等值线


彩虹色是间隔1画的,白色是间隔6画的

  • set clevs val1 val2… 只画这几个数值的等值线
set clevs 2 8
只画值为2和8的等值线
d uwnd

  • set ccols coll1 coll2 … 设置了只画哪几个等值线后,可以用ccols配合使用,指定那几条等值线的颜色,顺序一一对应
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...的等值线

3.对于图形类型为contour, shaded, vector, stream起作用的设置

  • set strmden val 设置流线密度

4.对于图形类型为line起作用的设置

  • set cmark marker 设置线条上的标记符号
set cmark 0
0 -无标记,1 -叉号,2 -空心圆,3 -实心圆,4 -空心方框,5 -实心方框

5.对于图形类型为vector起作用的设置

  • set arrscl size 设置矢量箭头的长度 范围一般取0.5~1.0
  • set arrowhead size 设置矢量箭头的大小 范围一般取0.05,0则没有箭头的头

6. 设置坐标轴要素

  • set vrange y1 y2
  • set vrange x1 x2 分别设置x,y坐标尺的取值范围
  • set zlog on z维度方向的对数尺度是否开启,z代表高度,不用对数会不直观
  • set grid on是否画网格
  • set xlopts或ylopts color 坐标轴的数值标示的颜色

7.地图设置

  • set map color style thickness 设置地图背景的颜色color、线型style和线宽thickness
  • set mproj proj设置当前地图投影方式

五.绘图指令补充

draw各种东西

  • draw x y string 在图(x,y)的地方写下字符串
  • set string color设置字符串颜色

  • draw line x1 y1 x2 y2画线
  • set line color style thickness 设置线的样式

  • draw rec xlo ylo xhi yhi 画一个不填色的长方形
  • draw recf xlo ylo xhi yhi 画一个填色的长方形

  • draw title string 给图一个标题
  • draw xlab|ylab string 给x,y轴一个名字

六.命令语言中的变量和函数

1.完全变量名

varName.fileNum=>varName是ctl中变量的名字,fileNum就是文件序号

ga->open model.ctl=>文件编号为1
ga->open model.le.ctl =>文件编号就是22号文件中有个变量叫uwnd,表示这个变量就叫uwnd.2
d uwnd.2 就是把2号文件中的uwnd画出来可以直接用括号在后面设置纬度
d uwnd(lev=850, t=2)

2.函数调用

比较重要
调用方式:函数名(参数)
常用函数:

  • ave(变量对象,范围1,范围2) =>用来求平均(一维)
open model.ctl
set lev 500
d ave(z,t=1,t=5)  用ave求纬向平均
ave(uwnd,lon=0,lon=360)
  • aave(变量对象,x范围,y范围) =>用来求面积平均(二维)
ave(uwnd,lon=0,lon=360,lat=-30,lat=30)参数是一个矩形的范围
  • mag(a,b) =>返回模长(sqrt(a2+b2))
  • tloop(表达式)=>按时间循环执行里面的表达式,成为一个时间序列图
set t 1 120
d tloop(ave(uwnd,lat=60,lat=75)) 按时间序列重复计算平均

七. 描述语言的应用

1.什么是描述语言

描述语言是GrADS软件包中自带的高级语言。通过描述语言,如 if / else / endif和 while / endwhile 语句块,可以进行流程控制,实现较为复杂的绘图控制功能。

2.怎么使用描述语言

在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

3.描述语言基础知识

  • 变量名:由1至8个字符组成,以字母开头,仅包含字母和数字,变量名区分大小写
  • 赋值语句
a=3 =>直接赋值给变量就可以了
b='hello world'
  • 运算符

4.选择结构

//骨架
if(判断条件)elseendif

5.循环结构

//骨架
while(判断条件)=>代码块
endwhile//
示例代码
t=1
while ( t<10 )
‘set t ’t
‘d z’
t = t + 1
endwhile

6.常用内部函数

  • substr(string,start,length)=>截取字符串
从stirng中切下从start开始,length个字符
substr('hello",1,3) =>hel
  • subwrd(string,wordNum) =>从string中截取第wordNum个词语
subwrd('hello Chris Redghost',2) 第二个次是Chris

7.输入输出

  • 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 +一个要查找的变量,之后会自动生成一个result对象表示查询的结果(这是个命令行输入,并不是描述语言)
'query time'
say result
=>此时result就是查询出来的time

Grads保姆级教学——小乌龟考试看这一篇就够了相关推荐

  1. Fortran保姆级教学——考试所有知识点看这一篇就够了

    Fortran保姆级教学--考试所有知识点看这一篇就够了 临近期末本人复习的同时将整个fortran课堂知识整理了下来,希望学弟学妹们今后学这门课的时候不至于在csdn找不到系统的教程,也希望能帮到需 ...

  2. 【量化回测必看!】Backtrader保姆级教学+免费行情源 SMA策略

    前言 想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看? 博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手 博主同时将视频课程内容在B站更新,可以关注& ...

  3. Java EE系列(九)——Java EE连接Mysql数据库(JDBC保姆级教学)

    最近几天,peter xiao所在的项目小组也逐渐开始进行做最后的Java web课程大作业了,我们组所做的是运动会报名服务系统,其中涉及到很多数据的增删查改,所以需要依靠Mysql数据库来解决这些问 ...

  4. 自媒体人平台运营保姆级教程!速看!

    自媒体人平台运营保姆级教程!速看! 一.三大媒体发布平台分析 微博:微博是指一种基于用户关系信息分享.传播以及获取的通过关注机制分享简短实时信息的广播式的社交媒体.网络平台,允许用户通过Web.Wap ...

  5. 「保姆级教学」入门级java程序——薪资转换器

    往期「保姆级教学」目录 「保姆级教学」iOS下JDK环境配置 文章目录 往期「保姆级教学」目录 前言 第二日任务 1.java基础语法 2.掌握java基本输入输出 3.掌握java基本数据类型和变量 ...

  6. 保姆级教学——集群环境搭建及创建集群

    保姆级教学--集群环境搭建及创建集群 新建虚拟机 一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准 ...

  7. 英伟达的Nerf:instant_ngp在Windows10下的配置和使用--保姆级教学

    英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学 1.前言 Nerf的原理和厉害之处在这里就不做详细介绍了,本文主要是针对小白在Windows10环境下配置ins ...

  8. 手把手教你使用Hugo搭建个人博客网站|保姆级教学

    搭建个人博客网上目前用的比较多的博客框架是Hexo.Hugo.Jekyll.本文详细介绍利用最新的Hugo(基于Go语言的博客框架)在windows上搭建个人博客网站,从域名注册到后期维护,全程保姆级 ...

  9. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  10. mysql ip比较大小_MySQL优化/面试,看这一篇就够了

    原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...

最新文章

  1. webpack之proxyTable配置
  2. Java 的Runnable和Callable的区别
  3. java中定义一个CloneUtil 工具类
  4. 长远锂科:拟发行可转债募资不超32.5亿元
  5. lane是什么意思_什么是Trunk?Trunk详解
  6. Java库转oc_急急急!各位大神:一段JAVA代码转成OC代码。
  7. String.format()方法使用
  8. div+css格式规范
  9. Maven基础篇之Maven实战入门-最新IDEA版maven
  10. SaaSBase:什么是SAP(思爱普) ERP?
  11. CF 1260 D 题解
  12. windows10查看桌面壁纸路径
  13. i春秋 - Exploit-Exercises: Nebula - level06
  14. chloe.mysql 源码_[开源]无sql之旅-Chloe.ORM之增删查改
  15. mysql字符集校对_MySQL字符集与校对
  16. python爬虫——GET请求百度关键词搜索案例
  17. kvm虚拟机压缩qcow2镜像空间
  18. 逻辑学笔记全(浙江大学mooc慕课笔记整理:从命题到缪误)
  19. L3-031 千手观音 拓扑排序+哈希表
  20. 数据结构与算法题目及C++解答

热门文章

  1. eclipse插件下载地址
  2. 基于PLC和组态软件的多方式运行小车控制系统设计
  3. ACER 4741G
  4. 图解安装simsun字体后OO乱码的摸黑解决办法【转贴自http://linux.hiweed.com】
  5. Python获取最新省市区列表并绘制中国地图(含港澳台)
  6. 讲道理 | 三维高斯积分公式
  7. lammps建模_lammps建模
  8. adminLTE的介绍
  9. 使用Word 2003“格式→外文版式→带圈字符”功能可以输入10以上带圈序号。
  10. 销售方法总结思维导图模板分享