遥感软件操作综合实习全流程:从数据预处理到信息提取与精度评价
简介这份PPT面向遥感、地理信息及相关专业的学生与初学者用于ENVI软件操作的综合实习教学帮助读者系统掌握遥感图像处理的基本流程与核心技能。资源包共1个PPT文件大小约2.46MB内容以图文步骤形式呈现便于课堂演示与自学对照。已有99人学习下载适合作为课程配套资料或实验参考。内容覆盖ENVI入门操作、图像增强、多光谱变换、波段运算及遥感图像预处理四大模块具体包括图像打开与显示、像素信息查看、光谱曲线与链接显示、主成分变换、Band Math运算、几何配准、空间重采样、矢量叠加与掩膜运算等关键操作并配有南京地区TM数据、全球DEM及全国省级行政区矢量文件等实习数据说明。读者可借此快速熟悉ENVI界面与菜单路径理解各处理环节的参数含义与操作逻辑为后续遥感数据分析与应用打下扎实基础。1. 遥感软件操作综合实习从一份 PPT 到能跑通的完整作业流很多人第一次拿到“遥感软件操作综合实习.ppt”这类任务时第一反应是打开 PPT 照着截图点一遍菜单结果换一张影像就全乱套。这个标题背后真正要解决的不是“会不会点按钮”而是能不能把一份实习任务拆成可复现的处理链数据读入、波段组合、几何校正、辐射定标、分类或反演、精度评价、出图归档。它适合遥感、测绘、地信专业的本科生和刚入行的工程人员也适合需要把 ENVI、ERDAS、ArcGIS 或 QGIS 串起来交作业的人。核心诉求很直接给我一套能照着做、参数能改、出错能查的流程而不是一份只能看的演示文稿。2. 遥感软件操作综合实习的任务拆解与软件选型2.1 一份实习 PPT 通常藏了哪五类操作把常见的遥感软件操作综合实习翻一遍任务基本逃不出五类。第一类是数据准备包括多光谱影像、全色影像、DEM、矢量边界和样本点。第二类是预处理重点是辐射定标、大气校正、几何精校正和影像裁剪。第三类是增强与变换比如波段组合、主成分分析、植被指数计算。第四类是信息提取可能是监督分类、非监督分类也可能是水体、建筑、植被的阈值提取。第五类是精度评价与制图包括混淆矩阵、Kappa 系数、专题图整饰。这五类操作在不同软件里的菜单名不一样但数据流是固定的。我一般会先画一张数据流图把每一步的输入输出写清楚再决定用哪个软件。比如辐射定标和大气校正ENVI 的 FLAASH 或 QUAC 比较顺手几何精校正ArcGIS 的 Georeferencing 工具对新手更友好监督分类QGIS 的 Semi-Automatic Classification Plugin 免费且够用。选型不是比谁高级而是比谁能让中间结果可检查、可回退。提示如果实习 PPT 里只写了“进行大气校正”没有给参数优先查影像的元数据文件里面通常有增益、偏移、太阳高度角和成像时间。2.2 软件选型的三个硬指标可复现、可检查、可回退可复现的意思是同一套参数换一台机器还能跑出接近的结果。ENVI 的 .hdr 头文件、ArcGIS 的 .xml 元数据、QGIS 的 .qml 样式文件都是复现的关键。可检查的意思是每一步都能看到中间影像的统计值比如辐射定标后 DN 值应该变成辐射亮度值量级会从几千变成几十。可回退的意思是别在原始数据上直接改每步输出新文件命名带步骤号。我见过太多人把原始影像直接做裁剪结果后面发现校正参数不对想重来都没有后悔药。正确做法是建一个工程目录按 01_raw、02_radiance、03_reflectance、04_clip、05_class 这样分层。每个文件夹里放对应的影像和一份参数记录文本。参数记录不用很复杂写清楚软件版本、工具名、关键参数和输出文件名就行。这样即使隔两周再回头看也能知道当时改了什么。2.3 用 Python 批量检查实习数据完整性在动手点软件之前先花十分钟确认数据有没有缺文件、波段数对不对、坐标系是不是一致。下面这段脚本用 rasterio 和 glob 快速扫一遍目录输出每个影像的波段数、尺寸和 CRS。import glob import rasterio # 扫描 raw 目录下所有 tif 影像 files glob.glob(./01_raw/*.tif) for f in files: with rasterio.open(f) as src: print(f文件: {f}) print(f 波段数: {src.count}) print(f 尺寸: {src.width} x {src.height}) print(f 坐标系: {src.crs}) print(f 数据类型: {src.dtypes[0]}) print(- * 40)逻辑说明这段代码不修改任何数据只读元信息。参数说明glob.glob的路径按你的实际目录改src.count是波段数多光谱影像通常是 4 或 7src.crs如果显示 None说明缺少投影信息后面做几何校正会翻车。跑完这一步你就能知道哪些影像需要先补投影、哪些波段数不对。3. 预处理链辐射定标、大气校正与几何精校正的落地参数3.1 辐射定标把 DN 值变成有物理意义的辐射亮度辐射定标是很多实习 PPT 里一笔带过的步骤但它决定了后面大气校正和反演的成败。以 Landsat 8 为例定标公式是L gain * DN offset。gain 和 offset 在 MTL 文件里对应 RADIANCE_MULT_BAND_x 和 RADIANCE_ADD_BAND_x。ENVI 里用 Radiometric Calibration 工具选择 Radiance 输出自动读取元数据。如果没有元数据就得手动填。手动填的时候注意单位。Landsat 8 的 gain 单位是 W/(m²·sr·μm)offset 也是。填错量级后面反射率会大得离谱。定标后检查统计值辐射亮度一般在 0 到 100 之间如果还是几千说明没定标成功。这一步的输出建议命名为 02_radiance保留原始头文件。3.2 大气校正FLAASH 参数怎么填才不报错FLAASH 是 ENVI 里最常用的大气校正模块但参数多新手容易卡在“为什么一直报错”。关键参数有六个传感器类型、影像中心经纬度、成像时间、大气模型、气溶胶模型、能见度。传感器类型按影像选Landsat 8 OLI 就选 Landsat-8 OLI。中心经纬度从元数据读成像时间精确到分钟。大气模型按纬度和季节选中纬度夏天选 Mid-Latitude Summer。气溶胶模型城市区域选 Urban能见度一般填 40 公里。如果报错“ACC error”通常是波段范围没设对。FLAASH 需要指定哪些波段参与校正Landsat 8 的多光谱波段是 1 到 7但波段 8 是全色不能放进去。另外FLAASH 要求输入是 BIL 或 BIP 格式BSQ 格式要先转换。转换用 ENVI 的 Convert Interleave 工具输出 BIL。这一步的输出是 03_reflectance反射率值在 0 到 1 之间乘以 10000 就是常见的整数反射率。3.3 几何精校正用地面控制点把偏移压到一个像元内几何精校正的难点不是点工具而是选控制点。控制点要选在道路交叉口、桥梁端点、建筑角点这些位置明确的地方不要选在农田或水面。ENVI 里用 Image-to-Map RegistrationArcGIS 里用 Georeferencing。控制点数量至少 15 个均匀分布RMS 误差控制在 0.5 个像元以内。如果 RMS 超过 1检查是不是有某个点明显偏了删掉重选。重采样方法选三次卷积虽然慢一点但光谱保真度比最近邻好。最近邻适合分类图不适合连续反射率影像。校正后输出 04_geo坐标系和参考影像一致。检查方法是把校正后的影像和参考影像叠加看道路边缘有没有重影。如果有说明控制点还不够准。注意几何校正不要和辐射校正顺序颠倒。先做辐射定标和大气校正再做几何校正否则重采样会改变像元值大气校正的参数就对不上了。4. 信息提取监督分类、植被指数与精度评价的实操细节4.1 监督分类样本点怎么选才不白干监督分类的核心不是分类器而是样本点。样本点要满足三个条件代表性、纯度和数量。代表性是指每类样本要覆盖该类的地物变化比如植被要包括林地、草地、农田。纯度是指样本像元内不能混其他地物最好在影像上放大到能看清纹理再选。数量上每类至少 50 个样本总样本数不少于 500。ENVI 里用 ROI Tool 选样本选完后计算可分离性。Jeffries-Matusita 距离大于 1.8 说明两类可分小于 1.0 说明混了要重新选。分类器选最大似然法参数用默认即可。输出分类图后用 Majority/Minority Analysis 做一次 3x3 的众数滤波去掉椒盐噪声。但滤波会改变小图斑如果实习要求保留细节就别滤。4.2 植被指数计算NDVI 的波段运算与阈值分割NDVI 是最常用的植被指数公式是 (NIR - Red) / (NIR Red)。Landsat 8 里 NIR 是波段 5Red 是波段 4。ENVI 里用 Band Math输入(float(b5)-b4)/(b5b4)。注意要加 float否则整数除法会丢小数。计算后 NDVI 值在 -1 到 1 之间植被一般在 0.2 以上。阈值分割用 Density Slice 或 Band Math 加条件判断。比如(b1 gt 0.2)得到二值图。阈值不是固定的不同影像、不同季节都不一样。我一般会先看 NDVI 直方图找谷底作为阈值。如果直方图是双峰谷底就是分界点。这一步的输出是植被二值图可以和监督分类结果做交叉验证。4.3 精度评价混淆矩阵与 Kappa 系数的正确读法精度评价用混淆矩阵ENVI 里用 Confusion Matrix Using Ground Truth ROIs。输入分类图和验证样本输出总体精度、生产者精度、用户精度和 Kappa 系数。总体精度是正确分类像元除以总像元一般要求 85% 以上。Kappa 系数排除随机一致的概率0.8 以上算很好0.6 到 0.8 算一般。读混淆矩阵要看两类错误漏分和错分。漏分是某类被分到其他类看生产者精度错分是其他类被分到某类看用户精度。如果某一类精度特别低回去检查样本点是不是选少了或者该类和其他类光谱太像。改进方法是增加样本、加入纹理特征或换分类器。5. 避坑与排查遥感软件操作综合实习里最容易翻车的五件事5.1 影像打开全是黑屏或条纹现象ENVI 或 ArcGIS 打开影像后显示全黑或者有规律条纹。原因通常是波段顺序不对或数据类型不匹配。比如把 BSQ 格式当成 BIL 打开就会出现条纹。解决先看元数据里的 interleave 类型用 Convert Interleave 转成正确格式。如果是显示问题在 ENVI 里用 Stretch 调整拉伸方式选 2% 线性拉伸。5.2 大气校正后反射率大于 1 或为负现象FLAASH 输出反射率出现大于 1 或负值。原因辐射定标参数填错或者大气模型选错。解决检查 gain 和 offset 的单位确认成像时间和太阳高度角。如果是个别像元为负可能是云或水体用 Band Math 把负值设为 0。如果大面积异常重新做辐射定标。5.3 几何校正后影像和矢量对不上现象校正后的影像和边界矢量有明显偏移。原因控制点选在变化的地物上或者坐标系不一致。解决重新选控制点优先选道路交叉口和建筑角点。检查矢量文件的坐标系必要时用 Project Raster 统一投影。如果偏移是系统性的可以用 Shift 工具整体平移。5.4 监督分类结果一片糊现象分类图看起来像随机噪声或者所有类混在一起。原因样本点纯度不够或者波段选择不合理。解决回到 ROI Tool 检查样本计算可分离性。如果某两类 JM 距离小于 1.0合并或重新选。波段选择上不要只用可见光加入近红外和短波红外。5.5 精度评价 Kappa 系数低得离谱现象总体精度不到 60%Kappa 小于 0.4。原因验证样本和训练样本重叠或者验证样本太少。解决验证样本必须独立于训练样本最好从高分辨率影像或实地数据来。数量上每类至少 30 个。如果还是低检查分类图有没有做滤波滤波会改变边界像元。提示所有排查都遵循一个原则——先看中间结果再看最终结果。中间结果不对后面怎么调都是白费。6. 从实习作业到可复用工程参数模板与批量处理技巧把一次实习作业变成可复用的工程关键是参数模板和批量处理。我习惯在 ENVI 里把常用工具的参数保存成 .txt 模板下次直接加载。比如 FLAASH 的参数模板换影像时只改中心经纬度和成像时间。ArcGIS 里用 ModelBuilder 把裁剪、投影、重采样串成模型导出成 .tbx 工具箱。批量处理用 Python 的 rasterio 和 numpy 就能做很多事。下面这段代码演示批量计算 NDVI 并保存适合有几十景影像的情况。import glob import rasterio import numpy as np files glob.glob(./04_geo/*.tif) for f in files: with rasterio.open(f) as src: # Landsat 8: Red4, NIR5注意 rasterio 波段从 1 开始 red src.read(4).astype(np.float32) nir src.read(5).astype(np.float32) # 避免除零 ndvi np.where((nir red) 0, 0, (nir - red) / (nir red)) # 复制元数据并更新数据类型 meta src.meta.copy() meta.update(dtyperasterio.float32, count1) out_name f.replace(04_geo, 05_ndvi).replace(.tif, _ndvi.tif) with rasterio.open(out_name, w, **meta) as dst: dst.write(ndvi, 1) print(f已输出: {out_name})逻辑说明这段代码遍历 04_geo 目录下的所有 tif读取红和近红外波段计算 NDVI保存到 05_ndvi 目录。参数说明src.read(4)和src.read(5)对应 Landsat 8 的波段号如果你用的是其他传感器要改波段索引。np.where处理除零避免出现 inf。meta.update把波段数改成 1数据类型改成 float32。跑完后检查输出影像的统计值NDVI 应该在 -1 到 1 之间。最后一个技巧是版本控制。遥感处理不像写代码但参数和脚本同样需要记录。我一般用 Git 管理 Python 脚本和参数模板数据文件用 .gitignore 排除。每次处理前 commit 一次出问题可以回退。这个习惯帮我省了很多重复劳动也让我在交实习报告时能说清楚每一步是怎么来的。希望帮到你。本文还有配套的精品资源点击获取