IDL基础【影像读取-转存数组-输出】

2024-05-15 17:32

本文主要是介绍IDL基础【影像读取-转存数组-输出】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IDL是一门非常适合高分辨率和大量图像数据处理的语言,在envi的安装过程中自带,通过学习IDL,可以实现十分简单的像元运算功能,方便快捷易上手。

学习所有计算语言,入门分为三个内容:数据输入 —— 数据处理 —— 数据输出

IDL也不例外,本文将采用IDL8.5版本,对采用IDL进行图像读取、转换为数组、图像输出三个部分的内容进行讲解

讲解图像读取之前,首先需要了解一下,任何一个IDL脚本都是从pro开始,end结束,所以这个开头和结束不能省略,并且,pro后的名称代表该脚本/函数名,所以文件也需要存储为对应的名字。

开始输入前,首先新建IDL脚本,构建程序框架并保存文件名为函数名:

pro my_program

end

一、IDL图像读取

compile_opt idl2 ;更改IDL的编译配置,推荐值为IDL2,参考:http://www.harrisgeospatial.com/docs/compile_opt.html

;如果IDL程序中调用了ENVI函数,那么在发布的时候需要加上以下语句:
ENVI,/restore_base_save_files
ENVI_BATCH_INIT

;选择图像文件
image_file=DIALOG_PICKFILE(PATH=’examples\data’, $
TITLE=’Select DICOM Patient File’, FILTER=’*.tif’) ;TITLE为数据选取窗口的标题,PATH为打开文件的默认目录,TILTER为过滤出的数据格式

;读取影像文件

e=envi()
raster=e.OpenRaster(image_file)

二、图像转换到数组

;获取文件ID

fid = ENVIRasterToFID(raster)
;获取对应ID的文件基本信息

MAP_INFO = ENVI_GET_MAP_INFO(fid=fid);获取投影信息
ENVI_FILE_QUERY, fid, ns=ns, nl=nl, nb=nb, dims=dim, data_type=data_type ;获取图像行列数、维度信息和数据类型信息

;获取数据

data = raster.getdata();这里data就是得到的图像数组

三、输出数据

ENVI_WRITE_ENVI_FILE, data, out_name=’c:\desktop’, /nocopy, $
ns=ns,nl=nl,nb=nb, offset=offset, bnames=bnames, map_info=map_info

以上三个部分内容,主要完成了遥感影像数据的读入并获取相关数据的信息、转换成可计算的数组以及进行带投影的输出,其中部分功能为ENVI5.0版本以后新更新的用法,而输出功能则是传统用法。

在学习过程中,个人觉得比较难把握的就是如何带上投影信息进行数据转存,目前这种输出方法只能输出为标准ENVI STANDARD格式,如何带投影输出为TIF等格式还需要进一步学习。

?

这篇关于IDL基础【影像读取-转存数组-输出】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992469

相关文章

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas