IDL简明教程-文件读写

        学习一门编程语言很多书都从数据类型、程序控制与优化等来讲起,体系庞大。然后我们作为一名菜鸟了解了很多,却跟实际的联系不起来,可能就坚持不下去了,或者看过无痕。我结合自己这一年的学习IDL编程并应用于实际工程化项目的经验,从应用的角度重新讲解IDL语言,试图用最少的时间,让读者能很快应用于实际的项目中。

        (1)IDL支持的数据类型

          栅格数据、矢量数据、文本文件等,本次讲解矢量数据。

        (2)学习目标

         新建IDL程序文件、打开栅格数据、读取元数据

 过程:

(1)新建IDL程序文件。

认识IDL的界面:ENVI自带的版本有以下子模块,我们一般使用IDL单独的开发模式(最后一个红框的内容),函数运行速度比较快。

IDL简明教程-文件读写_第1张图片

IDL简明教程-文件读写_第2张图片

(2)新建IDL程序文件。在默认的工程中单击右键,选择新建文件。

IDL简明教程-文件读写_第3张图片

(3)编写主函数。

IDL以“;”进行注释;

过程以pro 过程名开始,end结束,不区分大小写,大家可随意设置。

文件名现在是未命名的状态,点击“编译”按钮,保存文件为.pro格式,注意文件名必须为主过程名。

IDL简明教程-文件读写_第4张图片

IDL简明教程-文件读写_第5张图片

(4)导入ENVI模块。在编写任何程序前,都需要导入以下两句代码,用于引入envi的对象,便于之后的栅格图像打开等操作。

      COMPILE_OPT idl2
      e = envi(/headless)

(5)导入影像。影像路径为字符串,我们可以直接选中拖到IDL的控制台,即可得到完整路径。

IDL简明教程-文件读写_第6张图片

将该路径赋值给制定的变量,则影像路径就读取完毕了。

IDL简明教程-文件读写_第7张图片

(6)读取影像信息。e.openraster()打开影像,打印影像详细信息。

IDL简明教程-文件读写_第8张图片

影像的信息包括路径、数据格式、存储顺序、元数据信息、波段数、行列数、空间信息等。

IDL简明教程-文件读写_第9张图片

元数据信息包含波段名和忽略值,其访问方式:print,raster.metadata

其中更进一步的波段名称的访问方式为:(raster.METADATA)['band names']

空间信息包含投影信息,像素分辨率,坐上角坐标信息等,访问方式为:print,raster.spatialref

 其中更进一级的分辨率访问方式为:(raster.spatialref).PIXEL_SIZE

 

 

 

 

 

 

        

        

你可能感兴趣的:(学习)