可视化的IDL工具

上传人:94****0 文档编号:242009497 上传时间:2024-08-09 格式:PPT 页数:65 大小:4.34MB
返回 下载 相关 举报
可视化的IDL工具_第1页
第1页 / 共65页
可视化的IDL工具_第2页
第2页 / 共65页
可视化的IDL工具_第3页
第3页 / 共65页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可视化的,IDL,工具,Interactive Data Language,中科院计算机网络信息中心 超级计算中心,谢茂金,Email:xiemaojin,2010.9,可视化的IDL工具,内容提要,IDL,概况,IDL,是什么?,IDL,的特点,IDL,能干什么?,IDL,支持的文件格式,IDL,图像处理简介,IDL,程序导读与语法解析,变量、数组、过程、函数、输入输出、循环、分支、判断等语法基础。,可视化的,IDL,IDL,图形系统,IDL,坐标系统,数据可视化:绘制线,Plot,,等值线,面,体绘制,智能工具,iTools,并行,IDL,简介,进一步学习,IDL,内容提要IDL概况可视化的IDL,IDL是什么,IDL(Interactive Data Language,,交互式数据语言,),是美国,ittvis,公司的旗舰产品,它既是对数据进行可视化表现、分析及应用开发的软件,又是面向矩阵、语法简单的第四代可视化计算机语言。是进行数据分析、可视化表达与跨平台应用开发的理想工具。,IDL,用户涵盖,NASA,、,ESA,、,NOAA,、,Siemens,、,GE Medical,、,Army Corps of Engineers,、,MacDonald Dettwiler,等。,NASA,选用,IDL,进行飞越火星航空器的研究,,JPL,科学家利用,IDL,对“勇气号”和“机遇号”的数据进行数据分析和处理。,IDL是什么IDL(Interactive Data Lan,IDL的特点,IDL,VC,菜单的定制、消息传递,IDL,VB,可视化界面的设计、语言通俗易懂、编程入门容易,IDL,JAVA,具有良好的跨平台能力,方便移植,面向对象特性,IDL,FORTRAN+C,语言风格绝大部分继承自,Fortran,,少量来源于,C,。,面向矩阵,执行效率高,代码量比,C,和,Fortran,少得多,简洁而不失灵活性。,IDL,MATLAB,提供了大量封装和参数化了的数学函数及各种信号处理的方法,使用方法也非常类似。,IDL,OPENGL,提供了丰富的二维、三维图形图像操作类,能高效快速地对数据进行可视化。,IDL的特点IDLVC菜单的定制、消息传递,医学影像,图像处理,与分析,信号处理,地球科学,数据处理,与分析,天文,IDL,能,做什么?,其他,医学影像图像处理信号处理地球科学数据处理天文IDL能其他,IDL支持的文件格式,文本格式:,Readf,Read_ascii,Printf,二进制格式:,Readu,Read_binary,Writeu,科学数据格式:,CDF,:,begin with the prefix CDF_,HDF4,:,begin with the prefix HDF_,HDF5,:,begin with the prefix H5_ or H5*_,HDF-EOS,:,begin with the prefix EOS_,NetCDF,:,begin with the prefix NCDF_.,IDL支持的文件格式文本格式:Readf,Read_asc,图像处理,IDL,提供了具有强大的图像处理能力。,支持多种文件格式,只要用,Read(Write)_Image,两个函数,即可读写,IDL,支持的任何图像文件。也可以用,Dialog_Read(Write)_Image,交互读取。,TV,函数即可显示图像。,提供了方便的傅里叶变化,小波变换,,Hough,变换,,Radon,变换等,各种图像增强滤波操作,形态学操作,图像分割、识别等丰富的图像处理和分析函数。,图像也是数组,所以各种可以处理数组的函数也可以用于图像数据的处理。,SMOOTH(image,1,1,21),SMOOTH(image,1,21,1),SMOOTH(image,1,5,5),原图,图像处理IDL提供了具有强大的图像处理能力。SMOOTH(i,IDL支持的图像格式,IDL,支持的图像格式,格式,描述,BMP,Windows Bitmap format,DICOM,Digital Imaging and Communications in Medicine,GeoTIFF,TIFF file with tags containing geographic data,GIF,Graphics Interchange Format,Interfile,Interfile version 3.3 format,JPEG,Joint Photographic Experts Group format,JPEG 2000,JPEG 2000 format,Motion JPEG2000,Motion JPEG2000 format,IDL支持的图像格式IDL支持的图像格式格式 描述BMP W,IDL支持的图像格式,IDL,支持的图像格式,(,续表,),Format,Description,MPEG,Moving Picture Experts Group format,MrSID,Multi-resolution Seamless Image Database format,NRIF,NCAR Raster Interchange Format,PICT,Macintosh version 2 PICT files(bitmap only),PNG,Portable Network Graphics format,PPM,PPM/PGM format,SRF,Sun Raster File format,TIFF,8-bit or 24-bit Tagged Image File format,X11 Bitmap,X11 Bitmap format used for reading bitmaps for IDL widget button labels,XWD,X Windows Dump format,IDL支持的图像格式IDL支持的图像格式(续表)Format,图像处理例子,file=,FILEPATH,(rose.jpg,SUBDIRECTORY=examples,data),image=,READ_IMAGE,(file),imageSize=,SIZE,(image,/DIMENSIONS),DEVICE,DECOMPOSED=,1,;Decomposed=0|1,伪彩色,/,真彩彩色,WINDOW,0,XSIZE=imageSize,1,YSIZE=imageSize,2,$TITLE=Original Rose Image,TV,image,TRUE=,1,;True=1|2|3,对应,(3,m,n),(m,3,n),(m,n,3),WINDOW,1,XSIZE=,3,*imageSize,1,YSIZE=imageSize,2,$TITLE=Vertically Smoothed(left),Horizontally +$Smoothed(middle),and Both(right),smoothed=,SMOOTH,(image,1,1,21,),TV,smoothed,0,TRUE=,1,smoothed=,SMOOTH,(image,1,21,1,),TV,smoothed,1,TRUE=,1,smoothed=,SMOOTH,(image,1,5,5,),TV,smoothed,2,TRUE=,1,;Display the results.,SMOOTH(image,1,1,21),SMOOTH(image,1,21,1),SMOOTH(image,1,5,5),原图,RGBRGBRGB.RGB,RRRRRRRRRR.RRR,GGGGGGGGG.GGG,BBBBBBBBBB.BBB,RRRRRRRRRR.RRR,GGGGGGGGG.GGG,BBBBBBBBBB.BBB,函数、过程、参数、关键字、返回值,;,函数和过程统称为例程,routines,TVScl,图像处理例子file=FILEPATH(rose.jp,IDL程序导读与语法解析,在,shell,下,:,scxiemjv3904$idlde,即可打开,IDE,在此输入命令,显示用户变量和系统变量,控制台显示输出结果,编译和,执行,IDL程序导读与语法解析在shell下:在此输入命令显示用户,Indgen(3,4),生成,3,列,4,行的二维数组,每个元素的值依次递增,注意是按列存储。,直接敲入,idl,,运行命令行形式的,IDL,分号后面的为注释,Indgen(3,4)生成3列4行的二维数组,每个元素的值依,程序导读与语法解析,IDL,程序的几种运行方式,命令行程序:,命令行下:,.,RUN,-,代码,END,。,.,GO,运行,批处理文件:,在文本文件中输入代码,保存为,.,pro,文件。,FileName,运行,日志文件:,命令行下,:,JOURNAL,代码,JOURNAL,。,FileName,运行。,包含文件:,包含一系列,IDL,命令的文本文件,默认扩展名为,.INC,。在其他文件中用,FileName.inc,的方式调用。,主程序文件:,命令序列,以,END,结束,保存为,.,pro,,,.,GO,,,.,RUN,或,.,RNEW,命令运行,不能在命令行直接输入文件名运行。,过程、函数、过程文件的编写和执行,程序导读与语法解析IDL程序的几种运行方式,IDL,程序设计基础,大小写不敏感,弱类型,赋值和类型提升,矩阵:列优先,常用功能符号,注释,;,续行,$,断句,&,IDL程序设计基础大小写不敏感,一个简单程序,该程序读入一小一大两个整形数给变量,a,和,b,,将,a,和,b,之间的奇数存储到一个数组中,并统计数组元素的总和,一个简单程序该程序读入一小一大两个整形数给变量a和b,将a和,可视化的IDL工具,数组函数,:,求和,过程:,以保留字,Pro,开头,,End,结尾,其基本格式如下:,Pro,过程名,,参数,1,,,,参数,n,,,关键字,1,,,,关键字,n,命令序列,.,End,3B 128L 16384LL 3.14159D 7U 4UL 100ULL,分支、循环,BytArr IntArr LonArr FltArr DblArr ComplexArr,数组函数:求和过程:以保留字Pro开头,End结尾,其基本格,过程文件,1,)过程文件用来存放多个,IDL,过程和函数,其扩展名为,.pro,3,)过程文件编译(,CTRL+F8,)后,可以按照过程和函数的调用方法任意调用过程文件中的过程和函数。,2,)主文件名可以与某个过程名相同,也可以不同,若相同,则该过程必须放在过程文件的最后,过程文件1)过程文件用来存放多个IDL过程和函数,其扩展名为,过程文件的编译及过程调用,过程文件的编译,(CTRL+F8),和调用,过程文件的编译及过程调用过程文件的编译(CTRL+F8)和调,基本数据类型,数据类型,【,十进制后缀,】,(占用字节),Byte【nB】(1,字节),4B,12B;,Int【n,或,nS】,及 无符号整形,【nU,或,nUS】,(,2,字节),-6,8S;,Long Int【nL】,及无符号长整型,nUL,(,4,字节)。,-128L,,,4UL,64,位长整型,nLL,及,64,位无符号长整型,nULL,。(,8,字节),94LL,12ULL,。,Float【n.,或,.nF,或,n.n,或,nE,或,nEsx】(4,字节),3.14,0.,3.14E12,Double【n.,或,nd,或,n.n,或,nE,或,nDsx】(8,字节),3.14D,3.14D,Complex【,无,】,(单精度,8,字节,双精度,16,字节),complex(1.7,,,1.44),,,complex(1.44D,4.7D),String【,无,】hello IDL “Im a string!”,基本数据类型数据类型【十进制后缀】(占用字节),数据类型代码表,代码名称数据类型,0Underfined Undefined,1Byte Byte,2IntInteger,3LongLongword integer,4FloatFloating point,5DoubleDouble_precision floating,6ComplexComplex floating,7Stringstring,8StructStructure,9DComplexDouble_precision complex,10PointerPointer,11ObjRefObject reference,12UIntUnsigned integer,13ULongUnsigned Longword integer,14Long64Longword 64-bit integer,15ULong64Unsigned 64-bit integer,数据类型代码表代码名称数据类型,常量,字符型常量:又称为字符串,用“”或界定,“IDL7.1”,“12-47”,“Im OK”,2010/09/13,数值型常量:,1.414,,,3.14159265D,0L,,,COMPLEX(1.4,2.03),逻辑型常量:真和假,判断为真的情况如下:,字节型、整形和长整型的奇数;如,43B,5,1L,为真。,44B,0,4L,等为假,非零的浮点型、双精度、和复数类型,;,如,5.4f,,,complex(4.1,0),非空的字符串。如,abc,,而空字符串,”,为假,常量字符型常量:又称为字符串,用“”或界定“IDL7.,系统变量,系统变量:以感叹号!开头。如,!PI(),内部系统变量:由系统自动提供、自动生成和维护的一组特殊变量。,自定义系统变量:用户根据需要自定义,用于描述系统运行中的状态或用于某种特殊用途。,DEFSYSV,var1,expression,Read_Only,DEFSYSV,var1,EXISTS=var2,系统变量系统变量:以感叹号!开头。如!PI(),系统变量,!PI 3.1415927,!PATH D:Program File.,可用,AddPath,命令增加搜索路径,!PROMPT IDL,!DTOR 0.017453292,带锁,表示只读不写,系统变量!PI 3.1415927!PATH D:,内存变量,临时存储于内,存中的变量,例:,IDL a=4.0D,IDL b=2.4L,b=2.4L,%Syntax error.,IDL c=1.4,IDL p=,ptr_new,(c),内存变量临时存储于内,查看变量,print,exp1,exp2,expn,FORMAT,=format,a=3.0D&b=4L,print,a,a+b,a/2,FORMAT,=(I4,I4,I4),help,exp1,exp2,expn,NAMES,=“,通配符”,OUTPUT=var,/SYSTEM_VARIABLES,/STRUCTURES,help,a,output=myVar ;,把变量,a,的信息存入,myVar,中,help,NAME,=a*;,显示所有以,a,开头的变量信息,help,!D,/STRUCTURES ;,显示系统变量,!D,的结构信息,查看变量print,exp1,exp2,expn,查看变量,查看变量,变量的存储、释放与恢复,保存,:,将有价值的内存变量,和编译程序及函数,保存到文件中,以备下次继续使用。,SAVE,var1,varn,/ALL,/COMM,/VARIBLES,COMPRESS,FILENAME=,文件名,/ROUTINES,/SYSTEM_VARIBLES,释放,:,关闭所有文件,释放所有用户定义的变量、指针、对象等,初始化,IDL,环境,.RESET_SESSION,.FULL_RESET_SESSION ;+,卸载所有动态库,恢复:,将之前保存在文件中的内存变量,和编译程序及函数,恢复到内存中继续使用。,RESTORE,”,文件名”,|,FILENAME=“,文件名”,【,注,】,若不写文件名的话,,save,时将保存到,idlsave.dat,中,,restore,时将从,idlsave.dat,中恢复,变量的存储、释放与恢复保存:将有价值的内存变量和编译程序及,数组,按列存储,允许使用,18,维数组,数组创建,1,)直接创建(能创建,13,维)数组名,=,表达式表,myArray=21,10,6,6,4,9,myArray=21,10,6,6,4,9 ;2,行,3,列,myArray=,1,2,3,4,5,6,7,8,9,10,11,12,;3,列,2,行,2,层,下标顺序为,列,行,层,myArray0,0,0=1 myArray1,0,0=2 myArray2,0,0=3,myArray0,1,0=4 myArray1,1,0=5 myArray2,1,0=6,myArray0,0,1=7 myArray1,0,1=8 myArray2,0,1=9,myArray0,1,1=10 myArray1,1,1=11 myArray2,1,1=12,数组按列存储,允许使用18维数组,数组,数组创建,2,)用函数创建,(18,维,),数组初值为,0,的函数,myArray=fltArr(d1,d8,/NOZERO),myArray=fltArr(3,4);,创建一个,3,列,4,行的浮点数组,/NOZERO,创建数组的初值为不确定值,【,注:,】,像,fltArr,这样的函数还有,BytArr(),IntArr(),uIntArr(),LonArr(),uLonArr(),Lon64Arr(),uLon64Arr(),DblArr(),ComplexArr(),DComplexArr(),StrArr(),用于创建各种类型的数组,数组数组创建,数组,数组创建,3,)用函数创建,(18,维,),数组初值为索引号的函数,IndGen(d1,d8,/,*,|TYPE=value);*,代表某个数据类型,可以是,Byte,complex,dcomplex,double,float,L64,Long,String,Uint,UL64,Ulong.,这种方法通过关键字来确定数组类型,,value,取,0,15,表示,16,种类型,像,F,IndGen,的方法还有,B,IndGen,,,U,IndGen,L,IndGen,UL,IndGen,L64,IndGen,D,IndGen,C,IndGen,DC,IndGen,S,IndGen,4,),Replicate(exp,d1,d8),用来创建一个所有数组值均是表达式的值的一维或多维数组,数组数组创建,数组,赋值和引用,数组赋值和引用,数组,赋值和引用,小心:二维下标数组的方式可能会让你感到失望!二维,下标,数组,会,被,IDL,拆解成一维下标,数组,?,用二维的下标数组可以吗,数组赋值和引用小心:二维下标数组的方式可能会让你感到失望!二,数组操作,常用的函数,求和,total(myArray*:10,10*4),求最大,/,最小值,Max(myArray,MIN=myMin),元素个数,N_Elements(myArray),数组尺寸,Size;,维数、列数、行数、类型、元素个数,Mean,平均值、,Variance,方差、,StdDev,标准偏差,Monent,计算数组的平均值、方差、倾斜度、峰值、平均绝对偏差、标准偏差,Where,返回满足指定条件的数组元素下标所组成的一维数组,Reform,在不改变数组元素的前提下重新生成新的维数的数组,数组操作常用的函数,常用运算符,数值运算:,(),圆括号,+,加,+,自加,减,-,自减,MOD,模 *乘,/,除,乘方,数组或下标,求最大,#,矩阵列乘,#,矩阵行乘,关系运算符:,EQ,等于,LT,小于,GT,大于,NE,不等于,LE,小于等于,GE,大于等于,逻辑运算:,逻辑非,&,逻辑与,|,逻辑或,NOT,按位非,AND,按位与,OR,按位或,XOR,按位异或,赋运算:,=#=*=+=-=/=AND=EQ=GE=GT=LE=LT=MOD=NE=OR=XOR=,常用运算符数值运算:()圆括号 +加 +自加,常用控制语句,Begin End,If Then Else,For Do,While Do,Repeat Until,Case X of else endcase,Expr?Expr1:expr2(条件判断语句),常用控制语句Begin End,可视化的IDL,IDL,图形系统,直接图形系统和对象图形系统,坐标系统,窗口系统,数据可视化,可视化的IDLIDL图形系统,IDL,的图形系统,之直接图形法和对象图形法,直接图形法:创建2,D,图形时常用,如:,plot,mapping,contours,。简单、快速,但需反复重画,依赖于当前图形设备;,对象图形法:加速3,D,系统显示,灵活,交互性强,充分控制对象,对象驻留内存,不需反复重画。,对象管理:生成,Obj_New,,销毁,Obj_Destroy,,有效性查询,Obj_Valid,对象属性:获取,GetProperty,,设置,SetProperty,IDL的图形系统 之直接图形法和对象图形法直接图形法:创建,对象图形系统的类和对象,显示:*,Window (*,代表前缀,IDLgr),容器:,*Scene,*View,*ViewGroup,。,模型:,*Model,,是容器对象的子对象,起承上启下作用,图元:*,Image,*Surface,*Axis,,*,Countoure,,*,Polyline,*Ploygon,*Light,*Volume,属性:*,Clipboard,,,*Font,等无法直接显示的属性,利用容器和模型对象的,add,方法构造右图所示的结构,利用*,Window,对象的,draw,方法绘制容器对象的内容。,Graphics,Atom,View,Scene,Graphics,Atom,Model,Model,View,对象图形系统,组成结构和调用,对象图形系统的类和对象显示:*Window (*代表前缀I,图形系统,之坐标系统,IDL,提供了三种独立的坐标系统:,数据坐标系统:通常与数据范围相同,可以是线性、对数或半对数的,系统默认的坐标系统,设备坐标系统:选定设备的实际坐标系统,归一化坐标系统:将数据坐标系统或设备坐标系统中行列数据范围归一化到,0,1,范围。,坐标系统之间的互相转换,数据坐标系统、设备坐标系统、归一化坐标系统间:,CONVERT_Coord,(,x,y,Z,/Data|,/Device,/Normal,/Double,/To_Data|,/To_Device,|/To_Normal,),笛卡尔坐标、极坐标、柱面坐标和球坐标系统间:,CV_Coord(,/Degrees,Double,From_Cylin=cyl_coords|,From_Polar=pol_coords|,From_Rect=rect_coords|,From_Sphere=sph_coords,/To_Cylin|,/To_Polar|,/To_Rect,/To_Sphere,图形系统之坐标系统IDL提供了三种独立的坐标系统:,窗口系统,建立:,myWin=OBJ_NEW(IDLgrWindow,关键字,=,属性,),绘制:,*,Draw,IDLgrView|IDLgrViewGroup|IDLgrScene,对象,(*,代表,myWin-IDLgrWindow:),清除:,*Erase,color=index|R,G,B,显示,/,隐藏:,*Show,0|1,最小化,/,还原:,*,Iconify,1|0,删除:,*,Clean,,,OBJ_Destroy,窗口对象的下一级对象是,IDLgrView,,可以设置,IDLgrView,对象的属性来修改,view,的大小和位置、投影方式、裁剪平面和裁剪方式、进行几何变换,窗口系统建立:myWin=OBJ_NEW(IDLgrW,数据可视化,绘制线,Plot,,多线,oPlot,无坐标轴多线,Plots,绘制等值轮廓线,Countour,绘制网格面,Surface,,阴影曲面,Shade_Surf,绘制投影曲线,Plot_3DBox,体绘制,IDLgrVolume,,,xVolume,绘制坐标轴,Axis,绘制文本,XYOUTS,绘制条形图,Bar_Plot,交互文本标注,Annotate,交互控制,trackball,数据可视化绘制线Plot,多线oPlot,无坐标轴多线Pl,线的绘制,绘制线,Plot,Plot,XY,关键字,X|Y:,绘制线的,X|Y,轴坐标组成的数组。在绘图时,X,和,Y,被转换成,Double,数组,IDL x=Findgen(101)*(0.01*2.0*!PI),IDL y=Sin(x),Plot,x,y,Plot,y,Plot,x,y,Plot,y,线的绘制绘制线PlotPlot,x,yPlot,y,线的绘制,Plot有几十个关键字用于控制绘制的属性,包括线的虚实粗细,图形符号,颜色,位置,裁剪;标题文字及相应字体;坐标轴及其刻度的粗细长短宽窄朝向;所用的坐标系统及其缩放等每一个细节。,线的绘制Plot有几十个关键字用于控制绘制的属性,包括线的虚,线的绘制,Plot,部分关键字和使用方法,/ISOTROPIC,:强制把,X,轴和,Y,轴转换成等比例,/Polar,:绘制极坐标下的线。这时格式为,Plot,r,theta,/Polar,/THICK=value,:设定绘制线的粗细,默认为,1,/XLog,/YLog,:用于创建对数,X|Y,数轴,Max|Min_Value=value,:绘制数据的最大,|,最小值,nSum=value,:每个,value,个值绘制一个点,Background|Color=value,:设定背景,|,前景色,PSYM=integer-1010,:按指定图形符号绘制数据点,LineStyle=integer05,:,0,实线,,1,点,,2,虚线,,3,点虚线,,4,点点虚线,,5,长虚线,线的绘制Plot部分关键字和使用方法,pSym=-2,pSym=5,IDL r=findgen(100)*0.01 IDL t=4.0*!Pi*rIDL Plot,r,t,/polar,pSym=-2pSym=5IDL r=findgen(1,OPlot绘制多线,OPlot,使用方法与,Plot,的用法基本相同,区别在于连续使用,OPlot,时,可以在,同一个坐标系,中绘制多条直线或者曲线,而,不擦除,原有内容。相当于,Plot,加了,/NoErase,关键字。,x=findgen(101)*(0.01*2.0*!PI),Plot,x,sin(x),OPlot,x,cos(x),pSym=-2,OPlot,x,sin(x)*cos(x),$,linestyle=5,Thick=4,OPlot绘制多线OPlot使用方法与Plot的用法基本相同,Plots绘制无坐标多线,Plots,使用方法与,Plot,的用法基本相同,区别在于连续使用,Plots,时,可以在,多个坐标系,中绘制任意多条,没有坐标轴,的直线或者曲线,而,不擦除,原有内容。,除了与,Plot,相同的关键字外,,Plots,还有一个关键字,/Continue,,在最后一次的绘制点处继续连续绘制,x=0,10,20,30,40&y=0,0.8,1,0.6,0,u=50,60,70,80&v=-0.3,-0.5,-0.3,0,plots,x/2,y/2+0.5,pSym=-2,plots,u/2,v/2+0.5,pSym=-2,/continue,plots,x/2,y/2+0.3,pSym=-6,plots,u/2,v/2+0.3,pSym=-6,Plots绘制无坐标多线Plots使用方法与Plot的用法基,Contour绘制等值轮廓线,Contour,用于绘制坐标系中任意的等值轮廓线。,Contour,的用法跟,Plot,的用法基本相同,也提供了许多关键字用于设置线、标注、坐标轴等元素的每一个细节。关键字,/OverPlot,的效果与,Plot,中,/NO_ERASE,具有相同的效果。,关键字,Levels=vector,用于设置每层对应的数值。,TVScl,DIST(100),Contour绘制等值轮廓线Contour用于绘制坐标系中任,Surface Shade_Surf绘制网格面,Surface用于在坐标系中绘制任意的三维网格。与Plot的用法基本相同。AX|AZ=degree关键字用于设置网格面绕X|Z轴旋转的角度。/Lower_ONLY|Upper_ONLY设置只绘制底|顶面。Shade=array指定一个二维数组作为表面纹理。,Shade_Surf与Surface用法基本相同,但能绘出带阴影的三维曲面。,Surface Shade_Surf绘制网格面Surface,Surface,Dist(16),$,SKIRT=4,LineStyle=4,thick=2,Surface,Dist(16),$,/LEGO,Surface,Dist(16),$,/HORIZONTAL,Surface,Dist(16),Surface,Dist(16),$Surface,D,A=dist(300)&shade_surf,A,A=dist(300)&shade_surf,A,$,Shades=BytScl(sin(A),A=dist(300)&shade_surf,AA=d,Plot_3DBox绘制投影曲线,Plot_3DBox,适用于绘制三维数据,(z=f(x,y),的投影曲线。,/XY|XZ|YZ_PLANE,,绘制三个投影面。,Plot_3DBox绘制投影曲线Plot_3DBox适用于绘,体绘制,体绘制是指以体素作为基本单元,使用指定的模型和算法,由体数据直接生成三维虚拟实体影像的过程。,体绘制可以表现实体的外部形状和内部细节,可以结合面绘制技术,在绘制质量、速度、交互性和信息表现互为补充。,体绘制的几种办法,IDLgrVolume,对象,xVolume,过程,iVolume,智能工具,体绘制体绘制是指以体素作为基本单元,使用指定的模型和算法,由,体绘制,通过创建或初始化体绘制类,IDLgrVolume,对象。注意这里输入的数据将被转化成,Byte,类型。,Obj,=OBJ_NEW(,IDLgrVolume,vol0,vol1,vol2,vol3,PROPERTY,=,value,/NO_COPY),Result,=,Obj,-,IDLgrVolume:Init,(,vol0,vol1,vol2,vol3,PROPERTY,=,value,/NO_COPY),IDLgrVolume,有多达,36,个属性,如,Data04,,,RGB_table01,Opacity_table01,shader,clip_planes,ambient,XZRange,XZCoord_conv,ZBuffer,等。,体绘制通过创建或初始化体绘制类IDLgrVolume对象。注,体绘制,xVolume,:该过程用于交互查看和操作体数据和等值面。,XVOLUME,Vol,/BLOCK,GROUP=widget_id,/INTERPOLATE,/MODAL,RENDERER=0|1,/REPLACE,SCALE=value,/TEST,XSIZE=pixels,YSIZE=pixels,Replace:,使用存在的,xVolume,替换,vol,Render:,设置渲染环境,,0,为,OpenGL,(默认),,1,为,IDL,本身,xSize,,,ySize:,设置绘制窗口的大小,Interpolate:,设置差值方式,Scale:,设置体绘制的比例因子,体绘制xVolume:该过程用于交互查看和操作体数据和等值面,iTool工具简介,iTool(Intelligent Tools),是拥有一些列交互功能的图形化智能工具包。,将数据分析、可视化任务和高品质图形表现结合在一起,集成一系列交互功能。,预建了,iPlot,iSurface,iContour,iVolume,iMap,iImage,iVector,等创建例程及,IConvertCoord,IRotate,iSave,iZoom,等各种程序例程。,iTool,由,IDL,写成,既可作为独立程序交互使用,也可被其他程序调用或进行二次开发。,iTool工具简介iTool(Intelligent Too,iVolume例子,file=FILEPATH(head.dat,SUBDIRECTORY=examples,data)data0=READ_BINARY(file,DATA_DIMS=80,100,57),data1=BYTARR(80,100,57,/NOZERO)+1Bdata10:39,*,28:56=0B,rgbTable1=BYTARR(256),BYTARR(256),BYTARR(256)rgbTable11,*=255,255,255opacityTable1=BYTARR(256)opacityTable11=255,IVOLUME,data0,data1,$,RGB_TABLE1=rgbTable1,$,OPACITY_TABLE1=opacityTable1,$/AUTO_RENDER,;,在,iVolume,中,data0,和,data1,做,alpha,混合,从而实现切割效果,iVolume例子file=FILEPATH(head,并行的IDLFastDL简介,FastDL,是,Tech-X Corporation,公司基于,IDL,开发的一款软件,它弥补了,IDL,在集群并行运算上面的不足,将,IDL,的计算能力发挥到最大。,针对并行的特点,,FastDL,提供了两个功能:,TaskDL,:用于处理各节点间互相独立的任务。,mpiDL,:用于处理节点间需要传递消息的任务,与标准,MPI,的使用方法相同,以“,MPIDL_”,为函数前缀,比如,MPIDL_Send,,,MPIDL_Receive,,,MPIDL_AllReduce,MPIDL_Gather,MPIDL_Barrier,,,MPIDL_Bcast,等。,并行的IDLFastDL简介FastDL是Tech-X,一个简单的TaskDL,PRO,oFarm=OBJ_NEW(taskdl),oFarm-open_session,oFarm-spawn_worker,oFarm-add_task,print,“Mysimple TaskFarm”,oFarm-close_session,Obj_destroy,oFarm,END,基本步骤:,1,、创建,TaskDL,对象,2,、打开一个会话,session,3,、生成,worker,4,、添加任务,5,、结束会话,session,6,、退出,TaskDL,一个简单的TaskDLPRO基本步骤:,IDL使用中的小技巧,尽量使用库函数而不是自己写函数:,丰富的库函数加快开发进度。,库函数通过严格测试,更健壮。,库函数内部做了优化,特别是对于矩阵运算,效率提高更明显。,可以用一个函数完成则不用两个函数,如需同时求,Max,和,Min,,给,Max,加上,min,参数,,eg,a=max(Matrix,min=b),,可同时求出,max,和,min,。,如用,max,,,min,等。代替类似,myMax=a gt b?a:b,的代码。,多使用指针,指针的运算效率高,但用完后记得及时释放。,编辑,内容辅助 或,ALT+/,IDL使用中的小技巧 尽量使用库函数而不是自己写函数:编辑,特别提醒,:不是逻辑判断,而是取最小和最大,如,a=a1,=,:不是逻辑判断,而是取最小和最大赋给左边,EQ=,、,LT=,,,MOD=,,,NE=,,,OR=.,三目运算符?,:,与,C,语言之比较:,int c=4;c=(c5?c:5);,4,c=4&c=(c5?c:5)&print,c,5,IDL,中,,c5,的意思是,c,与,5,当中取最小的,故结果为,4,,而,IDL,中,偶数当,bool,值,为假,故最终结果为,5,。正确方法:,c=(c gt 5?c:5),特别提醒:不是逻辑判断,而是取最小和最大,如 a=,进一步学习IDL,经常用帮助。只需敲个,”?”,即调出帮助,外加一个空格和你想查的关键词,如“,?Plot”,即到你想查阅的主题,Plot,参考书,IDL Programming Technique.David Fanning,大师的经典巨著。从基础到应用,数据读取到可视化,从直接图形法到对象图形法,从代码格式到编程习惯,对,IDL,作了全方位阐述。,Development with IDL.Ronn Kling,著,.,适合有一定,IDL,基础的使用。,Graphics with IDL.Ronn Kling,著,.,着重介绍,2D,,,3D,可视化方面的编程,IDL,官方培训教程系列,1)Introduction to IDL,(初级),2)Intermediate Programming and Analysis in IDL,(中级),3)Advanced Topics in IDL,(高级),进一步学习IDL经常用帮助。只需敲个”?”即调出帮助,外,天文学中的IDL,天文学中的,IDL,The IDL Astronomy Users Library,idlastro.gsfc.nasa.gov/homepage.html,The SolarSoftWare(SSW)system,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!