IDL入门学习教程

IDL介绍——什么是IDL?

Interactive Data I anguage(交互式数据语言)
第四代计算机语言
跨平台应用开发
科学数 据分析
可视化表达

背景

Exelis V isual Information Solut ions
➢1975年, 美国科罗拉多州立大学负责NASA的火星计划中的
影像处理,实现了IDL
➢1994年, 用IDL开发ENVI
2006年,RSI公司重组为ITT Visual Informat ion
Solutions (简称ITT VIS)
➢2008年,IDL7. 0发布,全新的基于Eclipse的开发环境;
➢2010年7月,IDL8. 0正式发布,改进的开发环境、强大的可
视化功能、完善的语法结构
➢2012年,重组为ExelisVis
➢2012年5月,发布了IDL8. 2&ENVI5.0
➢2013年5月,发布了IDL8. 2. 3&ENVI5.0SP3

IDL介绍——IDL的功能组成

在这里插入图片描述

IDL特点

丰富的数据输入输出
-常规文件

  • ASCII
  • 二进制
  • 图像

-科学数据格式

  • HDF
  • HDF5
  • NetCDF

-医学影像DICOM

擅长处理矢量或数组
内嵌大量函数
代码量少
运行速度快
算法底层优化

简单易学

高级图像处理能力
图像类型转换
图像几何变换
大小
旋转
纠正
贴图
图像域变换
图像增强和滤波
图像的形态学
图像的识别

支持OpenGL加速
三维图形技术
Shader支持
卷积滤波
色彩补偿
显示补偿

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IDL入门

资料下载
首先,切换工作空间
在这里插入图片描述

1.pro文件

IDL创建一个工作空间,工作空间下可有多个工程文件,一个工程文件里可写多个pro过程,但必须有一个pro过程与工程文件同名
关键关键: pro过程保存的文件名必须和程序中所写的pro 后名称一致。否则编译失败,也不可运行。

2.中文乱码情况

如果相关IDL程序是写界面,且界面上包括中文字符,如果运行出现乱码,修改方式:
窗口----首选项----常规----工作空间----文本文件编码, 在这里改成GBK 或者手输 GBK2312

3.添加作者信息(文件、程序注释)

给自己的idl程序加作者信息等:源码----添加文件注释/添加程序注释
修改默认格式:窗口----首选项----IDL----IDLdoc
修改时可添加变量(在下拉栏的最后)
eg:我的

  ;+
  ; Description:
  ;    Describe the procedure.
  ; Author: ${user}
  ; date: ${date}
  ;-

效果:
在这里插入图片描述

4.调试(打断点/逐语句/逐过程)

1.打断点(在程序行前双击),出现下图红点,运行程序会在红点位置暂停
在这里插入图片描述
2.逐语句执行程序:IDL界面翻译为‘
3.逐过程执行程序:IDL翻译成‘跳出
在这里插入图片描述

5.帮助用法(help)

1.在命令行直接输入 ?函数名,会跳转到函数的介绍页面,可查看函数的调用格式以及关键字的使用
2. 鼠标左键选中待查询函数名,点击界面上方 帮助----选中项目帮助

6.变量值

1.在程序运行后,在变量名是哪个悬停,可查看变量值
2.在IDL界面左侧,变量查看器查看,也可在 窗口----变量查看器,进行查看

7.IDL 自带demo

在命令行直接输入demo,回车即可,双击pro文件即可查看运行情况。选中pro文件后,下方可见demo的源码文件

8.换行符

1) $ 示例:
IDL> print,$
> 'lizijia'
lizijia
IDL> 
IDL> 'li'+string(13B)+'zi'
li
zi

3)字符串数组

IDL> a=strarr(2)
IDL> a[0]='li'
IDL> a[1]='hua'
IDL> a
li
hua
IDL> dialog_message(a)

9.大小写

IDL语言是不区分大小写的,但是在作为字符串时,是区分大小写的。

10.编译成可执行程序(.sav或者.exe)

1.编译成 .sav文件
步骤:
1)重置
2)编译

3)命令行输入:

save,filename='D:\lizijia.sav',/routines

注意:默认软件默认resolve_all 是勾选的,具体可见,工程名,右键,属性----工程构建属性----resolve_all(会把IDL自带的一些程序也编译进去,使用方便)

2.编译成 .exe文件
步骤:
1)重置(也可不重置)
2)编译
3)命令行输入:

make_rt,'test','D:\idl_test'

test为输出exe的名字,'D:\idl_test’为输出路径
注意:
a.在得到的exe文件夹里面,可把自己电脑IDL的license文件拷贝进去,这样就不会出现虚拟机的界面,
b.在文件.ini 的文件里,吧dialog 字符下面的show=TRUE,改成show=FALSE,就不会出现最前面的click to continue 的界面

11 局部变量和全局变量

idl 中有已经设定好的系统变量,为全局变量,而自己写的变量一般都是局部变量。
在这里插入图片描述
那怎么自定义全局变量呢?
1.在命令行中定义系统变量,回车执行后,会在系统变量里找到自己定义的系统变量,(但是并非所有的程序都要用到该变量,所以如果系统变量定义过多,会增加系统内存,不推荐使用)

IDL> defsysv,'!li',10
IDL> 

 
  • 1
  • 2

在这里插入图片描述
2. 定义公共区common

12 pro和function的使用

13. file_nasename()和file_dirname

已知文件绝对路径为:
D:\cbs\georeferenced_img\DS1110-1118DF025_rec_geocoding_1s_match.tif

IDL> file_basename('D:\cbs\georeferenced_img\DS1110-1118DF025_rec_geocoding_1s_match.tif')
DS1110-1118DF025_rec_geocoding_1s_match.tif
IDL> file_dirname('D:\cbs\georeferenced_img\DS1110-1118DF025_rec_geocoding_1s_match.tif')
D:\cbs\georeferenced_img
ENVI> 
posted @ 2022-11-21 18:53  TwcatL_tree  阅读(611)  评论(0编辑  收藏  举报