简介:这份PDF是ENVI处理SAR数据的详细操作指南,全文围绕ALOS PALSAR数据展开,完整覆盖数据导入、SLC多视处理、斑点噪声滤波、地理编码与辐射定标、影像镶嵌匀色等关键环节,并配有具体参数设置,如方位向视数设为5、距离向视数设为1、Frost滤波窗口为9,以及地面分辨率与视数的换算方法,便于读者边看边练。文档末尾还整理了6条知识点总结,帮助巩固预处理流程中的要点和原理。资源共1个PDF文件,大小约1.31MB,内容精炼、步骤可操作性强,适合遥感、测绘及相关专业的学生、科研人员和ENVI初学者快速上手。已有472人学习浏览,可作为课程实验、项目预处理的参考手册。
1. SAR预处理为什么让人头疼:从产品级别到ENVI该做的事
拿到一景SAR数据,直接打开看,十有八九是一幅灰度乱跳的“雪花图”。很多做光学遥感出身的人第一次接触SAR,都会被这个画面劝退。其实问题不在数据,而在预处理:SAR数据从原始回波变成能用于形变测量、地物分类的后向散射图,中间要经过定标、多视、滤波、地形校正等一系列步骤,每一步参数选错了,后面的结果全受影响。这份《ENVI对SAR数据的预处理过程(详细版)资料.pdf》就是干这个用的,它把ENVI里处理SAR数据的全流程拆成了可照着点的操作步骤,适合正在做地质灾害监测、地表形变研究或者刚接手InSAR项目的从业者,照着走能少走很多弯路。
2. 处理链路与核心参数:辐射定标、多视、滤波怎么选才不翻车
2.1 辐射定标:β0、σ0、γ0到底用哪个
SAR数据的原始DN值没有物理意义,必须经过辐射定标换算成后向散射系数。资料里强调的第一步就是选定标方式。ENVI的SARscape模块里通常提供β0、σ0、γ0三种输出,它们的区别在于参考面积不同:β0是每单位斜距面积的后向散射,σ0投影到地距平面,γ0则投影到垂直于斜距的平面。
实际处理中,我一般这样选:做地物分类或地表参数反演,用σ0,它最符合“单位地面面积”的物理直觉;做山区形变或叠掩区分析,γ0更合适,因为γ0对地形起伏的敏感度低,能减少坡度造成的散射面积误差;β0只在做辐射计定标验证时用,日常处理很少直接用。
具体参数上,资料给出的流程里有一个容易忽略的开关——“Output to linear scale”。ENVI里SARscape默认输出线性后向散射系数,数值通常在0到1之间,直接看图会偏暗。需要输出成dB格式时,在定标参数的Scale下选择dB,这样数值范围变成-30到10左右,适合直接做拉伸显示。我的习惯是线性值和dB值各存一份,处理分析用dB,做统计和阈值分割用线性值,两者换算公式是dB=10×log10(线性值),在波段运算里一行公式就能互转。
另一个关键参数是定标常数。Sentinel-1的定标常数在数据自带的calibration文件中,自动读取没问题;但如果是ALOS PALSAR这类历史数据,必须手动确认校准因子是否已经应用到产品中。资料里提醒过这一点:某些PALSAR产品已做过内部定标,ENVI再跑一次就等于二次定标,幅度会整体翻一倍以上,这个错误非常隐蔽,看单景图像可能察觉不出来,但时间序列分析时所有点的值都会系统性偏大。
2.2 多视处理:视数不是越大越好
SAR图像固有的相干斑噪声,通过多视处理来抑制——把多普勒谱和距离向频谱分段平均,等效于把多个独立样本叠加。ENVI里多视工具位于SARscape > Basic > Intensity Processing > Multi-looking,核心参数有三个:距离向视数、方位向视数、输出投影方式。
参数选择的依据是目标分辨率。Sentinel-1 IW模式的原始分辨率为5m×20m(距离向×方位向),如果做形变测量,我一般设距离向4、方位向1,得到一个约20m×20m的近似方形像元,既压制了噪声,又保留了足够的空间细节。做较大范围的地物分类时,会放宽到距离向5、方位向2,使等效视数更高、噪声更低,但这时候要接受分辨率降到约25m×40m的现实。
资料里强调了“等效视数”这个检验指标。ENVI的Multi-looking工具不会直接显示等效视数,但可以通过处理后影像的均值和标准差计算:ENL = (mean/std)²。在一幅均匀地物区域(比如平静水面或裸地)上取一个50×50像元的方形区域,算出的ENL低于理论视数的一半,说明滤波参数没配合好,需要回头调整。
多视处理有一个争议点:先多视还是先滤波。资料里的推荐顺序是先完成定标,再做多视,最后滤波。理由是定标对噪声模型有假设,先多视会改变噪声的统计特性,可能导致定标结果偏离。顺序别倒过来,这是我踩过的坑,最初为省时间先滤波再定标,结果平坦区域的σ0整体偏低了大约2dB。
2.3 去斑滤波:Lee、Frost、Refined Lee怎么选
相干斑噪声是多视处理后仍然残留的高频干扰,去斑滤波是预处理里最影响成图观感的一步。ENVI SARscape > Filtering里提供Boxcar、Lee、Frost、Refined Lee、Gamma MAP等滤波器。它们本质都是滑动窗口内的自适应估计,区别在于对边缘和纹理的保留策略。
我的选择逻辑很简单:做InSAR干涉或幅度时间序列,用Refined Lee;做单景图像地物解译,用Frost或Gamma MAP;Boxcar纯粹是均匀窗口平均,边缘模糊严重,除非是快速预览,否则不建议作为正式结果。窗口大小方面,Refined Lee推荐7×7,Frost推荐5×5或7×7。窗口太小噪声压不下去,窗口太大建筑物边缘会拖出重影,7×7是多数场景下不用思考的安全选项。
参数里还有一个叫“Number of Looks”的输入值,它指的是滤波算法用来估计噪声方差的理论视数。必须和前一步多视处理保持一致。比如多视设了4×1,理论视数就是4,滤波参数里也要填4。填错的话,滤波器会高估或低估噪声水平,典型症状是平坦区域反而出现斑状明暗块。
2.4 地形校正与插值:SRTM选哪个格网,重采样用什么算法
地形校正是SAR预处理里最“玄学”的一步。SAR侧视成像导致叠掩和阴影,地形校正的目的就是把斜距几何改正到地图几何。ENVI的SARscape > Geometric > Terrain Correction里需要指定参考DEM和输出投影。资料给出的建议是:覆盖范围不超过1景的话,用SRTM 1弧秒(约30m)格网够用;跨大范围或做高精度时序分析时,换成Copernicus DEM 30m或10m版本。
这里很多人会踩坑:DEM的投影必须和输入影像坐标系兼容,ENVI虽然会自动重投影,但如果DEM覆盖范围不完整,边缘会出现条带状的校正空洞。我的习惯是在校正前先在ENVI里把DEM裁剪到影像范围外扩1度,再做投影转换,避免让工具在边界上反复插值。
重采样方法的选择也很关键。ENVI提供最近邻、双线性、三次卷积三种,资料里着重提醒:后向散射强度图必须用双线性或三次卷积,不能用最近邻。因为SAR强度数据是连续浮点,最近邻重采样会让相邻像元的数值出现台阶式跳变,后续做滤波或分类时会出现网纹伪影。如果是做干涉相位图,则不然——相位是0到2π的周期量,必须用最近邻保持原始采样值,三次卷积的插值会在相位跳变处产生“飞点”。
3. 一步一步走流程:从数据导入到地形校正的完整操作
3.1 数据导入与轨道文件
以Sentinel-1 SLC数据为例,ENVI里导入的入口是SARscape > Import Data > ENVISAT/Sentinel-1 > Sentinel-1。选择文件时要注意选对数据级别:SLC(单视复数)用于干涉和相位分析,GRD(地距检测)用于幅度和强度分析。选错级别后面所有流程都会跑偏,尤其是做InSAR的时候用GRD数据,相位信息已经被平均掉了,干涉图根本生成不出来。
导入之后第一件事是更新轨道文件。SAR数据的轨道状态矢量决定了成像几何的精度,ENVI提供了自动下载轨道的功能:SARscape > Import Data > Update Orbit > Sentinel-1。这里有个网络依赖,如果机器访问不了轨道数据服务,程序会报“download failed”,但不会中止处理。很多人忽略了这个错误直接往下走,最后干涉图出现大范围的条纹偏移,排查半天才在轨道文件这一步找到原因。
导入完成后建议立即用“SARscape > Tools > Extract GCP”或者“View > Metadata”确认几个关键信息:轨道方向(Ascending/Descending)、极化方式(VV/VH等)、影像获取时间。这些信息后续会用在干涉流程的配准步骤里,提前记下来能减少来回查的麻烦。
3.2 从热噪声去除到辐射定标
导入后的原始幅度数据带有传感器热噪声,在低后向散射区(水体、平静地表)尤其明显,表现为条带状的弱信号走廊。ENVI的处理路径是SARscape > Basic > Intensity Processing > Thermal Noise Removal,对照的是产品元数据里的噪声查找表。这个步骤对Sentinel-1是自动读取,对部分历史数据需要手动指定噪声文件,缺失时程序会用全局平均值代替,精度会打折,但总比完全不去噪好。
紧接着做辐射定标,入口在SARscape > Basic > Intensity Processing > Radiometric Calibration。关键选项在“Calibration Mode”:选择β0、σ0还是γ0,选法在2.1里已经说过。另一个选项“Look Up Table”一般保持默认,它会自动调用数据的校准矢量。定标输出的文件类型建议选“Float Single”,不要选“Integer”,因为后向散射系数的动态范围不大,整型存储会引入量化误差,后续做浮点运算时还要再转回,白白损失精度。
3.3 多视与滤波的先后组合
定标完成后先做多视(SARscape > Basic > Intensity Processing > Multi-looking)。参数设置上重点说两个容易被忽略的位置:在“Output Projection”里系统会默认输出为斜距几何,如果后面不打算做地形校正,建议在这里直接选“UTM”,省得后面再做一次几何转换。需要特别注意的是“Patch Size”参数,很多教程不提它,这个参数控制的是块状处理的粒度,默认值即可,但内存不足的机器(8GB以下)把它调大到64能显著减少内存溢出,代价是速度变慢。
多视之后紧接滤波。这里给新手一个明确建议:多视和滤波之间不要插入任何其他操作,包括存档、裁剪或格式转换。SARscape的后缀流程会自动识别中间文件的头文件和轨道参数,一旦插入了第三方工具处理过的文件,后面的流程会在“Data geometry mismatch”处报错,处理链就断了。
3.4 地形校正与投影设置
地形校正是预处理的最后一步,入口在SARscape > Geometric > Terrain Correction > Terrain Flattening Correction(如果只是校正不做辐射地形归一化,用第一项即可)。参数里最关键的三个选择:
第一,DEM来源。下拉框里可以选择“SRTM 30m”“Copernicus 30m”“User Defined”。我推荐User Defined方式,提前把本地DEM文件导入并裁剪到影像范围外扩1度,避免在线下载的不确定性。第二,输出投影。一般用“UTM”加对应分带,这里强烈建议用“Map-ready”模式,它会自动处理像元尺寸和方位角旋转,输出的产品可以直接进ArcGIS或QGIS跟光学影像套合。第三,“Pixel Size”设成多视处理后的地距分辨率一致的值。比如多视后分辨率是20m,这里就填20,确保输出像元尺寸和实际地面分辨率匹配。如果填小了,图像会被拉伸放大,看起来变细了,但实际是插值出来的假细节;填大了则是无谓的压缩,浪费了原始分辨率。
地形校正完成后,检查一下输出文件里是否有“Shadow”和“Layover”波段的掩膜文件。这两个文件标记了校正不可靠的区域,后续分析时应该将其排除。很多人看到这两个波段觉得没用,直接删掉,实际这等于放弃了质量控制的最后一道防线。
4. 处理结果的验证与判读:别急着拿去出图
4.1 数值均值与标准差检查
跑完上面的流程,先别急着出图。打开定标并滤波后的影像,在均匀地物区域统计均值与标准差。经验数值是这样的:开阔裸地的σ0(dB)通常在-10到-15之间,平静水面在-20以下,城区在-5到-8之间。如果你的结果和这个范围差得离谱,比如裸地出现-3dB或者水面出现-2dB,说明定标或噪声去除环节出了问题。
标准差也有参考价值。经过多视和滤波处理后的均匀区域,标准差应比均值小很多,以dB值计,标准差一般不超过均值的30%。如果标准差接近甚至超过均值,说明噪声没压下去。此时回头检查多视视数和滤波窗口大小,别指望后面还有一次“后悔药”能补救,时序分析一旦开始,每景数据的噪声特性不一致会直接污染形变结果。
4.2 与光学影像叠加判断几何精度
处理结果如果要用在形变解算里,必须验证几何精度。方法很简单:把地形校正后的强度图导出成GeoTIFF,在QGIS里叠加同一区域的Sentinel-2光学底图,透明度调成50%,查看河流、道路、田块边界的套合情况。山区地形复杂区,SAR强度图中的叠掩和阴影区域应与DEM计算出的阴影一致,不一致超过2个像素时,要回到地形校正步骤检查DEM是否边缘不足或投影分带选错。
这里分享一个平时很少人提示的细节:SAR侧视成像的距离向与方位向分辨率不同,几何校正时如果“Pixel Size”的X、Y设为相同值(比如20m×20m),在陡峭地形区会造成局部拉伸变形。更稳的做法是把X、Y设置成原始地距分辨率对应的值,哪怕结果是矩形像元。ENVI默认会把它们强制设为正方形,这一点需要手动干预,在校正前将“Pixel Size”的X值和Y值分别填入,而不是用一个值代替两个。
4.3 切片对比检测定标断裂带
验证处理质量,还有一个很实用的小技巧:在影像上切两条十字交叉的剖面线,读取后向散射值,看有没有异常的梯度跳变。定标断裂带在剖面线上表现为阶梯状突变,比如一段连续平缓的-12dB之后,突然跳到-8dB,然后继续平缓。这种现象通常发生在跨轨道拼接数据或使用了不同定标参数的相邻景数据上,单看整幅图时它被色带拉伸掩盖,但剖面线一拉就原形毕露。
如果检测到这种断裂,优先检查处理中是否对某些步骤使用了“Skip”(跳过)模式,比如漏掉了热噪声去除或定标步骤。同一轨道路径下的多景数据,应该用完全相同的参数链处理,这点在批量处理时尤其重要,下一章会具体展开。
5. 常见问题与排查:五条高频踩坑记录
5.1 影像范围偏移了大半个图幅
现象:做完地形校正后,影像内容相对于DEM参考位置偏移了几百米甚至几公里,叠加矢量边界完全对不上。
原因:绝大多数情况是轨道文件没有更新。SLC产品自带的轨道状态矢量精度只有米级到十米级,对20m分辨率的SAR数据来说偏移2-3个像元还能接受,偏移几十个像元就说明轨道精度不够,必须用精轨星历文件(POD Precise Orbit)替代。
解决:回到SARscape > Import Data > Update Orbit > Sentinel-1,重新下载精确轨道文件,再重跑地形校正步骤。偏移严重的数据连强度图都是“歪”的,需要从头开始,这一步无法只靠后处理修正。
5.2 定标后所有数值都小于预期
现象:平坦区域σ0整体偏低,水面出现-35dB这种极端值,整幅图像偏暗,增强显示后也看不到地物纹理。
原因:选错定标输出类型是最常见的原因。处理中选择了γ0或β0后,又直接与光学影像或已知参考数值做了对比,三个系数在陡峭地形区能差出5dB以上。另外一个原因是多视处理前就做了滤波,改变了噪声统计特性导致定标常数应用异常。
解决:回到定标步骤修改输出类型为σ0(dB),同时确认滤波在多视之后。对比参考值时用同源数据(比如与同区域Sentinel-2估算的后向散射),而不是拿不同极化或不同入射角的绝对数值直接比。
5.3 地形校正后山区出现大面积黑色空洞
现象:陡峭山区的地形校正结果有大片黑块,这些区域里没有数据值,看起来像是“抠掉”了一块。
原因:不是处理出错,是叠掩和阴影的物理现象。SAR侧视成像中,坡面朝向雷达时回波强烈,坡面背向雷达时无回波,地形校正把这些区域标记为无效值,掩膜值为0。如果背景值设置成了0,后处理软件就会显示为黑色。
解决:确认输出文件里包含Shadow和Layover掩膜波段,在显示时把无效值设为透明;统计时务必先掩膜去掉这些区域。如果对叠掩区也做了形变解算,那结果必然不可靠,这时候要用ENVI的“Mask”工具把该区域从分析范围内彻底剔除。
5.4 滤波后图像发虚,边缘糊成一片
现象:滤波后的强度图平滑过头,建筑物边缘和道路边界变得模糊,看起来像对焦不实。
原因:窗口选得过大,或滤波器类型选错。对城区高纹理区域用Boxcar或大窗口Frost(比如11×11),边缘信息被严重平均化。有些教程推荐的“推荐滤波参数”只考虑噪声抑制,不考虑边缘保留。
解决:把滤波器换成Refined Lee,窗口调回7×7。城区优先用边缘保留型的Refined Lee,乡村和均匀地物用Frost没有问题,但窗口上限设为7×7,超过这个尺寸的窗口对20m分辨率数据来说几乎没有适用场景。
5.5 批量处理时部分数据莫名中断
现象:批量跑几十景数据,前十几景正常,到某一景突然报错“Sample spacing is not monotonic”或“Error in geocoding”,处理链中断。
原因:批量数据处理时,某景数据的轨道覆盖范围异常、DEM边缘不足,或者该景数据和前几景的轨道方向(升轨/降轨)不同导致参数不匹配。SARscape的批处理是线性依赖的,一景报错会终止后续队列。
解决:批量处理前先小规模试跑2-3景,确认参数稳定。批处理时把升轨和降轨数据分开两个文件夹分别处理,避免在一个批次里混跑。中断的那一景单独跑一遍,必要时裁剪DEM到该景之外再加1度,不要依赖全局DEM自动重投影。
6. 进阶技巧:批处理模板复用与结果输出注意点
当手上的数据从几景变成几十景、甚至上百景时,逐景手动处理是不现实的。ENVI SARscape的批量处理入口在SARscape > Batch,但它不是一个全自动傻瓜工具,需要你先把单景的处理链记录成模板。我的习惯是:先用一景数据把从导入到地形校正全流程跑通,确认每一步的参数都符合预期,然后在Batch界面里加载这套参数模板,再指定输入文件列表。批量模式会按模板里的参数链逐景执行,但不会帮你自动判断“这一景要不要换参考DEM”,所以升轨和降轨数据必须拆分处理。
批处理还有一个容易被忽略的收益:保证参数完全一致。手动处理时,人难免会对个别参数进行微调,比如这次滤波用了7×7,下次觉得噪声大随手改成了9×9,这会导致不同时相的影像分辨率与噪声特性不一致,时间序列分析时后向散射的年际变化会被处理参数的系统差异污染。批量模板则从根本上杜绝了这个问题。从那以后我每一次批量处理前,都会强制走一遍“单景测试→参数确认→模板固化→批量执行”的流程,省下的返工时间远大于这一步的花费。
输出格式上,地形校正后的GeoTIFF建议选择“Float”类型存储,不要为了省空间转成UInt16。SAR后向散射的微妙差异(比如1dB的变化)在16位整型下可能只有几个灰度级的差别,量化误差会掩盖真实的地表变化信号。如果文件大、磁盘紧张,至少保留dB格式的Float文件作为归档,线性值的整型版本只用于制图输出,不用于数值分析。在做时间序列形变之前,对每一景数据都看一眼无效值掩膜的面积占比,如果某景的掩膜面积异常大,宁可重跑这一景也不要用它去凑数据的一致性。希望这些实际处理经验能帮到你少走一些弯路。
本文还有配套的精品资源,点击获取