【遥感学习整理 02】ENVI遥感图像处理基础:从数据读取到遥感信息产品

ENVI遥感图像处理基础:从数据读取到遥感信息产品

文章目录

  • ENVI遥感图像处理基础:从数据读取到遥感信息产品
    • [第一章 ENVI在遥感处理体系中的位置](#第一章 ENVI在遥感处理体系中的位置)
      • [1.1 ENVI是什么](#1.1 ENVI是什么)
      • [1.2 ENVI处理的三个层次](#1.2 ENVI处理的三个层次)
        • [1.2.1 数据读取层](#1.2.1 数据读取层)
        • [1.2.2 图像分析层](#1.2.2 图像分析层)
        • [1.2.3 成果生产层](#1.2.3 成果生产层)
      • [1.3 ENVI与GIS的关系](#1.3 ENVI与GIS的关系)
    • [第二章 ENVI、IDL与扩展体系](#第二章 ENVI、IDL与扩展体系)
      • [2.1 ENVI与IDL的关系](#2.1 ENVI与IDL的关系)
      • [2.2 IDL的主要作用](#2.2 IDL的主要作用)
      • [2.3 ENVI扩展模块的功能逻辑](#2.3 ENVI扩展模块的功能逻辑)
      • [2.4 软件模块不能代替方法理解](#2.4 软件模块不能代替方法理解)
    • [第三章 ENVI数据组织与目录结构](#第三章 ENVI数据组织与目录结构)
      • [3.1 软件目录的基本作用](#3.1 软件目录的基本作用)
      • [3.2 默认输入、输出与临时目录](#3.2 默认输入、输出与临时目录)
      • [3.3 用户数据不应长期放在安装目录](#3.3 用户数据不应长期放在安装目录)
    • [第四章 ENVI图像显示体系](#第四章 ENVI图像显示体系)
      • [4.1 影像显示与数据计算的区别](#4.1 影像显示与数据计算的区别)
      • [4.2 灰度显示](#4.2 灰度显示)
      • [4.3 RGB合成显示](#4.3 RGB合成显示)
      • [4.4 伪彩色显示](#4.4 伪彩色显示)
      • [4.5 多窗口与图层化显示](#4.5 多窗口与图层化显示)
    • [第五章 ENVI栅格文件结构](#第五章 ENVI栅格文件结构)
      • [5.1 二进制数据文件与头文件](#5.1 二进制数据文件与头文件)
      • [5.2 数据类型](#5.2 数据类型)
      • [5.3 字节顺序](#5.3 字节顺序)
      • [5.4 BSQ:按波段顺序存储](#5.4 BSQ:按波段顺序存储)
      • [5.5 BIL:按行交叉存储](#5.5 BIL:按行交叉存储)
      • [5.6 BIP:按像元交叉存储](#5.6 BIP:按像元交叉存储)
      • [5.7 存储方式与计算效率](#5.7 存储方式与计算效率)
    • [第六章 遥感数据输入](#第六章 遥感数据输入)
      • [6.1 自动识别](#6.1 自动识别)
      • [6.2 按指定格式打开](#6.2 按指定格式打开)
      • [6.3 GeoTIFF与普通TIFF](#6.3 GeoTIFF与普通TIFF)
      • [6.4 HDF与NetCDF](#6.4 HDF与NetCDF)
      • [6.5 原始二进制数据](#6.5 原始二进制数据)
      • [6.6 数据打开后的检查](#6.6 数据打开后的检查)
    • [第七章 数据输出与格式转换](#第七章 数据输出与格式转换)
      • [7.1 保存原始栅格](#7.1 保存原始栅格)
      • [7.2 导出显示视图](#7.2 导出显示视图)
      • [7.3 文件后缀不等于文件格式](#7.3 文件后缀不等于文件格式)
      • [7.4 输出格式选择](#7.4 输出格式选择)
    • [第八章 ENVI中的大气校正](#第八章 ENVI中的大气校正)
      • [8.1 为什么需要大气校正](#8.1 为什么需要大气校正)
  • [ L_{\\lambda}\^{sensor}](# L_{\lambda}^{sensor})
      • [8.2 大气校正的真正目标](#8.2 大气校正的真正目标)
      • [8.3 辐射传输模型](#8.3 辐射传输模型)
      • [8.4 快速大气校正](#8.4 快速大气校正)
      • [8.5 结果检查](#8.5 结果检查)
    • [第九章 面向对象特征提取](#第九章 面向对象特征提取)
      • [9.1 从像元到对象](#9.1 从像元到对象)
      • [9.2 对象特征](#9.2 对象特征)
      • [9.3 分割尺度](#9.3 分割尺度)
      • [9.4 适用地物](#9.4 适用地物)
    • [第十章 摄影测量与立体像对](#第十章 摄影测量与立体像对)
      • [10.1 立体观测原理](#10.1 立体观测原理)
      • [10.2 RPC模型](#10.2 RPC模型)
      • [10.3 地面控制点](#10.3 地面控制点)
      • [10.4 DEM、DSM和DTM](#10.4 DEM、DSM和DTM)
      • [10.5 正射校正](#10.5 正射校正)
    • [第十一章 LiDAR点云处理](#第十一章 LiDAR点云处理)
      • [11.1 点云数据结构](#11.1 点云数据结构)
      • [11.2 地面点分类](#11.2 地面点分类)
      • [11.3 点云衍生产品](#11.3 点云衍生产品)
      • [11.4 点云分类误差](#11.4 点云分类误差)
    • [第十二章 SAR与SARscape](#第十二章 SAR与SARscape)
      • [12.1 SAR影像的观测特性](#12.1 SAR影像的观测特性)
      • [12.2 斑点噪声](#12.2 斑点噪声)
      • [12.3 InSAR干涉测量](#12.3 InSAR干涉测量)
  • [ \\phi_{int}](# \phi_{int})
      • [12.4 SARscape的功能范围](#12.4 SARscape的功能范围)
    • [第十三章 ENVI服务化与企业级处理](#第十三章 ENVI服务化与企业级处理)
      • [13.1 从桌面工具到服务](#13.1 从桌面工具到服务)
      • [13.2 服务化的意义](#13.2 服务化的意义)
      • [13.3 服务化不等同于云原生](#13.3 服务化不等同于云原生)
    • [第十四章 ENVI中的系统设置与性能](#第十四章 ENVI中的系统设置与性能)
      • [14.1 数据管理设置](#14.1 数据管理设置)
      • [14.2 显示设置](#14.2 显示设置)
      • [14.3 缓存与内存](#14.3 缓存与内存)
      • [14.4 GPU与并行计算](#14.4 GPU与并行计算)
    • [第十五章 ENVI数据质量检查](#第十五章 ENVI数据质量检查)
      • [15.1 第一轮检查](#15.1 第一轮检查)
      • [15.2 直方图检查](#15.2 直方图检查)
      • [15.3 光谱曲线检查](#15.3 光谱曲线检查)
      • [15.4 空间参考检查](#15.4 空间参考检查)
    • [第十六章 ENVI工作流的可复现性](#第十六章 ENVI工作流的可复现性)
      • [16.1 为什么图形界面操作难以复现](#16.1 为什么图形界面操作难以复现)
      • [16.2 应记录的内容](#16.2 应记录的内容)
      • [16.3 自动化处理](#16.3 自动化处理)
    • [第十七章 综合案例:从影像读取到分类成果](#第十七章 综合案例:从影像读取到分类成果)
      • [17.1 问题定义](#17.1 问题定义)
      • [17.2 数据准备](#17.2 数据准备)
      • [17.3 技术路线](#17.3 技术路线)
      • [17.4 关键检查点](#17.4 关键检查点)
    • [第十八章 常见误区](#第十八章 常见误区)
      • [18.1 影像能够显示就表示读取正确](#18.1 影像能够显示就表示读取正确)
      • [18.2 文件后缀决定数据格式](#18.2 文件后缀决定数据格式)
      • [18.3 显示拉伸后的图像可以直接定量分析](#18.3 显示拉伸后的图像可以直接定量分析)
      • [18.4 自动化工具输出就是可靠结果](#18.4 自动化工具输出就是可靠结果)
      • [18.5 大气校正后图像更亮就说明效果更好](#18.5 大气校正后图像更亮就说明效果更好)
      • [18.6 面向对象方法一定优于像元分类](#18.6 面向对象方法一定优于像元分类)
      • [18.7 SAR暗区一定是水体](#18.7 SAR暗区一定是水体)
      • [18.8 ENVI输出栅格可以直接作为业务成果](#18.8 ENVI输出栅格可以直接作为业务成果)
    • [第十九章 术语表](#第十九章 术语表)

第一章 ENVI在遥感处理体系中的位置

1.1 ENVI是什么

ENVI是一套面向遥感影像读取、显示、预处理、分析和成果输出的软件平台。它能够处理多光谱、高光谱、SAR、DEM、LiDAR点云和航空影像等多种地理空间数据。

从遥感工作流看,ENVI处于"传感器数据"与"地理信息产品"之间:
#mermaid-svg-YhnaHHPtLNx8SlVI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-YhnaHHPtLNx8SlVI .error-icon{fill:#552222;}#mermaid-svg-YhnaHHPtLNx8SlVI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YhnaHHPtLNx8SlVI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YhnaHHPtLNx8SlVI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YhnaHHPtLNx8SlVI .marker.cross{stroke:#333333;}#mermaid-svg-YhnaHHPtLNx8SlVI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YhnaHHPtLNx8SlVI p{margin:0;}#mermaid-svg-YhnaHHPtLNx8SlVI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster-label text{fill:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster-label span{color:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster-label span p{background-color:transparent;}#mermaid-svg-YhnaHHPtLNx8SlVI .label text,#mermaid-svg-YhnaHHPtLNx8SlVI span{fill:#333;color:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI .node rect,#mermaid-svg-YhnaHHPtLNx8SlVI .node circle,#mermaid-svg-YhnaHHPtLNx8SlVI .node ellipse,#mermaid-svg-YhnaHHPtLNx8SlVI .node polygon,#mermaid-svg-YhnaHHPtLNx8SlVI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YhnaHHPtLNx8SlVI .rough-node .label text,#mermaid-svg-YhnaHHPtLNx8SlVI .node .label text,#mermaid-svg-YhnaHHPtLNx8SlVI .image-shape .label,#mermaid-svg-YhnaHHPtLNx8SlVI .icon-shape .label{text-anchor:middle;}#mermaid-svg-YhnaHHPtLNx8SlVI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-YhnaHHPtLNx8SlVI .rough-node .label,#mermaid-svg-YhnaHHPtLNx8SlVI .node .label,#mermaid-svg-YhnaHHPtLNx8SlVI .image-shape .label,#mermaid-svg-YhnaHHPtLNx8SlVI .icon-shape .label{text-align:center;}#mermaid-svg-YhnaHHPtLNx8SlVI .node.clickable{cursor:pointer;}#mermaid-svg-YhnaHHPtLNx8SlVI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-YhnaHHPtLNx8SlVI .arrowheadPath{fill:#333333;}#mermaid-svg-YhnaHHPtLNx8SlVI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YhnaHHPtLNx8SlVI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YhnaHHPtLNx8SlVI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YhnaHHPtLNx8SlVI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-YhnaHHPtLNx8SlVI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YhnaHHPtLNx8SlVI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster text{fill:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI .cluster span{color:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YhnaHHPtLNx8SlVI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-YhnaHHPtLNx8SlVI rect.text{fill:none;stroke-width:0;}#mermaid-svg-YhnaHHPtLNx8SlVI .icon-shape,#mermaid-svg-YhnaHHPtLNx8SlVI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YhnaHHPtLNx8SlVI .icon-shape p,#mermaid-svg-YhnaHHPtLNx8SlVI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-YhnaHHPtLNx8SlVI .icon-shape .label rect,#mermaid-svg-YhnaHHPtLNx8SlVI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YhnaHHPtLNx8SlVI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-YhnaHHPtLNx8SlVI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-YhnaHHPtLNx8SlVI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 遥感传感器数据
数据读取与元数据识别
辐射和几何预处理
图像显示与增强
特征构建
分类、反演与变化检测
精度评价
栅格和矢量成果
GIS分析、制图与服务发布

ENVI的价值并不只是提供菜单工具,而是把遥感处理中常见的数据结构、算法和成果生产过程组织在同一平台内。

1.2 ENVI处理的三个层次

1.2.1 数据读取层

主要解决"软件能否正确理解数据"的问题,包括:

  • 文件格式识别;
  • 行列数和波段数读取;
  • 数据类型识别;
  • 波段交叉存储方式识别;
  • 字节顺序识别;
  • 坐标和投影读取;
  • 波长、增益、偏移量等元数据读取。
1.2.2 图像分析层

主要解决"如何从影像中提取信息"的问题,包括:

  • 图像显示和拉伸;
  • 波段运算;
  • 空间滤波;
  • 光谱分析;
  • 分类;
  • 参数反演;
  • 面向对象提取;
  • 变化检测;
  • SAR和高光谱分析。
1.2.3 成果生产层

主要解决"分析结果如何转化为可用成果"的问题,包括:

  • 分类栅格;
  • 反演参数图;
  • DEM和DSM;
  • 矢量图斑;
  • 专题地图;
  • 统计表;
  • GIS数据库;
  • 影像服务和在线分析服务。

1.3 ENVI与GIS的关系

ENVI更侧重影像处理与信息提取,GIS更侧重空间组织、叠加分析和业务应用。

环节 ENVI侧重点 GIS侧重点
数据准备 辐射校正、几何校正、影像裁剪 坐标统一、行政区和业务边界组织
信息提取 分类、反演、变化检测 图斑整理、属性关联和规则判断
分析 光谱、纹理、栅格运算 叠加、缓冲、网络和分区统计
质量控制 光谱合理性、分类精度 拓扑、边界、面积和属性检查
成果表达 遥感专题栅格 地图、数据库、统计表和服务

ENVI输出的分类图并不天然等同于业务成果。只有经过坐标核查、精度验证、图斑整理、属性设计和GIS统计后,才能进入自然资源、农业、生态或规划业务。


第二章 ENVI、IDL与扩展体系

2.1 ENVI与IDL的关系

IDL是一种面向数组和矩阵运算的交互式数据语言。ENVI的许多底层功能建立在IDL之上,因此ENVI既是图形化遥感软件,也是一套可以通过编程扩展的计算环境。

一幅多光谱影像可以表示为三维数组:

X ∈ R H × W × B \mathbf{X}\in\mathbb{R}^{H\times W\times B} X∈RH×W×B

其中:

  • H H H表示影像行数;
  • W W W表示影像列数;
  • B B B表示波段数;
  • 每个像元对应一个长度为 B B B的光谱向量。

遥感中的波段运算、滤波、主成分分析、分类和光谱匹配,本质上都可以转化为数组或矩阵计算。

2.2 IDL的主要作用

IDL可以用于:

  • 批量读取遥感影像;
  • 编写自定义算法;
  • 构建交互式分析工具;
  • 扩展ENVI菜单和任务;
  • 自动化重复处理;
  • 封装遥感模型;
  • 将桌面流程部署为服务。

图形界面适合探索和参数试验,代码则更适合批处理、复现和版本管理。

2.3 ENVI扩展模块的功能逻辑

旧版软件资料通常按产品模块介绍功能。更合理的理解方式是把模块映射到遥感问题。

模块方向 主要数据 主要问题 典型成果
大气校正 多光谱、高光谱 从传感器观测恢复地表反射率 地表反射率影像
摄影测量 立体像对、航空影像 正射校正、三维重建 正射影像、DSM、点云
面向对象提取 高分辨率影像 按对象提取地物 建筑、道路、农田和水体
LiDAR处理 点云 地面分类和三维结构提取 DEM、DSM和建筑轮廓
SAR分析 雷达影像 强度、干涉、极化和形变分析 DEM、形变场和分类结果
服务化部署 影像与模型 在线调用遥感算法 REST服务和在线分析

2.4 软件模块不能代替方法理解

模块只是算法和流程的实现载体。即使软件提供自动化向导,使用者仍需要理解:

  • 输入数据属于什么产品级别;
  • 参数对应什么物理意义;
  • 算法有哪些前提假设;
  • 输出值表示什么;
  • 结果如何验证;
  • 哪些误差来自数据,哪些误差来自模型。

第三章 ENVI数据组织与目录结构

3.1 软件目录的基本作用

ENVI安装目录通常包含程序、帮助文档、示例数据、光谱库、投影参数、扩展程序和资源文件等内容。

不同版本的目录名称可能变化,但功能大致可以分为:

目录类型 主要内容
程序目录 可执行文件和运行库
数据目录 示例影像、DEM和矢量数据
帮助目录 用户手册和工具说明
资源目录 图标、语言、波谱库和配置文件
扩展目录 补丁、自定义工具和扩展程序
保存库目录 已编译的IDL程序和框架文件

理解目录结构的意义,在于明确软件资源、扩展代码、临时文件和用户数据应放置在哪里,而不是机械记忆某个版本的文件夹名称。

3.2 默认输入、输出与临时目录

建议分别设置:

  • 默认输入目录;
  • 默认输出目录;
  • 临时文件目录;
  • 扩展程序目录;
  • 缓存目录。

临时目录应位于磁盘空间充足、读写速度较快的位置。大影像处理过程中,中间文件可能远大于原始数据。

3.3 用户数据不应长期放在安装目录

把项目数据长期放在软件安装目录中会带来以下问题:

  • 软件升级时容易丢失;
  • 权限管理复杂;
  • 临时文件与正式成果混杂;
  • 难以进行版本管理;
  • 不便于项目迁移和备份。

更合理的项目目录结构可以是:

text 复制代码
project/
├─data_raw/
├─data_reference/
├─data_processed/
├─samples/
├─models/
├─outputs/
├─maps/
├─scripts/
└─logs/

第四章 ENVI图像显示体系

4.1 影像显示与数据计算的区别

显示是把原始像元值映射为屏幕颜色的过程。显示结果主要用于观察、判读和交互,不一定改变原始数据。

以下操作通常只影响显示:

  • 对比度拉伸;
  • 调整亮度;
  • 修改色表;
  • 切换RGB波段;
  • 设置透明度;
  • 修改缩放插值。

以下操作通常会生成新数据:

  • 波段运算;
  • 辐射校正;
  • 空间滤波;
  • 重采样;
  • 分类;
  • 裁剪;
  • 格式转换。

4.2 灰度显示

单波段影像通常采用灰度显示。原始像元值需要映射到屏幕灰度范围。

最简单的线性拉伸可以表示为:

g = x − x min ⁡ x max ⁡ − x min ⁡ × 255 g= \frac{x-x_{\min}} {x_{\max}-x_{\min}} \times 255 g=xmax−xminx−xmin×255

其中:

  • x x x为原始像元值;
  • x min ⁡ x_{\min} xmin和 x max ⁡ x_{\max} xmax为拉伸范围;
  • g g g为显示灰度值。

拉伸只改变视觉表现,不应把拉伸后的灰度值用于定量分析。

4.3 RGB合成显示

RGB合成将三个波段分别映射到红、绿、蓝显示通道。

组合类型 红通道 绿通道 蓝通道 主要效果
真彩色 绿 接近人眼视觉
标准假彩色 近红外 绿 植被通常呈红色
城市增强 短波红外 近红外 建设用地和裸地差异增强
水体增强 近红外或短波红外组合 可见光 可见光 水陆边界更明显

RGB合成是一种视觉表达方式,不是分类结果。

4.4 伪彩色显示

伪彩色显示通常将单波段数值或类别编码映射到颜色表。

常见用途:

  • 分类结果;
  • DEM;
  • 地表温度;
  • NDVI;
  • 概率图;
  • 变化强度。

连续变量应使用连续色带,离散类别应使用离散颜色。色带选择错误可能造成认知偏差。

4.5 多窗口与图层化显示

旧版ENVI常采用主图像、缩放窗口和滚动窗口组成的三视窗模式;新版ENVI更多采用图层管理、影像显示和鼠标信息集成的单窗体模式。

两种模式虽然界面不同,但核心功能一致:

  • 浏览大影像;
  • 查看局部细节;
  • 读取像元值;
  • 比较不同波段;
  • 叠加矢量;
  • 查看光谱曲线;
  • 管理多个图层。

第五章 ENVI栅格文件结构

5.1 二进制数据文件与头文件

ENVI标准栅格格式通常由两部分组成:

  1. 二进制数据文件;
  2. ASCII头文件。

头文件记录如何解释二进制字节流,常见信息包括:

  • 行数;
  • 列数;
  • 波段数;
  • 数据类型;
  • 字节顺序;
  • 波段交叉方式;
  • 波段名称;
  • 波长;
    -投影;
  • NoData;
  • 缩放参数。

二进制文件本身缺乏完整语义。如果头文件缺失或参数错误,影像可能出现错位、波段混乱、数值异常或无法显示。

5.2 数据类型

数据类型 位数 典型用途
Byte 8位 分类结果、显示图
Int16 16位整数 原始DN、高程
UInt16 16位无符号整数 反射率缩放值
Int32 32位整数 编码和索引
Float32 32位浮点 指数、反射率和概率
Float64 64位浮点 高精度计算

数据类型决定数值范围、文件大小和精度。浮点结果错误保存为整数,会导致小数信息丢失。

5.3 字节顺序

多字节数据需要按特定字节顺序解释,常见为:

  • Little Endian;
  • Big Endian。

若字节顺序设置错误,影像仍可能被读取,但像元值会完全异常。

5.4 BSQ:按波段顺序存储

BSQ将每个波段完整连续存储。

text 复制代码
Band 1:全部行列
Band 2:全部行列
Band 3:全部行列

特点:

  • 读取单个波段效率较高;
  • 适合逐波段处理;
  • 读取单个像元的完整光谱需要跨越不同波段区域。

5.5 BIL:按行交叉存储

BIL按影像行组织,每一行中依次存储多个波段。

text 复制代码
第1行:Band1 → Band2 → Band3
第2行:Band1 → Band2 → Band3

特点:

  • 适合逐行扫描;
  • 对多波段行运算较方便;
  • 常见于部分航空和传感器数据。

5.6 BIP:按像元交叉存储

BIP将同一像元的所有波段连续存储。

text 复制代码
Pixel 1:B1, B2, B3
Pixel 2:B1, B2, B3

特点:

  • 读取像元光谱效率较高;
  • 适合光谱分析和分类;
  • 读取完整单波段时可能效率较低。

5.7 存储方式与计算效率

选择存储结构的本质是匹配数据访问模式:

  • 逐波段运算适合BSQ;
  • 光谱向量分析适合BIP;
  • 逐行流式处理适合BIL。

现代软件能够自动转换存储方式,但大数据场景中,磁盘访问模式仍会明显影响处理速度。


第六章 遥感数据输入

6.1 自动识别

ENVI可以根据文件扩展名、内部元数据、外部头文件和传感器产品结构自动识别多种数据。

自动识别依赖:

  • 文件是否完整;
  • 元数据是否存在;
  • 文件名是否符合产品规则;
  • 软件是否支持该产品版本;
  • 波段文件与元数据是否匹配。

6.2 按指定格式打开

当数据属于特定传感器或专用格式时,应使用对应的数据读取器,而不是把它当作普通二进制文件处理。

专用读取器可以自动读取:

  • 行列数;
  • 波段数;
  • 波长;
  • 增益和偏移量;
  • 坐标;
  • 时间;
  • 太阳角度;
  • 质量控制信息。

6.3 GeoTIFF与普通TIFF

普通TIFF主要描述图像像素,GeoTIFF还包含地理参考信息。

GeoTIFF通常可以保存:

  • 坐标参考系统;
  • 像元大小;
  • 空间范围;
  • 仿射变换。

但GeoTIFF不一定包含全部遥感元数据。波长、太阳角度、定标参数和质量标识仍可能保存在外部文件中。

6.4 HDF与NetCDF

HDF和NetCDF通常是容器格式,其中可能包含:

  • 多个科学变量;
  • 经纬度网格;
  • 时间;
  • 质量控制;
  • 缩放系数;
  • 填充值;
  • 投影信息。

读取这类数据时,应先理解变量层级,不能把所有子数据集直接视为普通影像波段。

6.5 原始二进制数据

对于没有标准头文件的二进制数据,需要人工设置:

  • samples;
  • lines;
  • bands;
  • data type;
  • interleave;
  • byte order;
  • header offset。

任何一个参数错误,都可能导致影像错读。

6.6 数据打开后的检查

数据成功显示后仍需检查:

  • 行列数是否正确;
  • 波段数量是否正确;
  • 波段顺序是否合理;
  • 数据类型是否合理;
  • 数值范围是否合理;
  • 坐标范围是否正确;
  • NoData是否正确;
  • 是否存在条带、坏线和异常波段。

"能够显示"不等于"读取正确"。


第七章 数据输出与格式转换

7.1 保存原始栅格

保存数据时,输出内容通常是实际像元值,而不是屏幕上的拉伸效果。

例如,屏幕上显示的是经过百分比拉伸的影像,但保存结果仍可能是:

  • 原始DN;
  • 辐亮度;
  • 地表反射率;
  • 分类编码;
  • 反演参数。

7.2 导出显示视图

导出显示视图会把当前的:

  • 波段组合;
  • 拉伸效果;
  • 色表;
  • 图层顺序;
  • 透明度;
  • 注记;

渲染为普通图像。

这种结果适合报告和展示,但通常不适合继续定量分析。

7.3 文件后缀不等于文件格式

仅修改文件后缀不能完成真正的格式转换。

例如,将ENVI二进制文件命名为.tif,内部仍可能不是GeoTIFF。

正确的格式转换应通过软件输出驱动完成,并检查:

  • 输出格式;
  • 数据类型;
  • 压缩方式;
  • NoData;
  • 坐标;
  • 波段顺序;
  • 元数据保留情况。

7.4 输出格式选择

输出格式 适用场景 注意事项
ENVI标准格式 中间处理和多波段分析 需要头文件配套
GeoTIFF GIS交换和成果共享 检查投影与压缩
ERDAS IMG GIS与遥感软件交换 注意软件兼容性
HDF/NetCDF 多变量科学数据 需保持变量结构
JPEG/PNG 显示和报告 不适合定量分析
Shapefile/GeoPackage 矢量成果 注意字段和编码

第八章 ENVI中的大气校正

8.1 为什么需要大气校正

传感器接收到的辐射不完全来自地表目标,还包含大气散射、吸收和路径辐射。

传感器观测辐亮度可概念化表示为:

$$

L_{\lambda}^{sensor}

L_{\lambda}^{path}

T_{\lambda}^{up}

\cdot

L_{\lambda}^{surface}

其中: * L λ s e n s o r L_{\\lambda}\^{sensor} Lλsensor为传感器观测辐亮度; * L λ p a t h L_{\\lambda}\^{path} Lλpath为路径辐射; * T λ u p T_{\\lambda}\^{up} Tλup为大气透过率; * L λ s u r f a c e L_{\\lambda}\^{surface} Lλsurface为地表辐射贡献。 #### 8.2 大气校正的真正目标 大气校正不是简单让图像"更清晰",而是尽量恢复地表自身光谱响应。 主要用于: * 多时相反射率比较; * 光谱库匹配; * 植被和水体参数反演; * 高光谱识别; * 跨传感器融合; * 长时间序列分析。 #### 8.3 辐射传输模型 基于MODTRAN等辐射传输模型的方法,需要结合: * 大气模式; * 气溶胶类型; * 水汽含量; * 地表高程; * 太阳和传感器几何; * 传感器光谱响应。 其优点是物理意义明确,缺点是参数要求较高。 #### 8.4 快速大气校正 快速方法通常依赖场景统计特征估计大气影响。 适用情况: * 缺少完整元数据; * 需要快速浏览; * 对定量精度要求不高; * 场景内部地物类型较丰富。 局限: * 对场景组成敏感; * 不适合严格跨区域比较; * 不适合精细高光谱反演; * 不能替代严格的辐射传输建模。 #### 8.5 结果检查 大气校正后应检查: * 反射率是否位于合理范围; * 植被光谱是否具有红光吸收和近红外高反射; * 水体反射率是否整体较低; * 大气吸收波段是否异常; * 多时相稳定目标是否保持一致; * 是否存在负值和异常高值。 *** ** * ** *** ### 第九章 面向对象特征提取 #### 9.1 从像元到对象 传统分类以单个像元为基本单位。高分辨率影像中,同一建筑可能包含亮面、暗面、阴影和不同材质,单像元分类容易产生椒盐噪声。 面向对象方法先对影像进行分割,再以对象为单位提取特征和分类。 #### 9.2 对象特征 常见对象特征包括: * 平均光谱; * 光谱标准差; * 纹理; * 面积; * 周长; * 长宽比; * 紧致度; * 形状指数; * 邻接关系; * 空间上下文。 #### 9.3 分割尺度 分割尺度决定对象大小: * 尺度过小:一个地物被分成多个碎片; * 尺度过大:多个地物被合并; * 尺度合适:对象边界与真实地物边界接近。 分割尺度没有全局最优值,不同地物可能需要不同尺度。 #### 9.4 适用地物 面向对象方法适合: * 建筑物; * 道路; * 农田; * 水体; * 林斑; * 工业设施; * 云与云影。 对于中低分辨率影像或边界模糊目标,面向对象方法不一定优于像元分类。 *** ** * ** *** ### 第十章 摄影测量与立体像对 #### 10.1 立体观测原理 同一地物从不同观测位置成像时,其影像位置会产生视差。视差与地物高程相关,因此可以利用立体像对恢复三维信息。 #mermaid-svg-7IE5gozHcfkb5okK{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-7IE5gozHcfkb5okK .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-7IE5gozHcfkb5okK .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-7IE5gozHcfkb5okK .error-icon{fill:#552222;}#mermaid-svg-7IE5gozHcfkb5okK .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7IE5gozHcfkb5okK .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-7IE5gozHcfkb5okK .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7IE5gozHcfkb5okK .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7IE5gozHcfkb5okK .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-7IE5gozHcfkb5okK .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7IE5gozHcfkb5okK .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7IE5gozHcfkb5okK .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7IE5gozHcfkb5okK .marker.cross{stroke:#333333;}#mermaid-svg-7IE5gozHcfkb5okK svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7IE5gozHcfkb5okK p{margin:0;}#mermaid-svg-7IE5gozHcfkb5okK .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7IE5gozHcfkb5okK .cluster-label text{fill:#333;}#mermaid-svg-7IE5gozHcfkb5okK .cluster-label span{color:#333;}#mermaid-svg-7IE5gozHcfkb5okK .cluster-label span p{background-color:transparent;}#mermaid-svg-7IE5gozHcfkb5okK .label text,#mermaid-svg-7IE5gozHcfkb5okK span{fill:#333;color:#333;}#mermaid-svg-7IE5gozHcfkb5okK .node rect,#mermaid-svg-7IE5gozHcfkb5okK .node circle,#mermaid-svg-7IE5gozHcfkb5okK .node ellipse,#mermaid-svg-7IE5gozHcfkb5okK .node polygon,#mermaid-svg-7IE5gozHcfkb5okK .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7IE5gozHcfkb5okK .rough-node .label text,#mermaid-svg-7IE5gozHcfkb5okK .node .label text,#mermaid-svg-7IE5gozHcfkb5okK .image-shape .label,#mermaid-svg-7IE5gozHcfkb5okK .icon-shape .label{text-anchor:middle;}#mermaid-svg-7IE5gozHcfkb5okK .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-7IE5gozHcfkb5okK .rough-node .label,#mermaid-svg-7IE5gozHcfkb5okK .node .label,#mermaid-svg-7IE5gozHcfkb5okK .image-shape .label,#mermaid-svg-7IE5gozHcfkb5okK .icon-shape .label{text-align:center;}#mermaid-svg-7IE5gozHcfkb5okK .node.clickable{cursor:pointer;}#mermaid-svg-7IE5gozHcfkb5okK .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-7IE5gozHcfkb5okK .arrowheadPath{fill:#333333;}#mermaid-svg-7IE5gozHcfkb5okK .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7IE5gozHcfkb5okK .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7IE5gozHcfkb5okK .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7IE5gozHcfkb5okK .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-7IE5gozHcfkb5okK .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7IE5gozHcfkb5okK .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-7IE5gozHcfkb5okK .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7IE5gozHcfkb5okK .cluster text{fill:#333;}#mermaid-svg-7IE5gozHcfkb5okK .cluster span{color:#333;}#mermaid-svg-7IE5gozHcfkb5okK div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7IE5gozHcfkb5okK .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-7IE5gozHcfkb5okK rect.text{fill:none;stroke-width:0;}#mermaid-svg-7IE5gozHcfkb5okK .icon-shape,#mermaid-svg-7IE5gozHcfkb5okK .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7IE5gozHcfkb5okK .icon-shape p,#mermaid-svg-7IE5gozHcfkb5okK .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-7IE5gozHcfkb5okK .icon-shape .label rect,#mermaid-svg-7IE5gozHcfkb5okK .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7IE5gozHcfkb5okK .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-7IE5gozHcfkb5okK .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-7IE5gozHcfkb5okK :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 立体影像与传感器模型 连接点提取 相对定向 立体匹配 三维点生成 点云或DSM 滤波与编辑 DEM、等高线或正射影像 #### 10.2 RPC模型 高分辨率卫星影像常使用RPC描述地面坐标与影像坐标之间的关系。 RPC是一种通用近似模型,可以在不公开严格传感器模型的情况下完成几何定位。 #### 10.3 地面控制点 控制点应满足: * 影像中清晰可辨; * 参考坐标准确; * 分布均匀; * 高程可靠; * 避开变化区域; * 避开阴影和水边。 控制点质量通常比数量更重要。 #### 10.4 DEM、DSM和DTM | 名称 | 基本含义 | 是否包含建筑和植被 | |-----|----------|-----------| | DSM | 数字表面模型 | 包含 | | DTM | 数字地形模型 | 通常不包含 | | DEM | 数字高程模型统称 | 需结合产品说明判断 | #### 10.5 正射校正 正射校正使用传感器模型、控制点和DEM消除: * 传感器姿态误差; * 地球曲率影响; * 地形起伏引起的位移; * 观测角度造成的几何变形。 正射影像应具有统一比例尺和较可靠的地理定位,适合GIS叠加和制图。 *** ** * ** *** ### 第十一章 LiDAR点云处理 #### 11.1 点云数据结构 单个LiDAR点通常包含: * X X X、 Y Y Y、 Z Z Z坐标; * 回波强度; * 回波序号; * 分类编码; * 扫描角; * GPS时间; * 颜色。 点云是非规则离散数据,不能直接等同于栅格。 #### 11.2 地面点分类 生成DEM的关键是从点云中分离地面点。 常见方法包括: * 逐步加密三角网; * 坡度约束; * 形态学滤波; * 局部最低点; * 布料模拟; * 机器学习分类。 山区、密林和复杂建筑区的地面分类更困难。 #### 11.3 点云衍生产品 点云可以生成: * DEM; * DSM; * 冠层高度模型; * 建筑轮廓; * 电力线; * 树木位置和高度; * 等高线; * 点密度图。 冠层高度模型通常计算为: C H M = D S M − D E M CHM=DSM-DEM CHM=DSM−DEM #### 11.4 点云分类误差 误差可能来自: * 点密度不足; * 多路径反射; * 低矮植被; * 陡坡; * 建筑边缘; * 水面; * 地面点误判。 因此,自动分类后仍需要抽样检查和局部编辑。 *** ** * ** *** ### 第十二章 SAR与SARscape #### 12.1 SAR影像的观测特性 SAR通过主动发射微波并接收后向散射信号成像,具有全天时、全天候能力。 SAR影像亮度受到以下因素影响: * 地表粗糙度; * 含水量; * 入射角; * 极化方式; * 地物结构; * 雷达波长; * 坡向。 SAR中的亮暗不是地物可见光颜色,而是后向散射强弱。 #### 12.2 斑点噪声 SAR斑点来自相干成像中大量散射体的相位叠加。 常见处理方法: * 多视处理; * Lee滤波; * Frost滤波; * Gamma MAP; * 非局部均值; * 时间序列滤波。 过度滤波会损失边缘和纹理。 #### 12.3 InSAR干涉测量 干涉相位可表示为: ##

\phi_{int}

\phi_{flat}

\phi_{topo}

\phi_{defo}

\phi_{atm}

\phi_{noise}

$$

其中:

  • ϕ f l a t \phi_{flat} ϕflat为平地相位;
  • ϕ t o p o \phi_{topo} ϕtopo为地形相位;
  • ϕ d e f o \phi_{defo} ϕdefo为形变相位;
  • ϕ a t m \phi_{atm} ϕatm为大气延迟;
  • ϕ n o i s e \phi_{noise} ϕnoise为噪声。

形变反演需要去除平地、地形、大气和轨道误差。仅凭干涉条纹不能直接判断真实形变。

12.4 SARscape的功能范围

SARscape通常覆盖:

  • 雷达强度处理;
  • 辐射定标;
  • 地形校正;
  • 干涉处理;
  • 差分干涉;
  • 时序InSAR;
  • 极化分析;
  • DEM提取;
  • 地表形变监测。

第十三章 ENVI服务化与企业级处理

13.1 从桌面工具到服务

传统ENVI工作流在桌面端执行。服务化则把遥感模型和数据部署在服务器中,由客户端通过网络调用。
#mermaid-svg-lzPuVHPPHsIJRgyF{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-lzPuVHPPHsIJRgyF .error-icon{fill:#552222;}#mermaid-svg-lzPuVHPPHsIJRgyF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lzPuVHPPHsIJRgyF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lzPuVHPPHsIJRgyF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lzPuVHPPHsIJRgyF .marker.cross{stroke:#333333;}#mermaid-svg-lzPuVHPPHsIJRgyF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lzPuVHPPHsIJRgyF p{margin:0;}#mermaid-svg-lzPuVHPPHsIJRgyF .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster-label text{fill:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster-label span{color:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster-label span p{background-color:transparent;}#mermaid-svg-lzPuVHPPHsIJRgyF .label text,#mermaid-svg-lzPuVHPPHsIJRgyF span{fill:#333;color:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF .node rect,#mermaid-svg-lzPuVHPPHsIJRgyF .node circle,#mermaid-svg-lzPuVHPPHsIJRgyF .node ellipse,#mermaid-svg-lzPuVHPPHsIJRgyF .node polygon,#mermaid-svg-lzPuVHPPHsIJRgyF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lzPuVHPPHsIJRgyF .rough-node .label text,#mermaid-svg-lzPuVHPPHsIJRgyF .node .label text,#mermaid-svg-lzPuVHPPHsIJRgyF .image-shape .label,#mermaid-svg-lzPuVHPPHsIJRgyF .icon-shape .label{text-anchor:middle;}#mermaid-svg-lzPuVHPPHsIJRgyF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-lzPuVHPPHsIJRgyF .rough-node .label,#mermaid-svg-lzPuVHPPHsIJRgyF .node .label,#mermaid-svg-lzPuVHPPHsIJRgyF .image-shape .label,#mermaid-svg-lzPuVHPPHsIJRgyF .icon-shape .label{text-align:center;}#mermaid-svg-lzPuVHPPHsIJRgyF .node.clickable{cursor:pointer;}#mermaid-svg-lzPuVHPPHsIJRgyF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-lzPuVHPPHsIJRgyF .arrowheadPath{fill:#333333;}#mermaid-svg-lzPuVHPPHsIJRgyF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lzPuVHPPHsIJRgyF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lzPuVHPPHsIJRgyF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lzPuVHPPHsIJRgyF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-lzPuVHPPHsIJRgyF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lzPuVHPPHsIJRgyF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster text{fill:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF .cluster span{color:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lzPuVHPPHsIJRgyF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-lzPuVHPPHsIJRgyF rect.text{fill:none;stroke-width:0;}#mermaid-svg-lzPuVHPPHsIJRgyF .icon-shape,#mermaid-svg-lzPuVHPPHsIJRgyF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lzPuVHPPHsIJRgyF .icon-shape p,#mermaid-svg-lzPuVHPPHsIJRgyF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-lzPuVHPPHsIJRgyF .icon-shape .label rect,#mermaid-svg-lzPuVHPPHsIJRgyF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lzPuVHPPHsIJRgyF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-lzPuVHPPHsIJRgyF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-lzPuVHPPHsIJRgyF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Web、移动端或桌面客户端
HTTP请求
遥感分析服务
服务器端影像与模型
处理结果

13.2 服务化的意义

服务化可以实现:

  • 统一部署算法;
  • 避免客户端安装复杂软件;
  • 使用服务器硬件资源;
  • 支持并行和分布式处理;
  • 按需生成遥感产品;
  • 记录处理日志;
  • 与业务系统集成。

13.3 服务化不等同于云原生

传统服务化通常是把桌面算法放到服务器执行。现代云原生遥感还强调:

  • 对象存储;
  • COG;
  • STAC;
  • 容器化;
  • 弹性计算;
  • 数据就近计算;
  • 工作流编排;
  • 自动伸缩。

二者都属于远程处理,但系统架构和数据组织方式并不完全相同。


第十四章 ENVI中的系统设置与性能

14.1 数据管理设置

常见设置包括:

  • 打开数据后是否自动显示;
  • 默认RGB波段;
  • 新影像是否清空视图;
  • 是否自动启动数据管理器;
  • 多数据集的显示和管理方式。

14.2 显示设置

可设置:

  • 默认缩放因子;
  • 缩放插值方法;
  • 鼠标交互方式;
  • 经纬度显示格式;
  • 指北针;
  • 图形加速。

显示插值主要影响屏幕效果:

  • 最近邻适合分类图;
  • 双线性适合连续影像;
  • 三次卷积适合高质量显示。

14.3 缓存与内存

缓存可以减少重复磁盘读取,但并不是越大越好。

需要综合考虑:

  • 物理内存;
  • 影像大小;
  • 波段数量;
  • 并行线程;
  • 临时文件;
  • 其他软件占用。

若缓存过大,操作系统可能频繁使用交换空间,反而降低性能。

14.4 GPU与并行计算

启用图形加速通常只影响显示交互,不代表所有算法都会使用GPU。

算法是否支持GPU,取决于:

  • 工具实现方式;
  • 软件版本;
  • 是否调用深度学习框架;
  • 显卡和驱动;
  • 数据规模。

第十五章 ENVI数据质量检查

15.1 第一轮检查

数据打开后应首先检查:

  • 行列数;
  • 波段数;
  • 波段顺序;
  • 数据类型;
  • 空间范围;
  • 坐标系;
  • NoData;
  • 像元值范围;
  • 条带和坏线;
  • 元数据一致性。

15.2 直方图检查

直方图可以帮助发现:

  • 饱和像元;
  • 异常极值;
  • 整体偏暗或偏亮;
  • NoData混入;
  • 数据截断;
  • 动态范围异常。

15.3 光谱曲线检查

光谱曲线可以用于判断:

  • 波段顺序是否正确;
  • 反射率缩放是否正确;
  • 大气吸收波段是否异常;
  • 植被、水体和裸地光谱是否符合基本规律;
  • 某些波段是否存在噪声。

15.4 空间参考检查

需要检查:

  • 地理坐标系;
  • 投影坐标系;
  • 基准面;
  • 中央经线;
  • 分带;
  • 单位;
  • 像元大小;
  • 左上角坐标;
  • 旋转参数。

空间参考错误会导致影像无法与GIS数据正确叠加。


第十六章 ENVI工作流的可复现性

16.1 为什么图形界面操作难以复现

图形界面容易出现:

  • 参数遗忘;
  • 工具顺序不明确;
  • 中间文件混乱;
  • 文件版本不清;
  • 操作者差异;
  • 处理日志缺失。

16.2 应记录的内容

应记录:

  • 输入文件;
  • 数据版本;
  • 软件版本;
  • 工具名称;
  • 参数;
  • 中间成果;
  • 输出路径;
  • 坐标系;
  • 处理时间;
  • 操作者;
  • 质量检查结果。

16.3 自动化处理

批量任务应尽量转化为:

  • IDL脚本;
  • ENVI Task;
  • Python脚本;
  • 模型流程;
  • 服务接口;
  • 容器化任务。

可复现性不仅用于科研复核,也适用于数据更新、成果审计和业务交接。


第十七章 综合案例:从影像读取到分类成果

17.1 问题定义

以某区域土地覆盖分类为例,目标是生成林地、耕地、水体、建设用地和裸地分类成果。

17.2 数据准备

需要准备:

  • 多光谱影像;
  • 影像元数据;
  • 行政区边界;
  • 训练样本;
  • 独立验证样本;
  • DEM或其他辅助数据。

17.3 技术路线

#mermaid-svg-KffIwsLurEMa3702{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-KffIwsLurEMa3702 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-KffIwsLurEMa3702 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-KffIwsLurEMa3702 .error-icon{fill:#552222;}#mermaid-svg-KffIwsLurEMa3702 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KffIwsLurEMa3702 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-KffIwsLurEMa3702 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KffIwsLurEMa3702 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KffIwsLurEMa3702 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-KffIwsLurEMa3702 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KffIwsLurEMa3702 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KffIwsLurEMa3702 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KffIwsLurEMa3702 .marker.cross{stroke:#333333;}#mermaid-svg-KffIwsLurEMa3702 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KffIwsLurEMa3702 p{margin:0;}#mermaid-svg-KffIwsLurEMa3702 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-KffIwsLurEMa3702 .cluster-label text{fill:#333;}#mermaid-svg-KffIwsLurEMa3702 .cluster-label span{color:#333;}#mermaid-svg-KffIwsLurEMa3702 .cluster-label span p{background-color:transparent;}#mermaid-svg-KffIwsLurEMa3702 .label text,#mermaid-svg-KffIwsLurEMa3702 span{fill:#333;color:#333;}#mermaid-svg-KffIwsLurEMa3702 .node rect,#mermaid-svg-KffIwsLurEMa3702 .node circle,#mermaid-svg-KffIwsLurEMa3702 .node ellipse,#mermaid-svg-KffIwsLurEMa3702 .node polygon,#mermaid-svg-KffIwsLurEMa3702 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-KffIwsLurEMa3702 .rough-node .label text,#mermaid-svg-KffIwsLurEMa3702 .node .label text,#mermaid-svg-KffIwsLurEMa3702 .image-shape .label,#mermaid-svg-KffIwsLurEMa3702 .icon-shape .label{text-anchor:middle;}#mermaid-svg-KffIwsLurEMa3702 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-KffIwsLurEMa3702 .rough-node .label,#mermaid-svg-KffIwsLurEMa3702 .node .label,#mermaid-svg-KffIwsLurEMa3702 .image-shape .label,#mermaid-svg-KffIwsLurEMa3702 .icon-shape .label{text-align:center;}#mermaid-svg-KffIwsLurEMa3702 .node.clickable{cursor:pointer;}#mermaid-svg-KffIwsLurEMa3702 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-KffIwsLurEMa3702 .arrowheadPath{fill:#333333;}#mermaid-svg-KffIwsLurEMa3702 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-KffIwsLurEMa3702 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-KffIwsLurEMa3702 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KffIwsLurEMa3702 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-KffIwsLurEMa3702 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KffIwsLurEMa3702 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-KffIwsLurEMa3702 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-KffIwsLurEMa3702 .cluster text{fill:#333;}#mermaid-svg-KffIwsLurEMa3702 .cluster span{color:#333;}#mermaid-svg-KffIwsLurEMa3702 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-KffIwsLurEMa3702 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-KffIwsLurEMa3702 rect.text{fill:none;stroke-width:0;}#mermaid-svg-KffIwsLurEMa3702 .icon-shape,#mermaid-svg-KffIwsLurEMa3702 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KffIwsLurEMa3702 .icon-shape p,#mermaid-svg-KffIwsLurEMa3702 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-KffIwsLurEMa3702 .icon-shape .label rect,#mermaid-svg-KffIwsLurEMa3702 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KffIwsLurEMa3702 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-KffIwsLurEMa3702 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-KffIwsLurEMa3702 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 读取影像与元数据
质量检查
辐射和大气处理
裁剪与波段组合
指数和纹理构建
样本采集
分类模型
分类后处理
独立精度评价
栅格转矢量
GIS统计与制图

17.4 关键检查点

数据读取
  • 波段顺序正确;
  • 反射率缩放正确;
  • 坐标系正确;
  • NoData正确。
样本
  • 类别定义明确;
  • 样本覆盖类内差异;
  • 训练与验证空间独立;
  • 避免样本集中在典型区域。
分类
  • 记录分类器参数;
  • 检查类别概率;
  • 分析主要混淆类别;
  • 避免过度后处理。
成果
  • 使用独立验证样本;
  • 输出混淆矩阵;
  • 检查面积统计;
  • 检查矢量拓扑;
  • 记录数据和模型版本。

第十八章 常见误区

18.1 影像能够显示就表示读取正确

错误。波段顺序、字节顺序、数据类型和坐标仍可能错误。

18.2 文件后缀决定数据格式

错误。真正格式由内部结构决定,仅修改后缀不能完成格式转换。

18.3 显示拉伸后的图像可以直接定量分析

错误。显示拉伸只用于视觉表达,定量分析应使用原始DN、辐亮度、反射率或物理参数。

18.4 自动化工具输出就是可靠结果

错误。自动化工具仍依赖输入数据、参数和适用条件。

18.5 大气校正后图像更亮就说明效果更好

错误。应检查反射率范围、光谱形状和跨时相一致性。

18.6 面向对象方法一定优于像元分类

错误。其优势依赖空间分辨率、对象边界和分割尺度。

18.7 SAR暗区一定是水体

错误。阴影、低粗糙度地表和低风速海面也可能表现为暗区。

18.8 ENVI输出栅格可以直接作为业务成果

错误。还需要精度评价、GIS整理、属性设计和质量检查。


第十九章 术语表

术语 说明
ENVI 面向遥感影像处理与分析的软件平台
IDL 面向数组和矩阵运算的交互式数据语言
DN 传感器记录的数字量化值
Header 描述二进制栅格结构的头文件
BSQ 按波段顺序存储
BIL 按行交叉存储
BIP 按像元交叉存储
GeoTIFF 包含地理参考信息的TIFF格式
RPC 有理多项式系数传感器模型
DEM 数字高程模型
DSM 数字表面模型
DTM 数字地形模型
LiDAR 激光雷达
SAR 合成孔径雷达
InSAR 干涉合成孔径雷达
大气校正 削弱大气吸收和散射影响的处理
面向对象分类 以分割对象而非单像元为基本单位的分类
斑点噪声 SAR相干成像产生的颗粒状噪声
REST服务 通过HTTP接口调用远程算法或数据的服务方式
NoData 表示无有效观测值的特殊像元值

相关推荐
非凸科技1 小时前
非凸智能APP
人工智能
土星云SaturnCloud2 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
江畔柳前堤2 小时前
系统的本质——从LTI系统到神经网络
人工智能·深度学习·神经网络·机器学习·计算机视觉·数据挖掘·语音识别
HackTwoHub2 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
中电金信2 小时前
WAIC 2026媒体聚焦:中电金信的AI工程化思考与实践
人工智能
冬奇Lab2 小时前
码库知识库系列(03):代码 Embedding 策略——原始代码反而比注释增强更好
人工智能
冬奇Lab2 小时前
开源项目第172期:agentOS — 以库的形式给 AI Agent 一个操作系统,冷启动 92x 更快、内存 47x 更少
人工智能·开源·agent
大橙子打游戏2 小时前
make-goal:把长期 AI 任务从聊天记录里解放出来
人工智能
0566463 小时前
Python康复训练——常用标准库
开发语言·python·学习