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

相关文章

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

Python使用Colorama库美化终端输出的操作示例

《Python使用Colorama库美化终端输出的操作示例》在开发命令行工具或调试程序时,我们可能会希望通过颜色来区分重要信息,比如警告、错误、提示等,而Colorama是一个简单易用的Python库... 目录python Colorama 库详解:终端输出美化的神器1. Colorama 是什么?2.

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python读取TIF文件的两种方法实现

《Python读取TIF文件的两种方法实现》本文主要介绍了Python读取TIF文件的两种方法实现,包括使用tifffile库和Pillow库逐帧读取TIFF文件,具有一定的参考价值,感兴趣的可以了解... 目录方法 1:使用 tifffile 逐帧读取安装 tifffile:逐帧读取代码:方法 2:使用

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE