您好,欢迎访问三七文档
一、概述一般,NCL脚本包含以下的内容:1、使用load命令加载包含高水平图形接口的库函数,这一步在begin之前进行。2、从数据文件中读数据。进行数据处理(可选)。3、打开一个工作站(workstation)。选择一个颜色表.4、创建一个resouce变量,各种画图的选项将作为它的属性。5、调用合适的图形接口作图。load$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.nclload$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.nclbeginin=addfile(“myfile.nc,“r“)t=in-Twks=gsn_open_wks(“ps,ce)gsn_define_colormap(wks,BlAqGrYeOrRe)res=Trueres@cnFillOn=Trueres@cnLinesOn=Falseres@cnLevelSpacingF=0.5res@gsnSpreadColors=Trueres@lbAutoLabelStride=Trueplot=gsn_csm_contour_map_ce(wks,t,res)end二、高水平图形接口2.1gsn图形接口一般的gsn接口可以创建一般的x-y坐标,等高线,流线和矢量图。2.2gsn_csm接口–可以自动的完成以下功能:自动添加labelbars,在一般的接口中需要明确的指明。自动的将变来的long_name和units属性作为图形的标签。long_name在左上角,units在右上角。还会自动的添加一些关于压力值等的其它标签。2.3加载接口在begin之前用load命令加载。gsn和gsn_csm图形接口包含在以下两个文件里。load$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.nclload$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl三、GettingStarted3.2.hluresfile–.hluresfile文件要位于主目录下。–在.hluresfile文件里你可以设置你的显示属性:例如:前景色、背景色:*wkForegroundColor:(/0.,0.,0./)*wkBackgroundColor:(/1.,1.,1./)–Colormap*wkColorMap:rainbow+gray–字体:–*Font:helvetica四、工作站(workstation)在画图之前必须要先创建一个工作站。图形命令将作用在工作站上。工作站需要赋予一个名字,这个名字将作为输出文件的文件名。你可以同时打开多个工作站。一个工作站只可以指定一个colormap。六种工作站:–1、ncgm。2、ps(postscript)。3、eps(密封的postscript)。4、epsi(带位图预览的密封的postscript)。5、pdf。6、X11窗口。–例:wks=gsn_open_wks(“pdf,34_x_45)wks_2=gsn_open_wks(“ps,myfile)五、通过Resource画图通过Resources我们可以修改默认的NCL图形。每个resource属性的前两个小写字母代表了resource的类别,后面的单词首字母大写。5.1Resource类别am:注释管理cn:等高线ca:坐标数组gs:图像风格lb:labelbarlg:说明mp:maps(地图)pm:plotmanager(绘图管理)pr:primitive(原型)sf:scalarfield(标量场)ti:title(标题)tm:tickmarks(刻度标记)tx:text(文本)tr:transform(变换)vf:vectorfield(矢量场)field()vc:vectors(向量)vp:viewport(显示窗口)wk:workstation(工作站)ws:workspace(工作空间)xy:xyplot(xy坐标图形)它们的详细属性请参见:给resources赋值首先要将resources变量赋值为True。属性通过@符号来指定。下例中的res是用户自定义的。例:res=Trueres@tiMainString=“mytitleres@cnFillOn=Trueresource变量通常作为调用的图形接口的最后一个参数:例:plot=gsn_csm_contour(wks,data,res)plot2=gsn_xy(wks,data,res)5.3一些常用的resources附录A包含了常用的resource的完整的描述5.4画图和gsnDrawresource–默认情况下,当你调用高水平图形接口时,图形会被自动创建,除非你设定:gsnDraw=False.5.5推进frame和gsnFrameresource–默认情况下,当你调用高水平图形接口,图形被创建后,图形接口会自动推进frame(如果一frame(个frame是书的一页的话,那么workstation就是那本书,推进frame就相当于翻过书的一页。一个workstation可以有多个frame)。除非你设定:gsnFrame=False5.6特殊的字符串resources,gsnLeftString,gsnCenterString,gsnRightString在gsn_csm图形接口中,图形左上角会自动设置为数据的long_name属性,右上角会自动设置为数据的units属性。这种行为可以通过gsnLeftString(控制左上角)、gsnCenterString(控制中间位置)和gsnRightString(控制右上角)来改变。例:res=Trueres@gsnRightString=mystringres@gsnCenterString=center六、颜色设置6.1颜色填充通过设置cnFillOn=True你可以为当前的等高线设置填充颜色。另外“cnFillMode=“RasterFill“表示使用光栅模式。你还需要为你的workstation指定一个colormap。关于colormap的跟多信息请参见:默认的colormapNCL的默认的colormap包含一系列的不同的颜色。有三种方法改变colormap–1、选择一种内置的colormap(6.3)。–2、指定一个代表RGB数值的nX3维的数组(6.4)。–3、指定一个包含颜色名称的数组。6.3内置的colormaps有许多预定义的colormaps,可以参考以下链接:–你可以这样为你的workstation指定一个colormap:–gsn_define_colormap(wks,gui_default)6.4使用RGB数组你可以通过RGB数组自定义一个colormap。例:colors=(/(/255,255,255/),\(/0,0,0/),\(/255,255,255/),\(/244,255,244/),\(/217,255,217/),\(/163,255,163/),\(/106,255,106/),(/43,255,106/),\(/255,127,0/)/)gsn_define_colormap(wks,colors)第一和第二个颜色值为黑和白,分别代表前景色和背景色。6.5通过颜色的名称NCL有一系列的命名好的颜色值,可以参考一下链接:例:colors=(/“white,“black,“white,“RoyalBlue,\LightSkyBlue,PowderBlue,LightGreen,PaleGreen,\wheat,brown,pink/)gsn_define_colormap(wks,colors)6.6gsnSpreadColors默认的情况下,NCL会根据要填充的等高线或矢量图的个数n选择colormap中的前n个颜色。除非你设置gsnSpreadColors=True,这时NCL将在colormap中均匀的选择n个颜色值,比如:有10个等高线水平和200个颜色值,这时NCL会每隔20选择一个颜色值。你也可以通过设置gsnSpreadColorStart和gsnSpreadColorEnd控制选择颜色的开始下标和结束下标。6.7CMYK许多科学期刊要求论文要提供CMYK格式的图片。CMYK也是商业印刷优先考虑的颜色模式。下面的代码将创建一个CMYK格式的图形:type=pstype@wkColorModel=cmyk“wks=gsn_open_wks(type,color)gsn_define_colormap(wks,BlWhRe)–postscript文件在输出时将转换为CMYK格式。七、向量7.1向量的类型在NCL中有四种类型的向量图,可以通过vcGlyphStyle=“type来设置:––––“LineArrow:多条带箭头的线段,这时默认的。“FillArrow:填充的带箭头的多边形。“WindBard:使用在天气图上看到的标准的风倒钩字形。“CurlyVector:acurvedpolylinetangenttotheinstantaneousflowintheneighborhoodofthegridpoint.7.2对向量图的设置res@vcRefMagnitudeF=10.0可以设置向量的弯曲程度。vcRefLengthF=0.045可以设置向量的长度res@vcMinDistanceF=0.017可以设置向量的疏密程度。7.3向量被标量场(等高线)上色,或在标量场上上色有四种接口可以在同一副图上画出等高线和向量。––––gsn_csm_vector_scalar_map_cegsn_csm_vector_scalar_map_polargsn_csm_vector_scalar_mapgsn_csm_pres_hgt_vector这些接口默认的行为是根据标量场的量级为向量上色。若要改变这些默认行为,可以设置resource变量的属性gsnScalarContour为True。可以创建独立的等高线和向量图,然后使用overlay子程序将它们结合在一起。overlay有两个graphical类型的参数,overlay会将第二个图形结合到第一个图形上。例:;创建向量图res=Trueres@vcRefMagnitudeF=30.0res@vcRefLengthF=0.045res@vcMinDistanceF=.019res@vcGlyphStyle=CurlyVector“res@gsnDraw=Falseres@gsnFrame=Falseres@gsnLeftString=res@gsnRightString=plot=gsn_csm_vector(wks,u,v,res);创建等高线图resCN=TrueresCN@cnFillOn=TrueresCN@cnLinesOn=FalseresCN@gsnSpreadColors=TrueresCN@gsnDraw=Falsebase=gsn_csm_contour(wks,data,resCN);overlay;用overlay将它们结合起来overlay(base,plot)draw(base)frame(wks)成功创建一个overlay的关键是两个图形的坐标变量的数据是相同的。
本文标题:NCL符号说明
链接地址:https://www.777doc.com/doc-1506963 .html