关于ENVI中的ROI

格式:
ROI的扩展名有两种:.roi和.xml
在新版ENVI中,在左侧视图栏里对影像右键创建ROI之后,再在左侧右键save as,如此保存的是.xml;如果双击某个ROI,在弹出的窗口中,左上角file,export to选项有个Classic中,保存出来的就是.roi,就是可在Classic中分类时overlay的文件格式。

绘制ROI的时候,是要有个“底图”的,在新版ENVI中,ROI可以拖到任何影像下面,监督分类的时候这些被拖过去的ROI也可以用作这些影像的ROI。但是在Classic中,对没有被以底图绘制ROI的影像overlay ROI的时候,就会显示里面没有我们绘制好的样本,即使在样本里restore,ENVI也只是会提醒,所加入的ROI里有哪些类,各有多少样本。

后来,我打开ROI绘制时候的底图,再overlay ROI的时候,看到这里有许多重复的样本,就是我多次尝试在另一个影像上加载ROI的时候产生的。

正确让ROI在另一幅影像上能用的方法就是,使用“reconcile ROI via Map"功能,此功能是在Classic中。

做法就是,我们加载正确的底图影像和目标影像,并在正确底图影像IMG窗口的overlay中打开ROI时,会出现一个窗口,在这个窗口中,点击option选项,中间有个reconcile ROI via Map,点击之后,选择待转移影像即可。
在这里插入图片描述

### 使用 ENVI 将 XML 文件转换为 TIFF 格式 为了将 Landsat 数据中的 XML 文件转换为 TIFF 格式的影像文件,可以利用 ENVI 的编程接口 IDL 来完成此操作。具体过程涉及解析 XML 文件以获取元数据信息,并基于这些信息打开相应的栅格数据集,最后将其导出为 TIFF 文件。 #### 解析 XML 文件并提取定标参数 首先需要编写一段程序来处理 MTL.XML 文件,从中抽取必要的定标系数和其他重要参数。这一步骤通常用于准备后续的数据校正工作。由于提供的资料已经提到可以通过 XML 文件获得定标参数[^1],因此这部分主要依赖于对特定标签内容的理解与抓取。 ```idl pro read_mtl_xml, xml_file, calibration_params compile_opt idl2 ; 打开并读取XML文档 doc = xmldoc(xml_file) ; 定义要查找的关键节点名称列表 tags_of_interest = ['RADIOMETRIC_RESCALING', 'REFLECTANCE_MULT_BAND_', $ 'REFLECTANCE_ADD_BAND_', ... ] ;; 省略其他可能感兴趣的标签 ; 遍历所有感兴趣标签并将它们的内容存储到关联数组中 foreach tag_name, tags_of_interest do begin nodes = doc.getElementsByTagName(tag_name) if (nodes.count gt 0) then begin node_value = strtrim(nodes.item(0).text, 2) calibration_params[tag_name] = float(node_value) endif endforeach end ``` #### 导入栅格数据并设置输出路径 接下来,在获得了所需的定标参数之后,就可以加载实际的遥感影像数据了。这里假设已知如何根据 XML 中的信息定位对应的二进制(.dat或其他扩展名)影像文件位置。一旦打开了正确的栅格对象,则可以根据需求调整其属性(比如波段组合),再指定目标保存目录以及最终生成的 TIFF 文件的名字。 ```idl e = envi() inpath = 'C:\Path\To\Landsat\Data' ;; 输入包含原始数据文件夹的位置 outpath_base = 'C:\Desired\Output\Folder\' ;; 设置输出的基础路径 file_search_result = file_search(inpath, '*.TIF*', count=num_files) for idx = 0, num_files - 1 do begin current_raster_path = file_search_result[idx] raster_dataset = e.openraster(current_raster_path) base_filename = file_basename(current_raster_path, '.TIF') output_tiff_fullpath = outpath_base + base_filename + '_converted.tif' raster_dataset.export, output_tiff_fullpath, 'TIFF' print, format='(%s)', 'Converted and saved as: ', output_tiff_fullpath endfor ``` 上述代码片段展示了如何遍历给定目录下的 TIF 文件,并逐一进行转换和重命名后另存为新的 TIFF 文件。需要注意的是,这里的例子是以现有的 TIF 文件作为输入;如果源文件不是这种格式而是像 DAT 或者 HDF 这样的非标准地理空间图像格式的话,那么还需要额外考虑如何正确解释这类文件结构以便能够顺利导入至 ENVI 当中[^2]。 #### 处理非标准格式的数据 当面对非标准格式的数据时,如 `.DAT` 文件,MATLAB 提供了一种方法来进行批量读取并转储成易于使用的 TIFF 图像[^3]。然而,在本案例中更推荐使用专门针对地球观测数据设计的应用软件——ENVI 及其内置函数库来执行此类任务,因为这样可以获得更好的兼容性和更高的效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值