IDL等绘图命令对应关系一览表汇编Word格式.docx

上传人:b****4 文档编号:18391527 上传时间:2022-12-16 格式:DOCX 页数:11 大小:25.60KB
下载 相关 举报
IDL等绘图命令对应关系一览表汇编Word格式.docx_第1页
第1页 / 共11页
IDL等绘图命令对应关系一览表汇编Word格式.docx_第2页
第2页 / 共11页
IDL等绘图命令对应关系一览表汇编Word格式.docx_第3页
第3页 / 共11页
IDL等绘图命令对应关系一览表汇编Word格式.docx_第4页
第4页 / 共11页
IDL等绘图命令对应关系一览表汇编Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

IDL等绘图命令对应关系一览表汇编Word格式.docx

《IDL等绘图命令对应关系一览表汇编Word格式.docx》由会员分享,可在线阅读,更多相关《IDL等绘图命令对应关系一览表汇编Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

IDL等绘图命令对应关系一览表汇编Word格式.docx

while(tt<

=366)

sett'

tt

zz=1

while(zz<

=37)

setx1240'

sety1121'

setz'

zz

d'

zz=zz+1

endwhile

tt=tt+1

else

=365)

endif

i=i+1

name='

/disk3/users/lbq/ERA-Interim-daily/pressure/'

close1'

disablefwrite'

j=j+1

eg2)使用ncl将数据输出成二进制数据,grads可以使用(截取部分)

patho 

 

 

="

/disk3/users/Rao_Jian/Hadley/"

system("

rm"

+patho+"

ev_ts.grd"

ev_ts2.grd"

ev_ts.txt"

rm"

ev_ts2.txt"

dont=0,719

fbindirwrite(patho+"

ev_ts(:

nt));

写成二进制数据,供grads使用

enddo

ev_ts(time|:

evn|:

))

asciiwrite(patho+"

));

写成十进制数据,可以贴到EXCEL中使用

ev_ts)

print(ev_ts(0,:

此外ncl中还有其他的读写函数,如

fbinrecread,fbinrecwrite,fbinwrite,fbinread

ncl读取netcdf3/4、hdf4、grib-1/2也是通过文件操作的

eg3)ncl支持直接读取格式文件的读法

fi 

=addfile(pathi+"

HadISST_sst.nc"

"

r"

sst0 

=fi->

sst(960:

1679,:

:

) 

load50yeardataduringfrom1950to2009

注意:

这类文件的后缀名一般为.nc/.hdf/.grb/.hdfeos/.ccm

2.grads中的描述文件与ncl中的什么对应

描述文件(.ctl)是一个纯文本文件,我们有数据grads还是不能出图,需要一个描述文件来指定他的存储数据个数,维度(时间长度、层数和经纬度信息)。

ncl是没有这种文件的,那么ncl在绘图时是通过什么信息来获得维度信息的呢?

其实,在ncl里又一个概念叫做coordinate,其实就是维度信息。

在ctl中,是通过xdef、ydef、zdef、tdef来声明数据的经纬度信息的。

也就是说,在一个ctl文件中声明的所有数据,其相同维度的信息必须相同(维数可以不同)。

那么我们还是举个例子好了

eg4.1)ctl描述文件

dset 

/disk3/users/Rao_Jian/ERA-DATA/entropy/Var3D.grd

undef-999

titlemonthlyzonallymeanuwnd,vwnd,temperatureinTHETA-PVLATcoordinate 

optionsyrev

xdef 

linear0.0002.500

ydef 

200linear0.0000.75

zdef 

16 

levels270280290300315330350370400450500550600650700750 

tdef 

389linearjan19791mo

vars3

ulat216-99meanszonalmeanuwindintheta-pvcoordinate

vlat216-99meanszonalmeanvwindintheta-pvcoordinate

tlat216-99meanszonalmeantemperatureintheta-pvcoordinate

endvars

上面的例子中,声明了三个变量,每个变量都是16层,说明都是空间三维的(可以不是的,此时16改为0),黄色的信息是维度信息,也就是说这三个变量ulat2、vlat2、tlat2相同的经度、维度、层数、时间。

你要说了,我的数据哪那么巧都是一样的维度,要是不一样怎么办?

对不起,必须是相同维度的信息完全一样的数据才可以放到一个描述文件中,否则要分开在不同的文件中描述,这也就是为什么在一些使用者的批处理脚本中(.gs)中会打开多个文件的原因之一,因为变量的信息可能不同。

eg4.2)ncl中维度声明形式举例

下面再来看看ncl中是如何声明维度信息的?

dudP0!

0="

time"

1="

lat"

2="

lon"

3="

level"

dudP0&

time=u&

time

level=u&

levelist

lat=u&

latitude

lon=u&

longitude

copy_VarCoords(dudP0,dvdP0)

copy_VarCoords(dudP0,dPTdP0)

在上面的例子中,!

是用来给坐标维度命名的,&

是用来引用某一维度数值的,copy_VarCoords是ncl的贡献函数库中的子程序,将一个变量的坐标信息原封不动的传给另一个变量。

必须注意的是,绘制地图底图时,还要涉及到属性的概念,用@来引用或者声明。

所以在给变量声明经纬度之名时,还要声明经纬度之属性,保证ncl能找到地图坐标,保证等值线或矢量与地图坐标对应,不发生错位。

eg4.3)ncl中声明坐标经纬度属性

pvlvl&

lev 

=lvl 

isentropiclevels

lat 

=u&

lon 

lat@units 

degrees_north"

lon@units 

degrees_east"

lev@units 

="

K"

time@units="

monthssince1900-01-01"

pvlvl&

@是接在pvlvl&

lat后面的,也就是说,degrees_north属性是变量pvlvl的坐标lat的属性

3.grads中的批处理命令文件与ncl中的什么对应

这个不需要解释了吧,gs文件自然就相当与ncl脚本文件了,好好理解一下吧。

说的更具体一点,是相当于ncl中graphics部分,因为ncl不仅具有绘图功能,还具有强大的计算功能,尤其是巨大的函数库。

ncl的缺点是循环比较慢,优点就是有许多优化函数,不需要使用者自己编写子程序(如果你愿意,也可以自己编写,将脚本存在够得着的地方,用的时候load)。

4.grads中的图形类型设置与ncl的图形接口csm函数对应

说明

grads图形类型设置'

setgxoutgrahics-style

ncl图形类型设置gsn_csm_choice[_choise[_choice[……]]]

一般等值线图

setgxoutcontour

gsn_csm_contour(无地图底图)gsn_csm_map_ce,之前都要设置cnLinesOn=True

等值线+robinson投影

(cylindricalequidistantmap)

setmprojrobinson

gsn_csm_contour_map_ce

等值线+极射赤面投影

(PolarStereographicProjections)

setmprojnps/sps

gsn_csm_contour_map_polar(之前设置:

gsnPolar 

NH"

/gsnPolar 

SH"

填色等值线图

setgxoutshaded

gsn_csm_contour,之前设置

gsn_define_colormap(wks,colors),cnFillOn=True

填色等值线+等值线

setgxoutshaded 

d..

顺序不能反

同上,之前设置cnFillOn=True,cnLinesOn=True

仅仅标记网格点

setgxoutgrid

比较灵活,可以使用gsn_add_test做到,没有对应的csm接口,参照http:

//www.ncl.ucar.edu/Applications/Scripts/station_3.ncl

矢量图

setgxoutvector

gsn_vector

流线图

setgxoutstreamine

gsn_streamline

一维数据图

setgxoutbar/line/linefill

gsn_xy与各种属性联合使用达到目的,其中line是最简单的。

单线line图

setgxoutline

gsn_xy

直方图

setgxoutbar

gsn_xy,之前设置gsnScale=True(效果见图1),还可以使用gsn_histogram来统计一组数据的分布情况,分别落在什么区间,也就是说x轴是数值,y轴是发生频率或次数(有点概率密度的意思)(效果见图2)

两单线着色图

setgxoutlinefill(效果见图3)

gsn_xy,之前设置属性(效果见图4)

二维场方格子填充图

setgxoutfgrid

同等值线图画法,设置相应的属性

误差盒子图

setgxouterrbar

gsn_xy与相应属性联合使用达到目的

5.grads与ncl的函数对应关系

grads函数

ncl函数

平均函数

ave(var,t/lon/lat=?

t/lon/lat=?

inc,flag),求平均

avg,dim_avg,dim_avg_n,dim_avg_n_Wrap, 

dim_avg_Wrap

纬向平均

ave(var,x=x1,x=x2)

同上

时间平均

ave(var,t=t1,t=t2,dt)

同上,外加clmMonLLLT,clmMonLLT,clmMonTLL

clmMonTLLL

高度权重平均

vint(ps,exp,top)

dim_avg_wgt,dim_avg_wgt_n,dim_avg_wgt_n_Wrap

dim_avg_wgt_Wrap

区域面积平均

aave(u,x1=x,x=x2,y=y1,y=y2)

同上,注意一下参数的设定技巧,还可以直接使用:

wgt_areaave,wgt_areaave2,wgt_areaave_Wrap

垂直涡度

hcurl(u,v)

uv2vr_cfd,uv2vrF,uv2vrf,uv2vrF_Wrap

uv2vrG,uv2vrg,uv2vrG_Wrap

水平散度

hdivg(u,v)

uv2dv_cfd,uv2dvF,uv2dvf,uv2dvF_Wrap

uv2dvG,uv2dvg,uv2dvG_Wrap

取样稀疏化

skip(u,dx,dy)

没有函数,可以直接引用u(...,:

:

dx,:

dy)

差分函数

cdiff(u),为中央差分函数

center_finite_diff,center_finite_diff_n

九点滑动平均

smth9(u)

smath9,smath9_Wrap

三角函数

sin,cos,tan

sin,cos,tan,此外还有反三角函数atan,acos,asin不记得

Pi=3.141592653的人一般这样表示之,pi=atan(1.0)*4,

经常可以在ncl脚本中看得到

对数指数函数

exp,log,log10

exp,log

求和

sumg

sum,dim_sum,dim_sum_n,dim_sum_n_Wrap

dim_sum__Wrap

权重求和

sum

与权重平均一致,avg对应sum就好了

IDL绘图通用参数(和Fortran语言类似,变量名关键字不区分大小写,字符串内部区分大小写)。

position 

定位图形位置大小,格式position=[x0,y0,x1,y1],(x0,y0)是左下角坐标,(x1,y1)是右上角坐标。

0~1之间。

title 

图名,格式title='

Graphicname'

(单引号和双引号通用,又和Fortran一样,ncl绝对不可以)

subtitle 

副标题名,格式subtitle='

Graphicname2'

charsize 

字符大小(默认值1.0),格式charsize=2.0(放大了喔)

charthick 

字符粗细或厚度,格式charthick=2.0(默认值1.0,此处加粗了喔)

font 

字符的字体索引号(-1,0或者1)希腊字母可以通过latex语法输入,和matlab一样

color 

颜色索引号

linestyle 

线型

ticklen 

刻度尺度(默认值0.02)

thick 

线宽(默认值1.0)

psym 

符号代码(见下文散点图介绍) 

symsize 

符号大小(默认值1.0)

/[xyz]log 

坐标是否取对数,默认值是线型

/noeraze 

与matlab的holdon有的一拼,和grads的clear作用相反

/nodata 

不做图,数据从图中隐藏,只显示轴

/noclip 

不裁剪

一般轴的性质设置

[xyz]range 

轴范围(默认值:

自动)

[xyz]title 

标题字符(默认值:

无)

[xyz]charsize 

字符大小(默认值:

1.0)

[xyz]style 

轴类型(默认值:

0;

可取数值0~31)

这个要细说一下1:

由xrange和yrange指定范围

2:

在轴范围的每一边留有空余

4:

不显示整个坐标轴

8:

只在左边或者下边显示坐标轴

16:

不将y轴的起始值强行规定为0

[xyz]margin 

轴边缘空白,单位是字符间隔(默认值:

xmargin=[10,3],ymargin=[4,2])

[xyz]minor 

最小刻度间的数目

[xyz]thicklen 

刻度长度(默认值:

0.02)

[xyz]gridstyle 

标注方格的线型(0~5,0为默认值)

[xyz]tickformat 

刻度格式

[xyz]ticks 

主要刻度间的数目

[xyz]tickv 

要标注的刻度数组

[xyz]tickname 

刻度标注数组

/ynozero 

y刻度不从0开始 

1.1-D单线图

1)IDL单线图:

PLOT,[X,] 

[,/ISOTROPIC][,MAX_VALUE=value][,MIN_VALUE=value][,NSUM=value][,/POLAR][,THICK=value][,/XLOG][,/YLOG][,/YNOZERO]

[,BACKGROUND=color_index][,CHARSIZE=value][,CHARTHICK=integer][,CLIP=[X0, 

Y0, 

X1, 

Y1]][,COLOR=value][,/DATA|,/DEVICE|,/NORMAL][,FONT=integer][,LINESTYLE={0|1|2|3|4|5}][,/NOCLIP][,/NODATA][,/NOERASE][,POSITION=[X0, 

Y1]][,PSYM=integer{0to10}][,SUBTITLE=string][,SYMSIZE=value][,/T3D][,THICK=value][,TICKLEN=value][,TITLE=string] 

[,{X|Y|Z}CHARSIZE=value] 

[,{X|Y|Z}GRIDSTYLE=integer{0to5}] 

[,{X|Y|Z}MARGIN=[left, 

right]] 

[,{X|Y|Z}MINOR=integer] 

[,{X|Y|Z}RANGE=[min, 

max]] 

[,{X|Y|Z}STYLE=value] 

[,{X|Y|Z}THICK=value] 

[,{X|Y|Z}TICK_GET=variable] 

[,{X|Y|Z}TICKFORMAT=string] 

[,{X|Y|Z}TICKINTERVAL= 

value] 

[,{X|Y|Z}TICKLAYOUT=scalar]

[,{X|Y|Z}TICKLEN=value] 

[,{X|Y|Z}TICKNAME=string_array] 

[,{X|Y|Z}TICKS=integer] 

[,{X|Y|Z}TICKUNITS=string]

[,{X|Y|Z}TICKV=array] 

[,{X|Y|Z}TITLE=string] 

[,ZVALUE=value{0to1}]

其中[]为可选项,称作关键字,这是IDL过程中的一个设置(IDL程序包括过程和函数,过程pro相当于FORTRAN的子程序,自定义函数就不必多说了吧。

以上关键字都具有单词本身的实际意义。

比如,选择了plot,x,y横坐标自然由x数组决定,否则的话,横坐标从0开始,以size(y)-1结束。

再比如,选择了/ISOTROPIC的话,x和y方向的比例就会一致,这在画绘制剖面图时是很危险的,因为垂直尺度一般比水平尺度小很多,所以此项要慎重选择。

再例如,若希望y轴以log的数值标注,此时打开开关/ylog。

还有就是IDL和matlab在绘制极坐标单线时很方便的,对于IDL而言,选择激活/POLAR,而matlab有单独的函数处理极坐标单线。

plot的很多参数都是上面介绍的通用参数。

2)NCL单线图

gsn_xy 

gsn_y

3)grads单线图

4)MATLAB单线图

plot(Y)

plot(X1,Y1,...,Xn,Yn)

plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)

plot(...,'

PropertyName'

PropertyValue,...)

2.重叠图

1)IDL重叠图

OPLOT,[X,] 

[,MAX_VALUE=value][,MIN_VALUE=value][,NSUM=value][,/POLAR][,THICK=value[,CLIP=[X0, 

Y0,X1, 

Y1]][,COLOR=value][,LINESTYLE={0|1|2|3|4|5}][,/NOCLIP][,PSYM=integer{0to10}][,SYMSIZE=val

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1