2026/10/30 1:48:20

ENVI处理Landsat 8遥感影像全流程与避坑指南

ENVI处理Landsat 8遥感影像全流程与避坑指南 简介这份ENVI遥感影像处理实验报告面向地信、遥感及相关专业学生与初学者围绕Landsat8多光谱影像的系统处理流程展开可用于课程实习参考、实验报告撰写借鉴与操作复盘。资源包仅含1个docx文档大小约7.92MB正文以文字配截图和结果图的方式组织按实验目的、数据概况、图像裁剪、辐射定标与反射率计算、大气校正比较、图像融合、水体提取与植被覆盖度、温度反演、监督/非监督分类及土地利用变化等模块递进说明。其中融合部分涵盖Brovey、HSV、主成分变换及定性与定量对比温度反演涉及大气校正法和单窗算法便于读者理解参数设置、处理步骤与结果判读之间的对应关系文末还附实习心得体会。该资料已有1245人学习适合需要一套完整流程样例和结果对照的遥感实习场景。1. 为什么一份遥感实习报告值得拆开看带过几轮地信和遥感方向的实习之后我发现一个规律软件操作表谁都能背真正卡人的是参数怎么填、填错之后影像会变成什么样。这份 ENVI 处理 Landsat 8 的实习报告从头到尾串起了波段组合、矢量裁剪、辐射定标、FLAASH 大气校正、全色融合、水体与植被覆盖度提取、温度反演、非监督与监督分类、土地利用变化监测这条完整链路每个环节都配了参数界面和结果图。它适合两类人一类是第一次上手 ENVI、需要照着跑一遍的地信遥感学生另一类是按钮都会点、但说不清为什么这么点、结果不对时不知道往哪查的从业者。下面按我自己复现这套流程的顺序拆。2. 波段组合与裁剪把研究区钉在同一套像元网格上Landsat 8 一景数据解压出来是一堆独立 TIF外加一个 MTL 头文件。很多人拿到手第一反应是直接双击打开最大那个然后在显示窗口里乱点。这套流程的第一步恰恰不能这么干因为它后面所有参数——中心波长、增益偏置、FLAASH 的波段对应关系——都依赖「第几个波段是什么」这个顺序。顺序定死之前任何一步都不能往下走。2.1 Layer Stacking 的波段顺序为什么必须在第一步定死ENVI 的 Layer Stacking 本质是把若干单波段栅格按你给的顺序拼成一个多波段文件。拼完之后ENVI 只记得「波段 1、波段 2……」不记得它原来是 Coastal aerosol 还是 Blue。后面在 Edit Header 里填中心波长时你填的第 1 个值就会落到波段 1 上。一旦 Layer Stacking 的顺序乱了波长和实际光谱就对不上FLAASH 会拿着错误的光谱响应去解算大气参数出来的反射率整体偏色而且这种偏色是系统性的你换多少个气溶胶模型都救不回来。我一般按下面这个顺序做File → Open打开解压目录只选 B1 到 B8 这 8 个 TIFBQA、B9、B10、B11 全部不要选。Basic Tools → Layer Stacking在Import File里逐个加入加完点Reorder Files确认列表从上到下是 B1、B2、B3、B4、B5、B6、B7、B8。输出文件名带上传感器和日期比如LS8_2019_stack.dat输出格式保持 ENVI 标准OK。这里有两个容易被忽略的点。B8 是全色波段空间分辨率 15 米和其余 30 米波段放在一起时Layer Stacking 会把它重采样到 30 米这一步不影响后续融合因为融合工具会自己再处理但如果你打算用 B8 单独做锐化最好把它单独另存一份 15 米的。B10 和 B11 是热红外原始分辨率 100 米绝对不能混进这个栈里——一旦混进去ENVI 会按主波段分辨率统一重采样热红外的原始像元被插值放大后面温度反演算出来的亮温是假的而且从结果图上完全看不出来。还有一种情况手上是 L1TP 产品MTL 里已经写好了各波段的RADIANCE_MULT_BAND_x和RADIANCE_ADD_BAND_x但 Layer Stacking 不回读这些系数。这意味着组合完的文件仍然是个「裸」的 DN 值文件必须手动在头文件里补波长和增益偏置否则下一步辐射定标没得做。2.2 矢量范围裁剪ArcGIS 和 ENVI 两条路怎么选研究区边界给的是一个 shp里面可能包含好几个行政区。原报告的做法是先在一个桌面 GIS 里筛出目标县、导出成独立 shapefile再拿进 ENVI 裁剪。这条路稳妥但多做了一步数据搬运。ENVI 自己也能直接吃 shp而且能把矢量转成 ROI 留在内存里后面做掩膜、选训练样本都能复用。桌面 GIS 那条路的操作是加载 shp → 打开属性表 → 按字段筛选目标行政区 → 右键图层Data → Export Data导出新 shapefile → 用ClipData Management → Clip或Extract by Mask裁影像。优点是投影转换、批量裁剪、多景统一处理都方便缺点是裁完的影像和矢量在 ENVI 里还得重新对齐一次。ENVI 那条路的操作更短但每一步的勾选项都不能错File → Open Vector File打开 shp在 Layer Manager 里能看到这个矢量图层。右键该图层 →Export Active Layer to ROIs选第一个选项把整个矢量范围转成一个 ROI。Basic Tools → Subset Data via ROIsSelect Input File选组合好的多波段文件Select ROI or EVF选刚生成的 ROI。关键两项Mask pixels outside of ROI设为YesMask Background Value设成0Pixel Subset选No不要额外做行列裁剪。Mask Background Value这个参数值得单独说。它决定了裁剪范围之外的像元填什么值。填 0 最省事但如果研究区里本身就有反射率接近 0 的地物深水体、阴影后续做统计或者掩膜时背景和真实地物会混在一起算出来的均值、面积全是错的。我的习惯是填-999或者在后续统计前先用Build Mask把 0 值区域单独排除掉。两条路线怎么选我一般按这个标准只处理一两景、后面还要在 ENVI 里做分类和统计的走 ENVI 路线ROI 能一直复用要批量处理十几景、或者需要先做投影转换和坐标统一的走桌面 GIS 路线脚本化更省事。对比项桌面 GIS 裁剪ENVI 矢量转 ROI 裁剪投影处理支持重投影、批量依赖原数据投影不转换后续复用需重新导入矢量ROI 常驻可直接选样本背景值控制工具参数里设Mask Background Value显式指定适用规模多景批处理单景精细分析2.3 裁剪完先回查三项元数据裁剪这个动作看起来无害实际上它可能悄悄改掉三样东西而这三样都会在后面某一步爆出来。第一是投影和基准面如果原始数据是 UTM/WGS-84裁完之后要确认没有被改成地理坐标经纬度否则像元大小从 30 米变成零点几度温度反演里所有跟面积、距离相关的换算全崩。第二是像元大小正常的 Subset 不会重采样但如果你在Pixel Subset里手滑填了行列数ENVI 会做一次重采样30 米可能变成 30.0001 这种诡异值。第三是波段数和波长信息裁剪不会丢波段但如果你是用Save As另存而不是 Subset头文件里的波长字段有可能被清空。回查的方式很简单右键文件 →View Metadata看Map Info里的投影字符串和Pixel Size再看Wavelength那一栏是不是还有 8 个值。这一步花不了一分钟但能省掉后面几个小时的返工。3. 辐射定标与 FLAASHDN 值到地表反射率的全链路从 DN 值到能用的地表反射率中间隔着两步先把 DN 按传感器系数换算成辐亮度再让 FLAASH 把大气的影响剥掉。这两步的参数来源都是同一个 MTL 头文件所以第一步不是打开 ENVI是打开那个 txt 文件把该抄的数抄下来。3.1 Edit Header中心波长、增益偏置、单位三件套Landsat 8 OLI 各波段的中心波长在 MTL 里没有直接给得按波段范围取中值或者直接查产品文档。常用的 8 个值如下单位是微米波段名称中心波长µmB1Coastal aerosol0.443B2Blue0.482B3Green0.561B4Red0.655B5NIR0.865B6SWIR11.609B7SWIR22.201B8Pan0.590填的时候注意 ENVI 默认单位可能是纳米必须在对话框下方把单位切到Micrometers否则 0.443 会被当成 0.443 纳米FLAASH 拿到这个数会直接报波长范围错误。填完不要急着关把 8 个值从头到尾扫一遍确认没有错位——这是最容易出错的地方因为对话框里只有一串数字没有波段名提示。增益偏置从 MTL 里读格式是RADIANCE_MULT_BAND_1 1.2xxxxE-02和RADIANCE_ADD_BAND_1 -6.xxxxxE-02这样的两行B1 到 B7 各一组。ENVI 扩展工具里的Apply Gain and Offset就是干这个的打开裁剪好的文件按波段逐个填 gain对应 MULT和 offset对应 ADD输出类型选浮点。得到的结果单位是 W/(m²·sr·µm)也就是辐亮度不是反射率这一步还没完。如果你手上是 ENVI 5.3 及以上版本Radiometric Calibration工具能一步出表观反射率省掉手动填系数的麻烦。但原报告走的是手动 Gain and Offset 这条路好处是每一步的物理量都清楚坏处是 8 个波段填 16 个数错一个就整体偏。填完之后我一般会抽查一下水体在 B5 的辐亮度应该明显低于 B4如果反了说明增益填串了波段。3.2 BSQ 转 BIL 与 FLAASH 参数逐项配置FLAASH 只吃 BIL 或 BIP 交错格式ENVI 默认输出 BSQ所以要转一次Basic Tools → Convert Interleave → BIL选辐射定标结果输出即可。这一步没有参数但别跳过直接拿 BSQ 喂给 FLAASH 会报格式不匹配。然后打开Spectral → FLAASH参数界面分三块。第一块是输入输出和几何信息第二块是大气与气溶胶第三块是多光谱波段设置。逐项说参数取值说明Input Radiance ImageBIL 辐射定标文件必须转成 BILOutput Reflectance File自定义路径输出为浮点反射率Scene Center Location自动填充读自头文件经纬度Sensor TypeLandsat-8 OLI选错会套错光谱响应函数Sensor Altitude705 kmOLI 轨道高度Pixel Size30 m与裁剪后一致Ground Elevation0.97 km研究区平均海拔需自行查证Flight Date影像获取日期不是文件生成日期Flight Time GMT格林尼治时间由SCENE_CENTER_TIME换算Atmospheric ModelMLS中纬度夏季按纬度和季节选Water RetrievalNoOLI 无专用水汽吸收波段Aerosol ModelUrban县域城区占比低时可试 RuralAerosol Retrieval2-Band (K-T)双波段反演气溶胶光学厚度Initial Visibility40 km反演失败时的兜底值时间这一项是重灾区。MTL 里有两个时间字段一个是DATE_ACQUIRED成像日期另一个是文件生成时间产品处理时间后者通常比前者晚几天甚至几周。FLAASH 用成像时间算太阳天顶角和方位角填错的话反射率整体偏暗而且这种偏差是均匀的从单张图上完全看不出来只有和标准地物光谱比对才会暴露。换算 GMT 时注意SCENE_CENTER_TIME一般带时区后缀直接取时分秒部分按 UTC 处理不要自己加减 8 小时。高程那一项也不能偷懒。原报告是查了研究区平均海拔填 0.97 km这个值影响大气上行辐射的估算填 0 会让低海拔地区的反射率被高估。如果研究区高差超过 500 米严格来说要做分区校正但实习级别用平均值够用。多光谱设置那块点开Multispectral Settings选Kaufman-Tanre Aerosol Retrieval然后在下面的波段选择框里指定两个波段短波红外选 B72.2 µm红光选 B40.66 µm这是 K-T 方法的标准搭配。有些资料会写成选 B1照抄的话反演出来的气溶胶光学厚度会偏最后反射率整体偏蓝。光谱重采样宽度保持默认 10 nm。3.3 校正结果怎么验证Z-Profile 与三类地物大气校正做完不能只看「图好不好看」因为 FLAASH 输出的反射率是浮点直接显示会自动拉伸看起来都差不多。真正有效的是抽几条光谱曲线对比。操作是Spectral → Z Profile在同一个像元位置上分别加载原图、辐射定标结果、大气校正结果看三条曲线。判断标准有三条植被红光波段B4应该是一个明显的吸收谷近红外B5是反射峰峰谷差越大越好。校正后 B5 的反射率正常在 0.25 到 0.5 之间。水体可见光区反射率低于 0.1近红外接近 0曲线整体平滑下沉。裸土从可见光到短波红外单调上升没有明显吸收特征。如果植被的 B5 反射率低于 0.2八成是气溶胶模型或者能见度设错了如果整条曲线在短波红外被压得很低检查一下 B7 有没有被误当成水汽波段参与反演。4. 融合与专题提取从全色锐化到地表温度融合这一步是整个流程里方法最多、结论最不统一的地方。同一个研究区Brovey、HSV、PC 三种变换出来的图目视效果能差出一大截定量指标又各说各话。原因不全是算法本身很多是量纲没对齐、评价口径不一致造成的假差异。4.1 全色波段的量纲对齐大气校正之后多光谱和全色波段的反射率都在 0 到 1 之间但 ENVI 的融合工具内部对输入数据的动态范围有假设如果直接拿 0 到 1 的浮点去融合输出经常是一片灰。原报告的做法是先对 B8 做一次反射率拉伸把它的数值范围拉开。我一般用Basic Tools → Stretch Data输入 B8拉伸方式选Linear 2%输出数据类型选Byte得到 0 到 255 的全色波段。多光谱那边保持浮点或者同样拉到 0 到 255关键是两边量纲要一致。这一步看起来是预处理的小动作实际上决定了融合结果能不能用——量纲不统一的融合图目视可能还行一算标准差就露馅。4.2 Brovey、HSV、PC 三种变换的操作差异三种方法在 ENVI 里都在Transform → Image Sharpening下面但输入要求不一样这是最容易卡住的地方。Brovey 只吃 RGB 三波段。操作路径是Transform → Image Sharpening → BroveySelect Low Res Input选多光谱的 B5、B4、B3或者 B4、B3、B2Select High Res Input选拉伸后的 B8重采样方式选Nearest Neighbor。最近邻能保住原始像元值不被插值污染代价是边缘有锯齿。Brovey 的数学过程是每个彩色波段乘以「高分辨率波段 / 三波段之和」这个比值所以它对高分辨率波段的动态范围很敏感B8 没拉伸好结果就整体偏暗。HSV 同样要 RGB 输入路径是Transform → Image Sharpening → HSV。它先把 RGB 转到 HSV 色彩空间用高分辨率波段替换亮度 V色度和饱和度重采样到高分辨率尺寸再转回 RGB。这个变换的问题是色相和饱和度也被一起重采样了光谱保真度不如 Brovey但目视锐度通常更好尤其建筑和道路边界更清楚。PC 变换的路径是Transform → Image Sharpening → Principal Components。它先对多光谱做主成分变换把第一主成分信息量最大、也是亮度信息最集中的那个替换成匹配过高分辨率波段再做逆变换。PC 的好处是没有波段数限制坏处是第一主成分承载了大部分光谱信息替换之后色调变化明显原报告里 PC 融合的目视效果最差颜色发艳、细节反而糊这和它第一主成分被整体换掉有直接关系。三种方法的特性对比如下方法输入限制光谱保真空间增强典型问题Brovey必须 RGB 三波段较好中等对 B8 动态范围敏感HSV必须 RGB 三波段较差较好色度被重采样PC波段数不限好中等色调偏移明显4.3 定量评价均值、标准差、信息熵、平均梯度目视解译只能定个性要写进报告还得有数。原报告用了四个指标均值、标准差、信息熵、平均梯度。均值和标准差用Basic Tools → Statistics → Compute Statistics直接出信息熵和平均梯度得自己算。信息熵衡量图像的信息丰富程度公式是 H -Σ p_i · log2(p_i)p_i 是第 i 个灰度级出现的概率。平均梯度衡量清晰度公式是 g (1/(M·N)) · Σ sqrt((ΔI_x² ΔI_y²)/2)也就是水平和垂直方向梯度平方和的均值开根。ENVI 本身不算这两个原报告是把影像导出成 ASCII 再用 MATLAB 算导出时把小数位数设成 0也就是按整数灰度级统计。我复现时把这套计算写成了一个函数比反复导 ASCII 省事function [H, AG] fusionIndex(imgPath) % 读入单波段融合影像计算信息熵与平均梯度 I imread(imgPath); if size(I, 3) 1 I rgb2gray(I); % 彩色图先转灰度 end I double(I); % 统一到 0-255 的整数灰度级否则熵会被浮点小数位虚高 I round((I - min(I(:))) ./ (max(I(:)) - min(I(:))) * 255); % 信息熵按 256 级统计概率分布 counts histcounts(I(:), -0.5:1:255.5); p counts / sum(counts); p p(p 0); % log2(0) 会出 -Inf先剔除 H -sum(p .* log2(p)); % 平均梯度 [dIdx, dIdy] gradient(I); AG mean(sqrt((dIdx.^2 dIdy.^2) / 2), all); end代码里最关键的是round那一行。如果直接把浮点反射率拿去统计熵灰度级会被细分到上千级算出来的熵虚高和别人的结果没法比。统一到 256 级之后不同融合方法之间才有可比性。另外p(p0)这一步不能省零概率项会让熵变成-Inf或者NaN。还有一个更容易翻车的点原报告表格里融合前影像的均值在 10 到 16 之间Brovey 融合后均值掉到 0.1 到 0.2HSV 融合后均值变成 63 左右。这三个数根本不在一个量纲上直接比信息熵和平均梯度是没意义的。做对比之前必须把所有影像拉到同一量化级否则结论会完全反过来。我在复现时踩过这个坑。当时算出来 HSV 的信息熵比原图高了 25%看着像提升了实际上是它用了 0 到 255 而原图用的是 0 到 1纯属量纲差异。4.4 NDWI 阈值分割与水体掩膜水体提取在这套流程里用的是归一化水体指数。Landsat 8 对应的做法是拿绿波段和近红外波段做差除和Band Math 表达式写(float(b3)-float(b5))/(float(b3)float(b5))其中 b3 是绿波段、b5 是近红外。float()不能省ENVI 的整型波段直接相减会截断成 0。算完得到一张灰度图接着在显示窗口里用Overlay → Density Slice做密度分割把 NDWI 从高到低切成若干段目视确定水陆分界的那条阈值线。原报告里阈值定在 0.2256这个数不是固定的每景影像、每个季节都不一样丰水期和枯水期能差出 0.1 以上必须逐景调整。阈值定好之后用Basic Tools → Masking → Apply Mask生成掩膜把大于阈值的像元保留其余置为背景值。这一步的坑在于背景值和真实水体的值可能撞车。原报告里就遇到了研究区边缘有条河掩膜之后河流和背景一起变成黑色因为两者都被赋成了同一个低值。解决办法是把背景值设成一个水体反射率不可能出现的位置比如-999或者在掩膜之后单独统计一下河流经过的像素值确认没被误杀。4.5 像元二分模型推植被覆盖度植被覆盖度的常用算法是像元二分模型公式是 FVC (NDVI - NDVI_soil) / (NDVI_veg - NDVI_soil)。NDVI 还是用 Band Math 算表达式(float(b5)-float(b4))/(float(b5)float(b4))。关键在两个端值的取法。理论上是纯裸土和纯植被的 NDVI但影像里很难找到绝对纯的像元工程上一般取 NDVI 累计分布的 5% 和 95% 分位数作为 NDVI_soil 和 NDVI_veg。取 5% 和 95% 是为了排除极端的阴影和水体像元干扰如果研究区水域面积大这两个分位数会被压低得改成 2% 和 98% 或者先用水体掩膜剔掉。算完之后用Band Math把结果限制在 0 到 1 之间超出范围的直接截断不要保留负值——负的覆盖度在图上会显示成很怪的颜色答辩的时候一眼就被看出来。4.6 温度反演的两条路线与参数来源温度反演有两种做法大气校正法和单窗算法前者精度高但需要实时大气剖面数据后者靠经验公式参数少但误差大一些。实习报告里两条都做了正好可以对比。第一条路是大气校正法本质是解辐射传输方程L_λ [ε·B(T_s) (1-ε)·L_down]·τ L_up。其中 L_λ 是传感器收到的辐亮度从 B10 的辐射定标结果拿τ 是大气透过率L_up 和 L_down 是上行和下行辐射这三个量 FLAASH 输出的时候会附带一个文本文件里面有逐波段的透射率和路径辐射直接抄ε 是地表比辐射率用 NDVI 阈值法估NDVI 大于 0.5 取 0.99小于 0.2 取 0.97中间按公式插值。反解出 B(T_s) 之后用普朗克函数反演温度。第二条路是单窗算法公式是 T_s [a(1-C-D) (b(1-C-D) C D)·T_sensor - D·T_a] / C其中 C ε·τD (1-τ)·[1 (1-ε)·τ]a 和 b 是常数取 -67.355351 和 0.458606T_sensor 是传感器亮温T_a 是大气平均作用温度按近地面气温估算。亮温本身还得先算T K2 / ln(K1/L_λ 1)Landsat 8 B10 的 K1 774.8853 W/(m²·sr·µm)K2 1321.0789 K这两个常数在 MTL 里也能找到。两条路的输入都是 B10 的辐亮度所以前面 Layer Stacking 时把 B10 排除掉之后这里得单独对 B10 做一次辐射定标用 B10 自己的增益偏置别拿错。算出温度之后按 5 K 一档做分级得到温度反演分级图再和土地利用分类图叠加就能看不同地类的热特征差异——建成区明显高于水体和林地这个结论在多数县域都成立。5. 避坑与排查五个让整条链白跑的细节这套流程走下来最耗时的不是操作是结果不对的时候不知道从哪查。下面五条是我复现过程中真实翻车的地方按发生概率从高到低排。现象一FLAASH 输出的影像整体偏蓝植被的近红外反射率只有 0.15 左右Z-Profile 上看不到植被应有的反射峰。原因是 Layer Stacking 时波段顺序和 Edit Header 里填的中心波长错位了。ENVI 只按序号对应不看波段名顺序一乱B5 的近红外波长就被安到了别的波段上。解决回到头文件View Metadata里核对Wavelength字段是不是 0.443、0.482、0.561、0.655、0.865、1.609、2.201、0.590 这个顺序。错了就重新 Edit Header别在 FLAASH 里调参数硬凑那是治标不治本。现象二大气校正后的反射率整体偏暗同一块植被在两景影像上的值差了 0.1 以上。原因是 FLAASH 的Flight Time GMT填成了文件生成时间不是成像时间。太阳天顶角算错辐照度就错反射率自然偏。解决打开 MTL找DATE_ACQUIRED和SCENE_CENTER_TIME两个字段用前者对应的日期和后者对应的时刻组合成 GMT 时间。填完可以反查一下研究区在北半球夏季上午成像的太阳天顶角一般在 25 到 35 度之间如果算出来是 60 度肯定是时间填错了。现象三融合结果整体发灰Brovey 融合的像元值集中在 0.1 到 0.2 之间几乎看不出地物。原因是 B8 没有做量纲对齐0 到 1 的浮点全色波段直接参与融合比值被压得极小。解决先对 B8 做Stretch Data拉到 0 到 255再和多光谱融合。如果多光谱是浮点两边都拉到同一量级或者都转成 Byte。融合前抽一行像元看看两边的数值范围差一个数量级以上就别往下做。现象四定量评价的结论和目视解译完全相反HSV 的信息熵算出来最高但目视明明最糊。原因是参与比较的影像量纲不统一原图是 0 到 1 的反射率Brovey 输出 0 到 1HSV 输出 0 到 255。熵是按灰度级概率算的灰度级划分不同熵自然不可比。解决评价前统一量化级全部 round 到 0 到 255或者全部归一化到 0 到 1 后按固定级数比如 256 级重新量化。这一步做完再算熵和平均梯度结论才站得住。现象五水体掩膜之后研究区边缘的河流和背景一起变成黑色提取面积比实际少了将近三成。原因是Mask Background Value设成了 0而这条河的部分河段 NDWI 值本来就接近 0被当成背景一起掩掉了。解决背景值改成-999这类物理上不可能出现的值或者干脆不设背景值改用Apply Mask时保留原始值、单独生成一张掩膜图。改完重新统计水体面积和目视判读的河网长度对一遍。6. 从分类到变化监测把两个时相真正对上分类这块非监督的 ISODATA 和监督的最大似然各有各的用法。ISODATA 只需要设类别数、最大迭代次数和变化阈值我一般类别数设成预期地类数的 2 到 3 倍比如预期 5 类就设 12 到 15迭代 20 次阈值 0.95先跑一版看聚类中心分布再决定合并哪些类。监督分类的关键在样本每类至少 100 个像元样本分离度用ROI Separability算低于 1.8 的类别要重新选否则最大似然会把两类混成一类。神经网络分类器对样本量要求更高但边界更贴合实际代价是训练时间长、结果不可复现每次初始化权重不同。变化监测要成立前提是两个时相的分类图用的是同一套分类体系和同一套样本规则。我见过最常见的错误是 2013 年用了一套样本、2019 年重新选了一套两套样本的地类定义对不上最后用Change Detection Statistics一算建设用地增加了 40%实际是把农田误分成了建设用地。正确做法是把两期影像叠在一起选样本或者至少保证两期的类别名、类别数、样本选取标准完全一致再用Post Classification → Change Detection Statistics生成转移矩阵。从那以后我每次做变化监测都会先把两期的分类图并排打开随机抽 20 个点人工核对类别确认无误再进转移矩阵。这个习惯救过我好几次也让我明白遥感流程里最贵的不是算力是返工。希望帮到你。本文还有配套的精品资源点击获取