IDL简明教程-文件读写

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

        (1)IDL支持的数据类型

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

        (2)学习目标

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

 过程:

(1)新建IDL程序文件。

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

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

(3)编写主函数。

IDL以“;”进行注释;

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

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

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

      COMPILE_OPT idl2
      e = envi(/headless)

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

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

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

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

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

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

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

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

        

        

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值