NCLonlineExample设定数组v为:v=(/0,1,2,3,4,5,6,7,8,9/)则以下引用分别为:v1=v(1:7);v1contains1,2,3,4,5,6,7.v2=v(1:7:3);v2isanarraycontainingtheelements1,4,7.v3=v(:4);v3contains0,1,2,3,4(amissinginitialintegerindicatesthebeginningoftheindices).v4=v(8:);v4contains8,9(amissingsecondindexindicatesthelargestoftheindices).v5=v(:);v5equalsv(thisisthesameassettingv5=v).v6=v(2:4:-1);v6contains4,3,2(inthatorder).;Thealgorithmistofindallnumberswithintherangeofthefirstcolon-separatedpair,thenstepinreversewhenthestrideisnegative.v7=v(6);v7isascalarwithvalue6.v8=v(5:3);v8contains5,4,3inthatorder(whenthestartingindexisgreaterthantheendingindex,areverseselectionisdone).v9=v(::-1);v9contains9,8,...,0inthatorder.2.ColorMaps(1)用RGB值创建自己的颜色图编辑自己的颜色图,使用RGB值(Red、Green和Blue),定义一个2维的float数组,维数为n×3,第一个维数n代表颜色数(n),第二个维数代表RGB值。然后通过gsn_define_colormap使其有效,或者在调用setvalues中的变量。例如,如果你打开一个工作站,并且用以下NCL代码创建颜色图:wks=gsn_open_wks(x11,example)cmap=(/(/1.00,1.00,1.00/),(/0.00,0.00,0.00/),\(/.560,.500,.700/),(/.300,.300,.700/),\(/.100,.100,.700/),(/.000,.100,.700/),\(/.000,.300,.700/),(/.000,.500,.500/),\(/.000,.700,.100/),(/.060,.680,.000/),\(/.550,.550,.000/),(/.570,.420,.000/),\(/.700,.285,.000/),(/.700,.180,.000/),\(/.870,.050,.000/),(/1.00,.000,.000/)/)然后你可以用以下任意代码使其有效:gsn_define_colormap(wks,cmap)或者setvalueswkswkColorMap:cmapendsetvalues(2)用命名的颜色或者RGB值创建自己的颜色图使用颜色名字来创建颜色图。共有650个有效的颜色名,具体的颜色名见colorname.txt。有用的GSUN函数:gsn_define_colormap/gsn_retrieve_colormap/gsn_draw_colormap/LearningNCLbyexample函数和程序介绍本节中的例子都使用了一套通用的NCL函数和程序,在NCL文件$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl中定义的,而且带有前缀“gsn_”(以下称为GSUN)。了解文件中这些代码是如何工作的并不是很重要,但是当你读完所有的NCL例子之后就能感觉它们很方便,对于检验gsn_code.ncl文件大有裨益。GSUN函数和程序记录在附件中,且在第一次出现使用时会讨论。对于如何使用高阶接口来写NCL脚本,gsn_csm接口的例子,请参阅“Appliciations”一节,其中包含有数百个例子。有关如何不用GSUN函数和程序来写NCL脚本的例子,请参阅“NCLandobject-orientedprogramming”在“Goingbeyondthebasics”一章。本节的例子也会用到一些NCL内置的函数和程序。共有超过600个内置函数和程序,在“ListofNCLBuilt-inFunctions”中有记录。设置环境以运行NCL在运行本章NCL例子之前,必须满足以下基本要求:系统上必须装有最新(或接近)版本的NCL。环境变量NCARG_ROOT必须设置到系统上NCL安装的父目录下。例如,如果NCL的lib和bin分别安装在/usr/local/lib/和/usr/local/bin,那么NCARG_ROOT就应当设为/usr/local。$NCARG_ROOT/bin地址必须添加到PATH环境变量中。为了找出运行的NCL的版本,在UNIX提示符下输入ncl。如果无法找到ncl命令或者版本不是至少4.2.0.a030之后,或者对以上要求不确定,联系系统管理员或者负责在系统上安装NCL的人。如何运行案例本章例子的NCL代码都有gsun#n.ncl的名称,其中#代表例子数(01,02,……,10,11等)。每个案例都提供连接,因此可以从网上下载这些例子。这些例子当下载了NCL以后就包括,生成它们需要“ng4ex”命令:ng4exgsun01nng4exgsun06ngsun11n等等要运行这些例子,必须满足以下要求:这些例子在X11窗口上显示图形(除非另有说明),因此必须有正确的DISPLAY环境变量。此外,在运行这些例子的时候,需要用鼠标左键点击X11窗口前进到下一帧或者关闭当前帧。一些例子是写数据或者图形文件,所以确保在一个书写权限的路径。一些例子需要下载一些额外的文件,像resource文件或者数据文件。每个例子描述中,都提供了额外需要的文件链接。一旦gsun#n.ncl在当前工作路径下运行(及任何需要的其他文件),可以用如下命令运行例子nclgsun#n.ncl其中#是例子数目(01,02,……,10,11)。一般NCL示例代码结构本章例子的NCL示例结构如下:读取数据数据可以是NCL程序生成的,或者从其他类型文件(ASCII,netCDF,GRIB等等)读入。处理数据一些示例展示了如何处理数据,如转换单位、屏蔽值、插值到正常格点中,等等。数据可视化每个例子都生成一个或多个图形,包括XY坐标图、等高线图、矢量图和简化图。写入数据一些示例展示如何写数据到一个文件。GSUN示例每个示例模块开始都有一段该示例的简短描述,接下来是图像输出的图形,接下来是产生输出的NCL代码,最后是代码一行一行的描述。注意:重复使用的概念不会在每一个示例中都描述,因此按顺序阅读很重要。正因如此,并不是每个例子的每一行都进行描述,只有介绍了新概念或者值得重复的才会进行描述。Example1——XYplots这个例子介绍了NCL的基础知识,例如如何开始和结束NCL脚本,如何创建和初始化变量,如何创建和绘制XY坐标图,以及如何设置resources来改变XY坐标图的外观。此外还介绍了NCL变量包含元数据的概念,以及展示了如何从ASCII文件读取数据。这个例子创建了5个XY坐标图。前四个图使用了NCL脚本生成的数据,第五个图读取了ASCII文件的数据。第一个图有一个曲线,其他图右多条曲线。每个图相对前一个图来讲都有一些改动的地方,例如添加标题、线标签,改变线条颜色和粗细,添加标记。在以后的例子中将有更加复杂的XY坐标图。请注意,“line”和“curve”在这个示例中互换使用,用来表示XY坐标图的曲线。分号“;”在NCL脚本中表示允许注释。所有的注释都必须以分号开头,任何在分号之后和下一个换行符前的东西都将忽略。注释可以在一行中单独出现,也可以出现在NCL命令之后。但是在同一行注释不能出现在命令之前,因为注释符之后所有的东西都被忽略。运行这个示例,必须下载以下文件:gsun01n.ncl,然后键入:nclgsun01n.nclExmaple2——contourplots这个示例展示如何从netCDF文件中读取数据,如何改变地图的颜色,如何创建和绘制等值线,如何打印变量,如何将数据写入到ASCII文件。这个例子读取netCDF文件,并且用3个不同的数据的绘制了5条等值线图,为每个等值线图获得不同的类型设置了resources。这个示例同样从netCDF向ASCII文件写入数据。想要了解netCDF更多,参见。运行这个示例,必须下载以下文件:gsun02n.ncl,然后键入:nclgsun02n.nclExmaple3——vectorplots这个例子展示了如何从netCDF文件中读取数据,如何从一个文件中重新得到坐标变量,如何改变彩塑图,如何创建并绘制矢量图。同样还会讨论数据中有缺失值的概念。这个例子从三个netCDF文件中读取数据并且创建了4个矢量图。Resources用来改变每个矢量图的部分。运行这个示例,必须下载以下文件:gsun03n.ncl,然后键入:nclgsun03n.nclExmaple4——steamlineplots这个示例展示如何获得GRIB文件的信息并从中读取数据,如何使用“if-endif”语句,如何使用步长值来选择数组的一部分,如何得到resources值,如何创建并绘制流线图,如何把数据写入netCDF文件,如何用“do”来进行循环。这个示例从GRIB文件读取数据并且创建了三个流线图,每个图都使用不同的数据。设置resources来改变每个流线图的部分。为了得到打开的GRIB文件更多信息,这个示例使用了NCL调查函数如isatt,getfilevarnames,getfilevaratts,和getfilevardims,来确定文件中有哪些变量和属性。这些函数在NCLReferenceManual中的“Built-inNCLfunctionsandprocedures”一节中有描述。这个示例还展示了如何把GRIB数据写入到netCDF中。运行这个示例,必须下载以下文件:gsun04n.ncl,然后键入:nclgsun04n.nclExmaple5——contourplotsovermaps这个示例从netCDF文件中读取数据,并且展示如何命名维度。如何获得现有的颜色图并且改变它的值,如何在各种地图投影上叠加等值线图,如何填充特定的等值线,如何掩蔽,如何在你任意想要的位置绘制文本字符串。这个示例从netCDF文件中读取数据并且在不同的地图投影上创建了4个等值线图。从等值线和地图两个方面改变了resources。运行这个示例,必须下载以下文件:gsun05n.ncl,然后键入:nclgsun05n.nclExmaple6——vectorplotsovermaps该示例从netCDF文件中读取数据,并且展示如何在各种地图投影上重复展示矢量图,如何细化矢量数据,如何增加图的大小。这个示例从一些netCDF文件中读取数据,并且在不同的地图投影上创建三种矢量图。为改变矢量和地图设置resources。运行这个示例,必须下载以下文件:gsun06n.ncl,然后键入:nclgsun06n.ncl。Exmaple7——twoXYplotsononeframe这个示例展示如何使用F