Grads 使用笔记
气象绘图软件GrADS使用要点
lat 10( 或为其他固定值 ) t 1 12( 或为其他变化区间 )
d aave( V ar, lon= 0, lo n= 10, lat = 10, lat = 20) 另外 , 在 G rA DS 中 定义变量 ( define 命令 ) 时 , 该 变量的维数 就是 当定 义该 变量 时 Gr AD S 的当 前维 数。所以 , 定 义 了的 变 量 ( define 命 令 ) 都 是 有 维数 的。如果超出 了该 变量 的维 数 对该 变量 进 行操 作 , 将得出意外的结果 ( 或缺测值 ) 。 4 坐标转换 在 G rA DS 中多 处 涉及 到坐 标 的转 换问 题。在
d ave( V ar, lon= 100, lo n= 120) 又如 , 我们在 实际 中经 常遇 到 要将 一个 小 区域 的面积平均的时间 变化曲 线画出。一 般容易 错误地 将 X、 Y 方向的维数设为 : set lon 0 10( 或为其他变化区间 ) set lat 10 20( 或为其他变化区间 ) 正确的办法应将 X 、 Y 方向的 维数设 为固定 , 只 有 T 方向的维数是变化的 , 如下 :
50
气象部门使用的绘 图分析 软件。它不 仅能够 实现图 形的绘制 , 还能对资料进行分析和计算。 由于 G rA DS 的后续版本不 断推出 , 且有 许多气 象工作者参 与编 程和 开发 , 所 以在 实际 工作 当 中我 们应当大力应用推广 它。 参考文献
[ 1] 郭品文 , 刘宣飞 G rAD S 气象绘图系统用户使用手册 国家自然科学基金委员会地球科学部南 京气象学 院大气资 料服务中心 [ 2] Brian Dogy , M ike Fi ori no, G rAD S user s manual, Cen t er f or 0cean -Land -A t mosphere St udies, Inst it ue for Gl obal En vironment an d S ociet y
【grads】ncdump的使用总结
【grads】ncdump的使⽤总结1、参数ncdumpncdump [-c] [-h] [-v var1,...] [-b lang] [-f lang] [-l len] [-n name] [-d f_digits[,d_digits]] fileWhere:-cShow the values of coordinate variables (variables that are also dimensions) as well as the declarations of all dimensions, variables, and attribute values. Data values of non-coordinate variables are not included in the output. This is the most suitable option to use for a brief look at the structure and contents of a netCDF file.-hShow only the header information in the output, that is the declarations of dimensions, variables, and attributes but no data values for any variables. The output is identical to using the -c option except that the values of coordinate variables are not included. (At most one of -c or -h options may be present.)-v var1,...,varnThe output will include data values for the specified variables, in addition to the declarations of all dimensions, variables, and attributes. One or more variables must be specified by name in the comma-delimited list following this option. The list must be a single argument to the command, hence cannot contain blanks or other white space characters. The named variables must be valid netCDF variables in the input-file. The default, without this option and in the absence of the -c or -h options, is to include data values for all variables in the output.-b langA brief annotation in the form of a CDL comment (text beginning with the characters ``//'') will be included in the data section of the output for each `row' of data, to help identify data values for multidimensional variables. If lang begins with C or c, then C language conventions will be used (zero-based indices, last dimension varying fastest). If lang begins with F or f, then Fortran language conventions will be used (one-based indices, first dimension varying fastest). In either case, the data will be presented in the same order; only the annotations will differ. This option is useful for browsing through large volumes of multidimensional data.-f langFull annotations in the form of trailing CDL comments (text beginning with the characters ``//'') for every data value (except individual characters in character arrays) will be included in the data section. If lang begins with C or c, then C language conventions will be used (zero-based indices, last dimension varying fastest). If lang begins with F or f, then Fortran language conventions will be used (one-based indices, first dimension varying fastest). In either case, the data will be presented in the same order; only the annotations will differ. This option may be useful for piping data into other filters, since each data value appears on a separate line, fully identified.-l lenChanges the default maximum line length (80) used in formatting lists of non-character data values.-n nameCDL requires a name for a netCDF data set, for use by ncgen -b in generating a default netCDF file name. By default, ncdump constructs this name from the last component of the pathname of the input netCDF file by stripping off any extension it has. Use the -n option to specify a different name. Although the output file name used by ncgen -b can be specified, it may be wise to have ncdump change the default name to avoid inadvertantly overwriting a valuable netCDF file when using ncdump, editing the resulting CDL file, and using ncgen -b to generate a new netCDF file from the edited CDL file.-d float_digits[,double_digits]Specifies default number of significant digits to use in displaying floating-point or double precision data values for variables that don't have a `C_format' attribute. Floating-point data will be displayed with float_digits significant digits. If double_digits is also specified, double-precision values will be displayed with that many significant digits. If a variable has a `C_format' attribute, that overrides any specified floating-point default. In the absence of any -d specifications, floating-point and double-precision data are displayed with 7 and 15 significant digits respectively. CDL files can be made smaller if less precision is required. If both floating-point and double-presision precisions are specified, the two values must appear separated by a comma (no blanks) as a single argument to the command. If you really want every last bit of precision from the netCDF file represented in the CDL file for all possible floating- point values, you will have to specify this with -d 9,17.Usage Notesncdump generates an ASCII representation of a specified netCDF file on standard output. The ASCII representation is in a form called CDL (``network Common Data form Language'') that can be viewed, edited, or serve as input to ncgen. ncgen is a companion program that can generate a binary netCDF file from a CDL file. Hence ncgen and ncdump can be used as inverses to transform the data representation between binary and ASCII representations. See ncgen for a description of CDL and netCDF representations.ncdump defines a default format used for each type of netCDF data, but this can be changed if a `C_format' attribute is defined for a netCDF variable. In this case, ncdump will use the `C_format' attribute to format each value. For example, if floating-point data for the netCDF variable Z is known to be accurate to only three significant digits, it would be appropriate touse the variable attributeZ:C_format = "%.3g"ncdump may also be used as a simple browser for netCDF data files, to display the dimension names and sizes; variable names, types, and shapes; attribute names and values; and optionally, the values of data for all variables or selected variables in a netCDF file.ExamplesLook at the structure of the data in the netCDF file foo.nc:ncdump -c foo.ncProduce an annotated CDL version of the structure and data in the netCDF file foo.nc, using C-style indexing for the annotations:ncdump -b c foo.nc > foo.cdlOutput data for only the variables uwind and vwind from the netCDF file foo.nc, and show the floating-point data with only three significant digits of precision:ncdump -v uwind,vwind -d 3 foo.ncProduce a fully-annotated (one data value per line) listing of the data for the variable omega, using Fortran conventions for indices, and changing the netCDF dataset name in the resulting CDL file to omega:ncdump -v omega -f fortran -n omega foo.nc > Z.cdl2、注意①它是在dos底下⽤的,如果在gradsnc中⽤,请在命令前加感叹号。
GrADS学习资料:第2章 数据处理
big-endian、little-endian 用于自动改变二进制位存放顺序
<template> 多个时间序列原始数据文件用一个数据描 述文件统一地描述描述这些原始数据时采用的选项, 这些数据文件的文件名形式由 dset 定义的形式命名 文件名,提示所含数据的时次。
例如:
正确的替换为: %y2 两位数年 %y4 4 位数年 %m1 1 或2 位数月 %m2 2 位数月(用 0补齐 1 位数) %mc 3 字符月份缩写 %d1 1 或2 位数天 %d2 2 位数天 %h1 1 或2 位数小时 %h2 2 位小时
设置X方向格点与经度的对应关系
XDEF number <LINEAR Start increment> 或 XDEF number <LEVELS value-list>
number(>=1)给定格点数,整形; LINEAR指明是等间隔分布格点, Start起点坐标,负数表示西经; increment网格间距。 LEVELS参数指明是不等间隔分布格点,列 出具体每个格点的坐标值(以空格分开)。
open(1,file='u.dat')
open(2,file='v.dat')
open(3,file='sst.dat')
! 打开目标文件
open(12,file='mhy.grd',form='binary')
! 把数据文件读入
do 100 it=1,nt do 50 iz=1,nz
read(1,*) ((u(i,j,iz,it),i=1,nx),j=1,ny) 50 continue
实验三 GrADS软件的应用(2)
实验三 GrADS软件的应用(2)一.实验目的1.掌握一维线形图的绘制。
2.掌握fnl数据的转换方法。
3.熟悉GrADS的生成ctl文件的常用命令。
4.熟悉GrADS的生成idx文件的常用命令。
5.掌握GrADS画图的方法。
6.掌握查看画好的图片的方法。
二.实验内容1.实验代码解释'open ' 打开数据文件'set lat 40' 设定经度变化为东经40度'set lon -180 0' 设定纬度变化为南纬180度到0度'set t 1' 设定时次固定为数据集中第一个时次'set gxout line' 设定gxout线'set ccolor 2' 设置等值线颜色为红色'set cmark 3' 设置线上的标记符号为实心圆'set cstyle 1' 设置等值线形为实线'set cthick 6' 设置等值线线宽为6'set grid on 3 3' 设定网格线为红色实现2.绘制线性图3.转换fnl文件4.运行fnl文件生成图像三.实验步骤1.绘制线性图把事先做好的.gs,.ctl和.dat文件复制到D:\grads19下面,打开grads.exe,将.gs文件拖动到dos界面,回车就会在rcl窗口显示所画图像,对应在D:\grads19也会生成一个.png文件;2..转换fnl文件(1)生成描述文件.ctl:打开grads.exe,对应输入gs->grib2ctl grib_file>grib_file.ctl,这样就可以生成描述文件.ctl(2)利用grads自带的grabmap.exe生成索引文件gs-> !gribmap -v -i D:/grads19/grib_file.ctl > a.txt,这样就会在D:/grads19路径下生成.idx 的索引文件,并会把整个映射过程写入a.txt文件中,这样就可以开始用grads读取fnl文件进行画图3.运行fnl文件生成图像将fnl_20090808_00_00_c文件对应的.gs文件拖到里面,即可生成它的.gmf文件。
实验二 GrADS软件的应用
实验二 GrADS软件的应用一.实验目的1.掌握GrADS(Grid Analysis and Display System)软件的安装。
2.掌握GrADS软件的启动方法。
3.熟悉GrADS的常用命令。
4.了解GrADS软件包内的常用文件。
5.掌握GrADS画图的方法。
6.掌握查看画好的图片的方法。
二.实验内容1.软件安装2.启动软件方法开始运行cmd 然后输入C:\grads19 \win32 \grads.exe或打开C盘-grads19-win32-grads.exe3.常用命令Reinit 重新初始化GrADS设置,同时关闭所有打开的文件,并释放所有定义的对象open 打开数据文件set t 9 设定时次固定为数据集中第九个时次set lon 90 140 设定经度变化从东经90度至140度set lat 10 60 设定纬度变化从北纬10度至北纬60度set mpdset cnworld 设置地图数据集set map color style thickness 用定制的颜色,线性和线宽绘背景地图draw map 低级绘图指令,直接进行所指定图形元素操作set lev 200 设定高度维数固定为200h Pa 等压面enable print 打开磁盘文件,用于存放随后print命令转换生成的当前屏幕图形的图元数据set grads off 不打印出GrADS标记set grid off' 不画网格set cthick 6 设置等值线线宽set clopts 1 6 0.12 设置等值线标记的颜色set xlopts 1 6 0.18 设置等值线x轴标记的颜色set ylopts 1 6 0.18 设置等值线y轴标记的颜色set gxout contour 二维等值线绘图set cint 4 设置等值线间隔d smth9(u) 温度Print 将当前图形窗口重的图形转化为图元数据,存放在先前enable 命令指定的磁盘文件中,每执行一次prin t 即向该文件中附加一幅窗口图形4.GrADS软件包内的常用文件.dat 二进制无格式记录的原始气象数据文件,其数据既可以是格点数据,也可以是站点数据。
grads常用命令
第一个命令:这样将得到一个动画显示的序列,现在输入:claerset lon -90set lat -90 90set lev 1000 100set t 1d td u该情况下我们设置y(纬度)和z(高度)变化,所以我们得到一个竖直切面图。
我们显示了两个变量,他们重叠在一起。
你可以让任意多的变量重叠在一起,只要你不使用clear命令就行了。
另一个例子,这种情况X和T是变化的(哈莫图):cset lon -180 0set lat 40set lev 500set t 1 5d z现在已经知道怎样使用选定的部分数据绘图了,下面我们学习怎样操作数据。
设置维数环境为Z,Y变化:clearset lon -180 0set lat 0 90set lev 500set t 1现在假设我们想显示华氏温度代替开尔文温度。
可以这样转换:display (t-273.16)*9/5 32任何由标准的运算符,-,* 和/ 组成的表达式都是允许的,并且操作数可以包含常量,变量,或者函数。
一个包含函数的例子:d sqrt(u*u v*v)有一个函数用来计算风的级数。
d mag(u,v)另一个内建函数计算平均值:clear d ave(a,t=1,t=5)这种情况我们可以计算5天的平均。
我们也可以从数据中移除平均值(距平值):d z-ave(z,t=1,t=5)也可以在x方向作平均并求距平:cleard z-ave(z,x=1,x=72)也可以做时间差分:cleard z(t=2)-z(t=1)完整规范的变量名是:name.file(dim |-|=va lue,…) 如果我们打开了两个文件,也许一个是模式输出,另一个是分析,我们应该区分用如下方法二者:display z.2-z.1另一个内置的函数通过有线差分计算水平涡度相关cleard hcurl(u,v)还有另外一个计算数值方向的质量积分:cleard vint(ps,q,275)这儿我们计算了可降水量(单位mm)现在来讨论控制图形输出的话题。
第3章 grads基本操作命令
关于数据文件model.le.dat的具 的具 关于数据文件 体说明,可以打开model.le.ctl文件 体说明,可以打开 文件 查看。 查看。
2. 示例演示
启动GrADS后,选择图形输出窗口 后 启动 的方式( 或 ),然后在命令窗口ga-> ),然后在命令窗口 的方式(L或P),然后在命令窗口 提示符后输入命令, 提示符后输入命令,通过图形输出窗口 可以观察输出结果。 可以观察输出结果。
open <路径 数据描述文件名 路径>数据描述文件名 路径
open命令用于打开 命令用于打开GrADS的数 命令用于打开 的数 据文件,启动GrADS后首先需要打开 据文件,启动 后首先需要打开 至少一个数据描述文件 命令如下: 数据描述文件, 至少一个数据描述文件,命令如下: open filename
define 临时变量名 表达式 临时变量名=表达式
define命令用于定义新的变 命令用于定义新的变 量,所定义的新变量可以用于随 后的表达式中。 后的表达式中。
modify 临时变量名 时间序列的 类型<seasonal diurnal> 类型 modify命令可将自定义的变 命令可将自定义的变 量声明为气候值, 量声明为气候值,用于后面的时 次代换。 次代换。
(以下set命令是设置维数环境, 关于维数环境的介绍详见第4章)
(显示该变量) (清屏)
set lon -180 0 dz c set lat 0 90 dz quit
(重新设置维数环境)
(退出GrADS系统)
实际操作后, 实际操作后,在图形输出窗 口观察输出结果。 口观察输出结果。比较不同的维 数环境设置下, 数环境设置下,输出结果有何不 关于set命令的应用将在第 命令的应用将在第4 同?关于 命令的应用将在第 章具体介绍。 章具体介绍。
grads常用命令
第一个命令:这样将得到一个动画显示的序列,现在输入:claerset lon -90set lat -90 90set lev 1000 100set t 1d td u该情况下我们设置y(纬度)和z(高度)变化,所以我们得到一个竖直切面图。
我们显示了两个变量,他们重叠在一起。
你可以让任意多的变量重叠在一起,只要你不使用clear命令就行了。
另一个例子,这种情况X和T是变化的(哈莫图):cset lon -180 0set lat 40set lev 500set t 1 5d z现在已经知道怎样使用选定的部分数据绘图了,下面我们学习怎样操作数据。
设置维数环境为Z,Y变化:clearset lon -180 0set lat 0 90set lev 500set t 1现在假设我们想显示华氏温度代替开尔文温度。
可以这样转换:display (t-273.16)*9/5 32任何由标准的运算符,-,* 和/ 组成的表达式都是允许的,并且操作数可以包含常量,变量,或者函数。
一个包含函数的例子:d sqrt(u*u v*v)有一个函数用来计算风的级数。
d mag(u,v)另一个内建函数计算平均值:clear d ave(a,t=1,t=5)这种情况我们可以计算5天的平均。
我们也可以从数据中移除平均值(距平值):d z-ave(z,t=1,t=5)也可以在x方向作平均并求距平:cleard z-ave(z,x=1,x=72)也可以做时间差分:cleard z(t=2)-z(t=1)完整规范的变量名是:name.file(dim |-|=va lue,…) 如果我们打开了两个文件,也许一个是模式输出,另一个是分析,我们应该区分用如下方法二者:display z.2-z.1另一个内置的函数通过有线差分计算水平涡度相关cleard hcurl(u,v)还有另外一个计算数值方向的质量积分:cleard vint(ps,q,275)这儿我们计算了可降水量(单位mm)现在来讨论控制图形输出的话题。
GrADS快速参考手册教学内容
给出经度-纬度坐标值(lon,lat),返回xy坐标值
w2gr lon lat
给出经度-纬度坐标值(lon,lat),返回网格坐标值
gr2w v1 v2
给出网格坐标值(v1,v2),返回经度-纬度坐标值
gr2xy v1 v2
给出网格坐标值(v1,v2),返回xy坐标值
ll2xy lon lat
-C
以两位数记年时,自动设定世纪值
一般性设置
列出帮助选项
set grads on|off
打开/关闭 显示“GrADS” 标志
设置显示模式<和色彩方式>为:
grey|greyscale
用灰度方式
color <black|white>
以彩虹模式绘图
set frame <option>
设置图形边框绘图方式为:
以一个矩形包围所有图形
off
不画边框
circle
对于其它投影方式画矩形边框,而极射投影画圆形边框
set background index
设置绘图区背景颜色
display expression
d expression
显示expression代表数据的图形
open control_filename
打开一个数据描述文件,可指明路径
define
列出当前所有定义的变量名称
dims
列出当前打开的描述文件维数信息
gxinfo
列出图形系统的窗口信息
shades
填色图中每种颜色的序号和它所对应的数值范围
pos
等待用户在图形区单击鼠标,反回一对位置坐标值
time
返回时间维信息
GrADS绘图软件使用手3
GrADS绘图软件使用手3第三章GrADS数据格式每一组GrADS数据应至少包括两组数据文件,数据描述文件—ASCII 码和数据文件—二进制,数据的真正存放地。
数据文件中只是用户数据的有序排放,而关于数据种类、排放次序等是单独放在一个文件中的称—数据描述文件。
而象GRIB和NETCDF等通用数据格式,以上两者是存于同一个文件的—或称为自定义/自解释格式数据。
但考虑到GrADS传统,对这类自定义格式数据仍将生成相应的数据描述文件。
上一章中我们已使用过了这样的一组数据。
以此为例,介绍用户如何按GrADS的格式,将自己的数据生成相应的数据文件和数据描述文件。
1.格点数据描述文件model.le.ctl文件清单:以某开始的行为注解行。
1.1数据描述文件各项解释1.DSET数据文件名定义与此数据描述文件相对应的数据文件名。
若两者位于同一目录,前面的路经可以省略或以“^”开始,代表两者位于同一目录。
若不在同一目录下,应给出路经参数。
如:c:/pcgrad/ample/model.le.dat56注意路经的给法与DOS不同,而与UNI某环境一致,便于移植!或c:\\pcgrad\\ample\\model.le.dat,两种都行。
2.TITLE数据文件说明文字串。
3.UNDEFvaule定义缺测值。
一般给一很大的正/负值,表示,当取值超过这一正值/低于定义的负值,认为该值无效。
(GrADS采用跳过或用周围有效点的值处理。
)4.OPTIONS这里定义了与二进制存储有关的选项,二进制存储的一大特点是可移植性差,因此通过keyword项来增加可移植性。
若keyword省略,则OPTIONS也可省略。
可取:equential:顺序无格式方式。
yrev:Y维与YDEF定义相反方式存放。
zrev:Z维与ZDEF定义相反方式存放。
big_endian:如数据是在un,gi,hpcray机器上生成的,而目前不在此类机器上使用。
GRADS学习心得
GRADS学习心得grads是当今气象界广泛使用的一种数据处理和显示软件系统。
该软件系统通过其集成环境可以对气象数据进行读取,加工,图形显示和打印输出。
他在进行数据处理时,所有数据在grads中均被视为纬度,经度,层次和时间的4维场,而具有操作简单,功能强大,显示快速,出图类型多样化,图形美观等特点。
正因为如此,他才成为国内外气象界通用的标准图形环境之一。
grads作为一门应用性的课程,内容包含了若干命令,在学时有限的情况下,我们如何在短时间内掌握其中最核心的内容,做到尽快入门,是有一定的难度的。
老师帮我们理清思路,凝练重点,促进知识的巩固。
这学期,我们在徐老师的指导下花了大约八周的时间联系和学习这门课程。
我开始下载数据,自己用软件画画。
在老师的严格要求下,我们一次又一次地互相帮助。
在绘画成功的那一刻,我们真的感到了巨大的成就感。
首先,从头回忆这个故事。
一开始刚刚上课,我们了解到了一大堆关于grads可以应用的各种文件。
例如(1).dat二进制无格式记录的原始气象数据文件,其既是以是格点数据,也可以是站点数据。
它们是从其它气象数据(如站点气象报、格点气象报、模式格点输出结果)转换生成的。
对格点数据而言,其格式为二进制无格式直接或顺序记录格式。
总之对格点数据,整个数据集是一个大的五维数据场,包括三维物理空间、一维物理变量、一维时间变量,存放时以二维数组片的形式按水平、垂直、物理变量、时间序列的顺序排放,(2).ctl原始数据描述文件。
该文件为纯ascii文件,用以描述原始数据集的基本信息,包括数据集文件名、数据类型、数据结构、变量描述等等,详见§4在grads环境中至少得首先打开(open)一个数据描述文件,以便后续的操作有数据对象。
(3).gsgrads控制文件,用grads命令run执行之。
也是一个纯文本文件。
还了解到十进制的原始数据文件(*.txt)、二进制的数据文件(*.dat)、数据描述文件(*.ctl)、批处理文件(*.gs)和图形文件(*.gmf)。
GrADS,NCL一些经验
GrADS,NCL⼀些经验GrADS经纬度⽐例⽅法*取消经纬⽐例⾃动调整'set mproj scaled'设置绘图区域,使得⼀致'set vpage 1 7 1 7'GrADS画特定经线⽅法set clevs 23.5; d latset clevs 120;d lonGrADS 查看多个打开⽂件的ctlq ctlinfo 1q ctlinfo 2...2个不同的缺测值 fwrite更改默认缺测值GrADS⽤fwrite输出时,默认的缺测值是-9.9900000E+08,如果输⼊源的缺测值与之不⼀致,则会出现两种缺测值的情况。
解决的办法,可以在fwrite 声明后⾯设置默认缺测值设置。
⽐如'reinit''open J:/ec79-15/ansnablameansst79_15.ctl''set t 1 12''save=ave(absnablamsst,t+0,t=444,12)''modify save seasonal''set gxout fwrite''set undef 9.999E+20''set x 1 480''set y 1 89''set fwrite J:/ec79-15/seasonal.grd''d save''disable fwrite''reinit';(注:modify save seasonal命令意为将save变量修改成季节变量,⽅便与其它不同⼤⼩的变量计算(⽐如求季节距平),此外modify还有另外⼀个选项diurnal⽇变化)NCL使⽤⾃定义⾊标清风给的调⾊盘确实好⽤,⽣成的rgb格式也可以。
但是最近再次遇到了ncl⽆法正常读取colormap错误的问题,参考了⼀下官⽹。
GrADS学习资料:第7章 GrADS 描述语言及编程(1)
在i、j变量被替代前后,复合变量名的整个 长度不能超过16个字符。
在GrADS描述语言中不能设置过多的变量, 因此,不能利用复合变量产生一个较大的数 组,例如:
i=1 while (i<=10000) var.i = i i=i+1 endwhile
显示1-3月的图和标题
t.1='Jan';t.2='feb';t.3='mar' i=1 while(i<=3) 'set lev 850' 'set t ‘i’' 'set lon 70 140' 'set lat 10 60' 'set gxout vector' 'd v;v.2' 'draw title uv for 't.i'' 'print' 'c' i=i+1 endwhile
while语句
while (表达式) 描述语言语句 描述语言语句 … … endwhile
当表达式结果为真,即:是一个不为0 的字符,循环就继续执行。
lon1=0 lon2=357.5 lat1=-90 lat2=90
iyear=1948 while(iyear<=2002) say ''iyear'' pull dummy m=1 while(m<=12)
复合描述变量: 可以在描述语言程序中构造数组。复合变量名可 以是一个由“·”分隔的多个变量名的复合体。例 如: varname.i.j
如果i和j也是变量,那么i和j的内容将会被i和j的 字符串值所替代。 i = 10 j=3 varname.i.j = 343 在这个例子中,赋值语句相当于:
气象绘图软件GrADS使用要点
●计算机与气象仪器 ●收稿日期:2002-02-20气象绘图软件GrADS 使用要点高文良 陈忠明 闵文彬(四川省气象科学研究所 成都 610071)摘要:通过介绍GrADS 绘图软件,分析了其优点及难点,指出了GrADS 的使用要点。
关键词:GrADS ;绘图软件;要点中图分类号:TP30214文献标识码:B文章编号:1003-7187(2002)02-0049-021 引言在众多的绘图软件中,针对气象部门的绘图软件GrADS (Grid Analysis and Display System )是一款非常不错的免费共享软件。
它整个系统由C 语言编成,运行速度快,图形显示快速、美观大方,支持多种图形类型的输出。
GrADS 具有丰富的内部函数,可以对资料进行初步的计算和分析处理,而且操作十分简便,易于理解掌握。
它既可以处理格点资料,又可以处理站点资料。
它支持对GriB 码文件、NetCDF 文件的直接读取,并且对气象界最流行的各种数据格式都能正确分析和处理。
用户还可以利用GrADS 的描述语言(GrADS Script )很方便地进行编程、开发。
GrADS 推出后在气象界得到了广泛的使用。
2 基本概念在GrADS 中,每个原始资料数据集都需要一个数据描述文件文件与它相对应。
在数据描述文件中,包括了对原始资料数据文件的名字、数据格式、纬向格点数及间隔、经向格点数及间隔、空中层次数及间隔、时次及间隔、变量数等的说明。
数据描述文件从时间和空间上对数据集的维数作出了明确的规定。
这样,在GrADS 启动后将数据描述文件打开,就可以对整个资料数据集进行处理和分析。
所以,数据描述文件一定要准确,避免任何差错。
数据文件中原始数据的排放次序也有一定的规则。
其排放次序为首先是经度、纬度,然后是高度和物理变量,最后是时次变化。
[1]。
如果改变了数据的排放规则,必须在数据描述文件中进行特别说明。
因此可以将原始数据序列看成是一个五维(或少于五维)的数据场,将每个经向和纬向的数据面看成是一个记录,是整个数据集的一个二维切片。
GrADS中填色标尺cbarn用法
GrADS中填色标尺cbarn用法GrADS中填色标尺cbarn用法(2011-09-22 15:56:01)转载标签:绘图笔记杂谈===================GrADS自带脚本库==================加注色标/图例cbar.gs 条状色标cbarn.gs 两头尖的条状色标cbarc.gs 扇形色标cbar_l.gs 折线图图例cbar_line.gs 折线图图例地图底图basemap.gs 海洋/陆地填色makebg.gs 生成具有地形纹理的底图map.gs 预定义多个可选的地图范围颜色定义cmap.gsdefine_colors.gs插值isen.gs 由等压面插值到特定等熵面pinterp.gs 由eta/sigma/等压面等插值到指定等压面zinterp.gs 由eta/sigma/等压面等插值到指定等高面物理量计算等mconv.gs 计算水汽辐合plotskew.gs 绘制T-logP图sweat_index.gs 用相对湿度, 温度和风计算凝结指数traj.gs 在水平面上绘制当前时刻向前/向后的轨迹线格式转换lats4d.gs 输出NetCDF, HDF-SDS 或GRIB 格式数据动画/缩放xanim.gs 动画控制zoom.gs 图形放大=========================细说cbarn的分割线==================使用cbarn.gs只能画出默认的填色标尺,如果想自定义图标效果则使用下面语句:cbarn sf vert xmid ymidsf:色标尺寸,1 为全尺寸,0.5为半尺寸;vert:0为水平,1为垂直;xmid,ymid:色标中心点的位置。
具体,简单的可省略写为 cbarn 1 1 或 cbarn 0.5 0要自定义图标位置的时候再写为 cbarn 1 1 1 1 或者随便改最后两个1,看你喜欢了。
全文引自:/doc/9f8864976.html,/krcat/blog/item/3dc319 d996e6612d32fa1cdf.html。
南京信息工程大学GrADS-复习资料
目前有很多流行的绘图软件,如MICAPS、Grapher、Excel、GrADS、Surfer、NCL、MATLAB等,不同的软件有其不同的特点和优势。
GrADS不仅能够绘制一维和二维图形、进行简单统计计算、物理量的计算,还可进行数据格式的转换。
当前气象学研究中许多格点资料(如二进制,GRIB码,Netcdf,HDF-SDS 资料)均需用GrADS软件进行处理,该软件因此也成为气象、海洋专业科研工作者和高校学生做研究论文使用最广泛的的绘图软件之一,并成为本科生和函授研究生必须选修的一门课程。
1.1 GrADS作图的一般步骤GrADS作图一般包括四个步骤,即打开数据描述文件、输入GrADS内部命令、保存图形、退出GrADS。
1.2 几个重要的GrADS命令1)打开文件的命令(open/sdfopen/xdfopen)主要用于打开数据描述文件或者数据文件,命令形式为ga->open data.ctlga->sdfopen u.ncga->xdfopen wind.ddf2)查询命令(query或者q)主要用于查询数据资料的时空结构、变量等信息。
ga->q file 2ga->q ctlinfo 13)关闭数据文件的命令(close)ga->close 2ga->close 1注意要先关闭后打开的文件。
4)设置维数环境(set)ga->set lon 60 160ga->set lat 20 50ga->set time Jul1983ga->set lev 200上面的lon、lat、time、lev为地图坐标,也可以换为格点坐标(x\y\z\t)表示。
5)显示和清屏,初始化命令clear(或者c)为清屏命令,display(或者d)为显示命令。
初始化环境(reinit/reset)注意Reinit 和reset的区别,前者是关闭所有文件,重新初始化,后者则是重置初始环境,但不关闭数据文件,reinit常作为Grads命令批处理文件中的第一个命令。
第八章Grads定义新变量
第八章Grads定义新变量GRADS (Grid Analysis and Display System)讲义(8)内容提要一、新变量的定义二、气候变量的定义一、定义一个新的变量1、语法:define varname = expr特点:1)新变量可以用于随后的表达式中(它也可以用于随后的define 和display命令中)。
2)新变量不是储存在硬盘上而是在内存中,所以,要尽量避免定义维数太大的变量。
2、注意维数环境的设置1)定义的变量可以有0-4个变化的维数。
2)当4个维数同时变化时,define命令是GrADS中所有命令中唯一可行的命令。
3)定义一个4维的变量,在define命令执行后,记住改变维数环境,使之变化的维数小于4。
4)当Z和\或T维数变化时,define命令自动逐个固定Z和T的维数来计算表达式。
你如何安排你的表达式,将影响计算的过程。
例如,假设定义一个4维的变量,set lon -180 0set lat 0 90set lev 1000 100set t 1 10define temp = rh在define命令执行后,记住改变维数环境,使之变化的维数小于4。
set t 5set lev 500d temp3、固定维的理解如果你定义的一个变量具有某些固定的维数,随后使用这个变量,那么固定的维数将被处理为与该维数无关的变量。
例如:set lon -180 0set lat 0 90set lev 500set t 10define zave = ave(z,t=1,t=30)这个变量的固定维数为Z和T,在任何的Z和T的设置下,它都可以被使用。
如:set t 1set lev 200d zave即使维数固定在200hPa,你仍然能够得到你定义它时的500hPa 上的时间平均值。
4、变化维的理解当定义变量具有变化的维数环境时,然后再将这个维数固定起来,这时所得的变量将被固定在这个维数上:set lon -180 0set lat 0 90set lev 500set t 10define temp = zset lat 40d temp将会显示定义格点中400N上的资料。
GrADS学习资料:实习三set命令的使用练习 实习四
实习四 各类参数设置综合练习
2.实习资料: 地形高度资料:dxgd.grd\dxgd.ctl 范围:2.5-360 E,-90-90N(全球) 层次:1层,地面; 时间:2002年1月 变量名:h 分辨率:2.5*2.5,格点数:144*73
实习四 各类参数设置综合练习
风场资料:uv.grd\uv.ctl 范围:60-150E,0-40N 层次:风场,850 hPa、200hPa; 时段:2002.1~2005.12共48个月 变量名:u、v 分辨率:2.5*2.5,格点数:37*17
实习三 set命令的使用练习
实习三 set命令的使用练习
1.实习目的: 熟练使用set命令的各类参数设置 掌握.gs文件的编写格式和运行 学会保存图形文件
实习三 set命令的使用练习
2.实习资料:
“data”文件夹下二进制月平均风场文件:uv.grd
数据描述文件:uv.ctl 时间范围:2002.1-2005.12 共48个月 水平范围:37×17个网格点,分辨率为2.5°×2.5° 经纬度范围:60-150°E, 0-40°N 垂直层次:850hPa、200hPa 物理量:u,v
实习三 set命令的使用练习
2.实习资料:
“data”文件夹下二进制月平均高度场文件:hgt.grd
数据描述文件:hgt.ctl 时间范围:2002.1-2005.12 共48个月 水平范围:37×17个网格点,分辨率为2.5°×2.5° 经纬度范围:60-150°E, 0-40°N 垂直层次:500hPa 物理量:hgt
不能超出画布大小8.5*11或11*8.5 从上至下,y轴从大到小
set vpage 0 8.5 7 10.5
1
set vpage 0 8.5 3.5 7
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
****************************************************************
!!!!重要命令
'set tlsupp year|month'
控制时间坐标轴的标记
例如'set tlsupp year'就会去掉年的标记只留下月份。
t5=t5+1
endwhile
'reinit'
这样可以提取你想要的年数据,然后你大可运用fortran对数据进行随心所欲的处理。
***************************************************************
'set timelab on|off'
*****************************************************************
而不能仅仅'd u;v'
之————控制矢量密度与颜色
'set ccolor 1'*控制颜色
'd skip(u,2);v'*控制密度
*******************************************************************************************
'set lat 15 55'
'd hgt'
t1=t1+1
endwhile
to=to+1
endwhile
*这里必须先观点上述运行的文件,grads最多同时可以打开20个文件左右。
'reinit'
'draw string 5.75 0.8 0.5'*写箭头下文字
或
'set arrlab off' *关掉缺省的图标
'set arrscl 0.5 0.5' *表示在图中0.5英寸的长度代表0.5m/s
'd u;v'
'draw line 5.5 1 6 1' *画线
'draw line 5.95 0.95 6 1'*画箭头
'set fwrite D:\sichuan\hgt1\'%t5%'.dat'
'sdfopen e:\ncep1\hgt\hgt.'%t5%'.nc'
t3=t5-1950
*判断是否为闰年
if(t3=2|t3=6|t3=10|t3=14|t3=18|t3=22|t3=26|t3=30|t3=34|t3=38|t3=42|t3=46|t3=50|t3=54)
to=153
else
to=152
endif
t4=to+91
while(to<=t4)
'set t 'to
t1=1
while(t1<=12)
'set z 't1
'set lon 80 140'
*因为144是(144-132)/3的公倍数,144必定会在最后一个经度坐标上出现,这样就会与第n+1个图的第一个横坐标:132重叠,解决方法有:
1.在最初的计算区域,就是分页前,就规定所选区域为[132,144)
2.分页前,依然选取[132,144],在分页后,每幅图的display前,将区域选为[132,144)
display (dv/dx-du/dy)/(6.37e6*cos(lat*3.1416/180))
************************************************************************************************
grads将数据写入不同类型文件:
之——存成ASCII码:
file='output.txt'
'set gxout print'
'd var'
rc=write(file,result)
rc=close(file)
之——存成binary:
'set gxout fwrite'
'set fwrite filename'
之字符:'draw string 9.09 3.03 `52900141' *then you can see bold roman numbers 2900141
之符号:'draw string xxx xxx `3#' then you can see a arrow,remember this the symbol must come together with the number "3"
求导———
define dv = cdiff(v,x)
define dx = cdiff(lon,x)*3.1416/180
define du = cdiff(u*cos(lat*3.1416/180),y)
define dy = cdiff(lat,y)*3.1416/180
矢量图
之————控制矢量图中矢量标志的位置
'set gxout vector'
'set arrlab off' *关掉缺省的图标
'set arrscl 0.5 0.5' *表示在图中0.5英寸的长度代表0.5m/s
'd u;v'
'draw string 0.95 3.6 `3"'*画箭头,使用set font 3的特殊图形
或者'set ylevs lab1 lab2...'和'set ylabs lab1|lab2|...'配合使用。
*********************************************************************************************
*******************************************************************************************
关于画水汽通量,水汽通量为一个向量,方法如下:
set gxout shaded
d mag(q*u,q*v)
x = subwrd(result,3)
y = subwrd(result,6)
之2.
lon='xxx.x xxx.x xxx.x'
lat='xx.x xx.x xx.x'
j=1
cn=999
while(j<cn)
'q w2xy '%subwrd(lon,i)%' '%subwrd(lat,i)
function
之————gs重复使用到的语句,打包成function
以function main(track)开头
以return结尾
*******************************************************************************************
set gxout vector
d q*u;q*v (mag(q*u,q*v)只是画通量的绝对值,所以要加上d q*u;q*v才能看出通量的方向)
关于画水汽通量散度,应该为:
hdivg(q*u,q*v)
*******************************************************************************************
*******************************************************************************************
经纬度对应图上位置——
之1.
lon = '133.5 '
lat = '33.8'
'q w2xy '%subwrd(lon,1)%' '%subwrd(lat,1)
函数
smth9对于资料分辨率过低引起的不平滑起作用,但如果对于模式输出等高分辨率的不平滑不会有任何效果
多幅图输出
之————多幅图输出时,边缘的经纬度为了避免重叠,必须使得第n张图的最后一个坐标不输出,
如set lon 132 144
set xlint 3
set xlopts color <thinkness<size>>
while(i<=cnt)
aa=read('.txt')
aa1=sublin(aa,2)
lat=subwrd(aa1,3)
lon=subwrd(aa1,4)
'q w2xy 'lon' 'lat
x = subwrd(result,3)
Grads批处理文件名
若想要提取从1951-2006年56年nc文件中的某些数据,一个一个处理非常麻烦,这里介绍种较为简易的方法。例如想提取6-8月的位势高度资料。