NCL graphics_manual
- 格式:pdf
- 大小:1.27 MB
- 文档页数:39
IDL、NCL、GRADS、MATLAB绘图命令对应关系一览表1.grads的数据文件与ncl的什么文件对应?grads只支持按照一定顺序存储的二进制数据文件,后缀名以.grd或者.dat或者.grb结束。
这种数据必须以时间为最外层,然后每个变量按照向量形式存储,每个变量由外向内的存储顺序是高度(或等压面)==》纬度==》经度。
这必须注意,否则画图容易出现一堆一堆的乱线条,这就说明你的数据没有按照grads的要求存储。
再看看ncl,可以说ncl支持绝大多数各种数据的读写,包括netcdf,hdf,以及二进制数据甚至ASCII码(如果说是十进制数据或许你会更熟悉),前两种数据一般都有头文件,不能用C 语言或者Fortran读取,都需要插件才可以读取,ncl可以直接读取,matlab中也可以直接读取NETCDF格式(.nc)的数据。
grads中可以读取按照说明存取的NC数据,这种数据必须又正确的时间说明,也就是说时间必须是真实的,有些模式模拟出来的数据grads的sdfopen 命令是打不开的,因为一般模式都是nonleap run,都是平年,没有设定闰年,造成了时间说明不真实,grads就会报错。
那么grads'如何使用NC数据呢?所以建议使用ncl转换数据,将NC数据,hdf数据或者十进制数据转换成grd数据,供grads使用。
这样说明是在是太空洞了,那么下面我举个例子吧。
eg1) 使用grads将netcdf数据转换成grd数据'reinit'var.1='air';var.2='hgt';var.3='uwnd'var.4='vwnd';var.5='omega';var.6='shum'j=6while (j<=6)'set fwrite/disk3/users/Rao_Jian/ERA-Interim-daily/entropy/'var.j'.daily.1979-2010.grd' 'set gxout fwrite'i=1979while (i<=2010)'sdfopen/disk3/users/lbq/ERA-Interim-daily/pressure/'var.j'.interim.'i'.nc'tt=1if(i=1980|i=1984|i=1988|i=1992|i=1996|i=2000|i=2004|i=2008)while (tt<=366)'set t 'ttzz=1while (zz<=37)'set x 1 240''set y 1 121''set z 'zz'd 'var.j''zz=zz+1endwhilett=tt+1endwhileelsewhile (tt<=365)'set t 'ttzz=1zz=1while (zz<=37)'set x 1 240''set y 1 121''set z 'zz'd 'var.j''zz=zz+1endwhilett=tt+1endwhileendifi=i+1name='/disk3/users/lbq/ERA-Interim-daily/pressure/'var.j'.interim.'i'.nc''close 1'endwhile'disable fwrite'j=j+1endwhileeg2)使用ncl将数据输出成二进制数据,grads可以使用(截取部分)patho = "/disk3/users/Rao_Jian/Hadley/"system("rm "+patho+"ev_ts.grd")system("rm "+patho+"ev_ts2.grd")system("rm "+patho+"ev_ts.txt")system("rm"+patho+"ev_ts2.txt")do nt=0,719fbindirwrite(patho+"ev_ts.grd",ev_ts(:,nt));写成二进制数据,供grads使用end dofbindirwrite(patho+"ev_ts2.grd",ev_ts(time|:,evn|:))asciiwrite(patho+"ev_ts.txt",ev_ts(time|:,evn|:));写成十进制数据,可以贴到EXCEL中使用asciiwrite(patho+"ev_ts2.txt",ev_ts);print(ev_ts(0,:))此外ncl中还有其他的读写函数,如fbinrecread,fbinrecwrite,fbinwrite,fbinreadncl读取netcdf3/4、hdf4、grib-1/2也是通过文件操作的eg3)ncl支持直接读取格式文件的读法fi = addfile(pathi+"HadISST_sst.nc","r")sst0 =fi->sst(960:1679,:,:) ; load 50 year data duringfrom 1950 to 2009注意:这类文件的后缀名一般为.nc /.hdf/ .grb/.hdfeos/.ccm2.grads中的描述文件与ncl中的什么对应描述文件(.ctl)是一个纯文本文件,我们有数据grads还是不能出图,需要一个描述文件来指定他的存储数据个数,维度(时间长度、层数和经纬度信息)。
ncl绘图基本流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!NCL(NCAR Command Language)是一种专门用于气象、海洋和气候数据处理和可视化的编程语言。
Example 1——XY plots这个例子介绍了NCL的基础知识,例如如何开始和结束NCL脚本,如何创建和初始化变量,如何创建和绘制XY坐标图,以及如何设置resources来改变XY坐标图的外观。
此外还介绍了NCL变量包含元数据的概念,以及展示了如何从ASCII文件读取数据。
这个例子创建了5个XY坐标图。
前四个图使用了NCL脚本生成的数据,第五个图读取了ASCII文件的数据。
第一个图有一个曲线,其他图右多条曲线。
每个图相对前一个图来讲都有一些改动的地方,例如添加标题、线标签,改变线条颜色和粗细,添加标记。
在以后的例子中将有更加复杂的XY坐标图。
请注意,“line”和“curve”在这个示例中互换使用,用来表示XY坐标图的曲线。
分号“;”在NCL脚本中表示允许注释。
所有的注释都必须以分号开头,任何在分号之后和下一个换行符前的东西都将忽略。
注释可以在一行中单独出现,也可以出现在NCL命令之后。
但是在同一行注释不能出现在命令之前,因为注释符之后所有的东西都被忽略。
运行这个示例,必须下载以下文件:gsun01n.ncl,然后键入:ncl gsun01n.ncl 示例1代码及解释1. load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; Load the NCL file that contains the gsn_*载入本示例使用的包含函数和程序(以gsn开头的)的NCL脚本。
NCL中的load语句的作用和C和Fortran90程序中include作用一样。
2.; functions used below.3. begin每个NCL脚本都以begin声明开始,以end声明结束。
4. x = new(9,float) ; Define two 1D arrays of 9 elements each.5. y = new(9,float)用new语句来声明2个各有9个元素的1维浮点数组。
NCL绘图参考手册根据NCL Mini Graphics Manual翻译有用的链接:NCL主页:/本手册下载:/Document/Manuals/脚本例子和样本图形:/Applications//Document/Manuals/Getting_Started致谢衷心感谢上海海洋大学海洋科学学院胡松老师的悉心指导;感谢南京信息工程大学大气科学学院海洋科学系程军老师领我入门;感谢刘畅对本手册耐心细致的修订工作。
本人在学习NCL过程中,对手册进行了翻译,仅供方便学习查找使用。
由于本人水平有限,本手册还存在许多不足,对一些专业名词略有模糊,望大家指正,可发邮件至:l_n.2006@崔琳琳 2010年7月31日于上海海洋大学目录第一章引言 (4)1.1 脚本样本 (4)第二章高级绘图界面 (4)2.1 gsn 一般界面 (5)2.2 gsn_csm 界面 (5)2.3 我该用什么界面? (5)2.4 gsn special界面 (6)2.5 下载界面 (6)2.6 gsn_csm 期望 (6)第三章入门指南 (6)3.1 $NCARG_ROOT (6)3.2 .hluresfile (7)3.3 运行NCL (7)第四章工作台 (8)第五章通过源代码修改图形 (8)5.1 源代码类型 (8)5.2 设置源代码 (8)5.3 常用的源代码 (9)5.4 画图和gsnDraw (9)5.5改进框架和gsnFrame (9)5.6特殊字符串源代码gsnLeftString,gsnCenterString,gsnRightString (9)第六章颜色 (10)6.1 开始颜色 (10)6.2 默认色表 (10)6.3 内置色表 (10)6.4 使用RBG三色 (11)6.5 命名颜色 (11)6.6 gsnSpreadColors (12)6.7 CMYK (12)第七章矢量图 (12)7.1 矢量的类型 (12)7.2 控制矢量 (13)7.3 通过标量场或在标量场给矢量着色 (13)第八章地图标号 (15)第九章页面最大化 (15)第十章等值线图 (16)10.1 手动设置等值线阶 (16)10.2 等值线效果 (16)10.3 明确设置等值线阶 (17)10.4 等值线标签 (17)第十一章二维Lat/Lon数组 (18)11.1 原始网格投影 (18)11.2 不规则网格 (18)第十二章改变纵横比 (19)第十三章面板图 (19)13.1 脚本样本 (19)13.2 定位图形 (20)13.3 重要的面板源代码 (20)13.4 不同大小的面板图形 (21)第十四章字体高度 (22)第十五章标题 (22)第十六章插图说明 (22)第十七章标签条 (22)第十八章函数编码 (22)18.1 上标/下标 (23)18.2 回车 (23)18.3 希腊/数学字符 (23)第十九章基元 (23)19.1 多边形 (23)19.2 多义线 (24)19.3 Polymarkers (25)第二十章添加文本 (25)第二十一章X-Y 图 (26)第二十二章指明标签 (27)附录A:命令源代码 (28)附录B:高级图形接口 (34)附录C:命名的颜色列表 (36)附录D:常见错误信息 (38)附录E:术语 (39)第一章引言本文描述了如何使用高级图形界面绘制图形。
下面一节将介绍一个脚本例子。
1.1 脚本样本一般情况下,脚本具有下面几个特征:(1)用load命令下载包含高级图形界面的函数库,按照惯例,这通常写在begin之前;(2)读取数据;(3)处理数据(可选);(4)打开工作站;(5)选择颜色表(可选);(6)创建源变量,各种图形选项作为属性分配给它;(7)调用恰当的图形界面。
;*******************************************load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl";*******************************************begin;*******************************************in = addfile(“myfile.nc”,“r”) ; pointer to filet = in->T ; read in data;*******************************************; create plot;*******************************************wks = gsn_open_wks(“ps”,”ce”) ; open ps file; choose colormap gsn_define_colormap(wks,"BlAqGrYeOrRe")res = True ; resource varbres@cnFillOn = True ; turn on colorres@cnLinesOn = False ; no cn linesres@cnLevelSpacingF = 0.5 ; cn spacingres@gsnSpreadColors = True ; full colorsres@lbAutoLabelStride = True ; nice lb labelsplot = gsn_csm_contour_map_ce(wks,t,resend图形界面的默认行为是画图和提出框架,用户可以改变默认行为。
脚本例子的完整函数库见:/Applications/第二章高级绘图界面NCL的绘图是基于面向对象的方法。
这种方法提供很大的灵活性,但是很单调。
为了帮助用户,我们开发了两套高级绘图界面。
这两种界面便于可视化操作。
由于历史原因,所有的图形界面都以gsn_开始,表示“Getting Started with NCL”。
2.1 gsn 一般界面一般界面是函数和程序,它用来绘制基本的x-y图,等值线图,流线图和矢量图。
一般使用默认设置,但是用户可以改变这种设置。
附录B列出了这些界面。
图形例子以及使用指南见:/Document/Manuals/Getting_Started/2.2 gsn_csm 界面这些高级界面模仿J. of Climate(June,1998)特刊中出现的关于Climate SystemModel(CSM)的图形风格。
当gsn_csm界面为特定目的而设计时,许多用户喜欢选择它们。
原因是它们能自动执行任务,如添加颜色标签,它们也会将变量的long_name和单位属性添加到图中(图1a)。
long_name被放在左上角,单位放在右上角。
其它功能包括在圆柱形等距上添加形如“30N/120E”的纬度/经度标签,极投影图形,和压力高度图形上的特殊标签。
附录B列出了这些界面:/Applications/2.3 我该用什么界面?通常用户更喜欢选择gsn_csm界面,这样做有几个特殊原因:·你的数据具有属性,你想图形自动生成标签·尽可能为你做同样多的事·你喜欢一般风格·你想把数据放在地图上,且你的数据具有地球物理坐标2.4 gsn special界面这些接口执行特殊任务,比如绘制标签和文本。
不要把它们和gsn一般接口混淆。
2.5 下载界面gsn一般接口、gsn_csm图形接口和函数位于两个NCL脚本。
虽然使用前的任何时候接口可以下载函数库中的函数和程序,但是通常在脚本的上部begin语句之前就下载。
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"2.6 gsn_csm 期望标签:gsn_csm图形界面可以通过CCSM netCDF惯例获得所需要的信息。
如:如果数据具有单位和名称,它将会自动标识在图上。
坐标变量的单位属性:纬度和经度坐标变量应该具有下面任一个属性:"degrees_north" "degrees_east""degrees-north" "degrees-east""degree_north" "degree_east""degrees north" "degrees east""degrees_N" "degrees_E""Degrees_north" "Degrees_east"如果坐标变量不符合上面的名称,你将会收到错误信息:(0) is_valid_lat_ycoord: Warning: The units attribute of the Ycoordinate array is not set to one of the allowable units values(i.e. 'degrees_north'). Your latitude labels may not be correct.对于不符合的维,最简单的方法是给坐标变量添加属性:x&lat@units = "degrees_north"符号&用来获取坐标变量,@用来获取属性。
第三章入门指南3.1 $NCARG_ROOT要执行NCL,你必须设置环境变量。
包含NCARG_ROOT说明的UNIX文件是系统附属物。
对于csh和tcsh,可以在".cshrc" 文件和 ".login" 文件中设置。
在初始化路径变量的文件中设置。
如果你用的是ksh,bsh,bsh,在文件".profile"中设置。
下面的例子适用于tcsh,假定NCL位于"/contrib":setenv NCARG_ROOT /contribpath = ($NCARG_ROOT/bin $path)NCARG_ROOT应该设置在包含ncl可执行文件的“bin”目录下的父目录里。