在ENVI5.3 下基于GLT/IGM文件的几何校正具体过程

在ENVI5.3 下基于GLT/IGM文件的几何校正具体过程

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

1. 基于ENVI5.3 的几何校正具体过程(基于GLT方法的几何校正)

GLT几何校正法 利用输入的几何文件生成一个地理位置查找表文件(Geographic Lookup Table,GLT),从该文件中可以了解到某个初始像元在最终输出结果中实际的地理位置。地理位置查找表文件是一个二维图像文件,文件包含两个波段:地理校正图像的行和列,文件对应的灰度值表示原始图像每个像素对应的地理位置坐标信息,用符号整型存储,它的符号说明输出像元是对应于真实的输入像元,还是由临近像元生成的填充像元(infill pixel)。
GLT文件包含初始图像每个像元的地理定位信息,它的校正精度很高,避免了通过地面控制点利用二次多项式几何校正法对低分辨率图像数据的处理。

注意:除GLT文件可以进行几何校正外,IGM文件也可以用于影像的几何校正。

下面以反射率数据为例进行说明,IGM文件校正过程与该过程类似,不在赘述,下面以GLT文件数据进行几何校正为例。

  • 第一步:打开需要校正的影像数据文件
    图1

局部放大图
图2
如上图1所示,从中可以看到未进行几何校正的数据为一个条带数据,为了便于显示,我们将数据进行了向右90度的翻转,图2中为图1数据中的局部数据发大图,从中可以清楚的看到在没有进行几何校正前,影像中的路是变形的,因此进行几何校正是非常由必要的。

  • 第二步:在Toolbox中,选择 /Geometric Correction/Georeference from GLT,在弹出的Input Geometry Lookup File对话框中选择GLT文件,点击OK!
    在这里插入图片描述
    注意:在进行此步选择GLT数据是需要先打开GLT数据文件,然后才能在对话框中找到GLT文件。

在这里插入图片描述

  • 第三步:打开GLT数据之后会弹出输入数据对话框,在Input Data File对话框中选择待校正文件,点击OK!
    在这里插入图片描述

  • 第四步:选择输出路径和文件名,然后点击OK ,具体如下图所示:
    在这里插入图片描述

  • 第五步:浏览结果,如下图所示为几何校正之后的数据
    在这里插入图片描述
    注:利用ENVI下的Google Earth Bridge功能,将校正结果在Google Earth下叠加显示,可以看到校正结果和Google Earth完全重合
    在这里插入图片描述
    关联显示结果如下图所示:
    在这里插入图片描述

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
针对您的问题,我可以提供以下步骤: 1. 打开ENVI,选择File -> Open External File,选择HDF5数据文件。 2. 打开IDL环境,在命令行中输入以下脚本: ``` envi, /restore_base_save_files file = FILEPATH('input_file.h5', SUBDIRECTORY=['data'], $ ROOT_DIR=['/']) hdf5 = HDF(/read, FILENAME=file) data = hdf5->GetData() metadata = hdf5->GetMetadata() lat = metadata[0].Data.Latitude lon = metadata[0].Data.Longitude ``` 这个脚本将读取HDF5数据文件并提取数据和元数据。其中,lat和lon是数据的经纬度信息。 3. 创建GLT文件。在IDL中输入以下脚本: ``` gltpath = FILEPATH('output_glt.glt', SUBDIRECTORY=['data'], $ ROOT_DIR=['/']) glt = ENVIGeometricCorrectionRaster(gltpath, $ DATASET_NAME='input_file', $ SPATIAL_REF_OBJ=hdf5->GetSpatialRef(), $ SPATIAL_REF_CODE=hdf5->GetSpatialRefCode(), $ PIXEL_SIZE=hdf5->GetPixelSize(), $ UL_LATITUDE=max(lat), $ UL_LONGITUDE=min(lon), $ ROTATION_ANGLE=0.0, $ OUTPUT_PIXEL_SIZE=hdf5->GetPixelSize(), $ OUTPUT_COORDINATE_SYSTEM_CODE=hdf5->GetSpatialRefCode(), $ OUTPUT_INTERLEAVE=hdf5->GetInterleave(), $ OUTPUT_DATA_TYPE=hdf5->GetDataType()) ``` 这个脚本将创建一个GLT文件并设置几何校正参数。其中,glt是一个ENVIGeometricCorrectionRaster对象,表示GLT文件gltpath是GLT文件的保存路径;DATASET_NAME是输入数据集的名称;SPATIAL_REF_OBJ和SPATIAL_REF_CODE是输入数据的空间参考对象和空间参考代码;PIXEL_SIZE是输入数据的像素大小;UL_LATITUDE和UL_LONGITUDE是输入数据的左上角经纬度坐标;ROTATION_ANGLE是输入数据的旋转角度;OUTPUT_PIXEL_SIZE、OUTPUT_COORDINATE_SYSTEM_CODE、OUTPUT_INTERLEAVE和OUTPUT_DATA_TYPE是输出数据的相关参数。 4. 运行几何校正。在IDL中输入以下脚本: ``` outputpath = FILEPATH('output_file.h5', SUBDIRECTORY=['data'], $ ROOT_DIR=['/']) geocorrect = ENVIGeometricCorrection(input_file, $ OUTPUT_URI=outputpath, $ GLT=glt, $ SPATIAL_REF_OBJ=hdf5->GetSpatialRef(), $ SPATIAL_REF_CODE=hdf5->GetSpatialRefCode(), $ PIXEL_SIZE=hdf5->GetPixelSize(), $ OUTPUT_INTERLEAVE=hdf5->GetInterleave(), $ OUTPUT_DATA_TYPE=hdf5->GetDataType()) ``` 这个脚本将执行几何校正操作,并将结果保存到指定路径的HDF5文件中。其中,geocorrect是一个ENVIGeometricCorrection对象,表示几何校正操作;input_file是输入数据文件;OUTPUT_URI是输出数据文件的保存路径;GLT、SPATIAL_REF_OBJ、SPATIAL_REF_CODE、PIXEL_SIZE、OUTPUT_INTERLEAVE和OUTPUT_DATA_TYPE是与GLT文件相同的参数。 以上就是使用ENVI IDL对HDF5数据建立GLT进行几何校正的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值