1 / 28
文档名称:

IDL语言在天文学中的应用.ppt

格式:ppt   页数:28
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IDL语言在天文学中的应用.ppt

上传人:baixue 2013/5/19 文件大小:0 KB

下载得到文件列表

IDL语言在天文学中的应用.ppt

文档介绍

文档介绍:IDL语言在天文学中的应用
王凤飞
中科院国家天文台
Chinese Virtual Observatory
China-VO 2006, Guilin
IDL语言的特点,优势,局限性
IDL语言与其他开发语言的比较
IDL在天文学中的应用
IDL的图像处理举例
11/29-12/03
2
China-VO 2006, Guilin
IDL语言的特点
IDL(Interactive Data Language)是进行数据分析、可视化表达与跨平台应用开发的理想工具。可用于数值计算、三维图形建模、科学数据读取等。
IDL用户涵盖NASA、ESA、NOAA、Siemens、GEMedical等
科学家利用IDL对“勇气号”和“机遇号”的数据进行数据分析和图像处理。
SDSS一维、二维光谱处理软件也是IDL编写的。
11/29-12/03
3
China-VO 2006, Guilin
IDL语言的特点
1、IDL=VC
菜单的定制、消息的传递、类的定义与继承
2、IDL=VB
可视化界面的设计、语言的通俗易懂、编程的入门
3、IDL=JAVA 从跨平台的移植来说
4、IDL=FORTRAN
从函数、子程序的调用、数据传递、语言风格、语言组织等来说
5、IDL=MATLAB
提供了大量封装和参数化了的数学函数
6、IDL=OPENGL
IDL的提供了丰富的二维、三维图形图像类
此外,应用IDL可以快速的开发出功能强大的三维图形图像处理软件和三维GIS应用系统。
11/29-12/03
4
China-VO 2006, Guilin
IDL语言的特点
擅长于处理矢量或数组数据
有大量的IDL命令用于创建不同数据类型的矢量和数组。特别是,有许多创建各类数据类型的数组的函数,该数组的每个元素的初始值为零,而且还有许多创建各类数据类型的数组的函数,该数组的每个元素的初始值为其在数组中的索引位置。
动态改变变量的属性
IDL最强大的功能之一是大多数过程或函数都能在任何数据类型或组织结构上生效。这是因为IDL在运行时能改变变量的数据类型和组织结构(像世界上其他强大的事物一样,这种动态改变变量的属性的能力也有潜在的巨大危险!必须小心,确信知道正在使用哪种数据)。
11/29-12/03
5
China-VO 2006, Guilin
天文中为什么使用IDL?
节省时间,把更多的时间用在科学研究上
--采用IDL我们在三年项目进展中减少了超过一年的工作量。
—— Paul Scowen NASA哈勃望远镜修正小组成员
分享你的工作成果
--和使用IDL的你的同行分享代码.
功能强大的天文库
--IDL Astronomy Users Library
11/29-12/03
6
China-VO 2006, Guilin
IDL语言的局限性
它是一个商业软件。
(IRAF,CIAO,AIPS++ is free!)
IDL更像一个解释器,而不是一个编译器。
大型的idl程序在运行时比编译好的C、FORTRAN程序慢一些。
一次性处理数据500M以下效果好。
批处理大量数据时C、FORTRAN可能效果更好。
有些仪器的数据处理包无法使用:
(. CCD mosaic imagery, multi-object spectrographs, echelle spectra, etc.).
11/29-12/03
7
China-VO 2006, Guilin
IDL与其他语言的比较
FORTRAN,C,or C++
不能满足交互式的数据分析要求(没有标准的交互环境)
IRAF, STSDAS, CIAO, and AIPS
是交互性的,但需要预编译;不方便改进和定制; 难以维护
SUPERMONGO,PGPLOT画图
IDL集成了编程计算、数据操作和显示。
11/29-12/03
8
China-VO 2006, Guilin
IDL与其他语言的比较
Mathematica, Matlab, Maple
强大的数学计算能力+可视化;
支持数学符号运算和方程求解;
IDL交互式地查看结果,有更强大的图像处理能力,更灵活的文件I/O(天文:Fits)
11/29-12/03
9
China-VO 2006, Guilin
Matlab vs. IDL
IDL程序有四种形式:
批处理文件、子程序、函数、主程序。
IDL的函数可以有多个输入,但只能有一个输出。输入参数的值在函数中可以改变。子程序不返回值。
Matlab程序可以是M-scripe file或者是一个函数。
Matlab函数可以有多个输入和输出。