1. InSAR数据获取的整体思路与方案选型
1.1 为什么数据源选择决定了InSAR项目的成败
做InSAR的人都有一个共识:数据处理技术再娴熟,如果数据源选错了,后面所有步骤都是白费功夫。我见过太多新手一上来就急着打开SNAP导入数据,结果跑到相位解缠那一步才发现干涉图相干性差得没法看,回头一查——要么是时间基线太长,要么是空间基线超限,要么是DEM本身精度不够引入了地形相位残差。这些问题,全部可以在数据获取阶段规避。
InSAR(合成孔径雷达干涉测量)的核心原理,是利用同一区域两次或多次SAR成像之间的相位差来提取地表形变信息。这个相位差里混杂了地形相位、形变相位、大气延迟相位、轨道误差相位和噪声。我们要做的,就是一步步把形变相位从这堆“混合物”里分离出来。而数据获取阶段的工作,本质上是在源头上控制“混合物”的复杂程度——时间基线越短,去相干越少;空间基线越合理,几何去相干越小;轨道数据越精密,轨道误差相位越可控;外部DEM越准确,地形相位去除越干净。
所以这篇内容,我想从最前端的数据获取讲起,把Sentinel-1影像、精密轨道文件、ALOS PALSAR DEM这三样东西的下载渠道、选择策略和实操细节全部捋一遍。适合刚入门InSAR、正在搭建自己数据处理流程的朋友,也适合已经跑过几次流程但总觉得结果不太对、想回头检查数据源的老手。
1.2 三件套的定位与获取平台
InSAR数据获取的“三件套”分别是:SAR影像、精密轨道文件、外部DEM。这三者的角色可以用一个类比来说明——SAR影像是“原材料”,精密轨道是“校准尺”,DEM是“参照底图”。缺了任何一个,最终产品的精度都会打折扣。
对于Sentinel-1数据,最主流的获取平台是ASF(Alaska Satellite Facility)的Vertex数据门户。ASF隶属于NASA,提供Sentinel-1全档案数据的免费下载,而且在中国区域的数据覆盖也很完整。精密轨道文件同样可以从ASF获取,也可以从ESA的轨道数据分发网站下载。至于ALOS PALSAR DEM,ASF也提供下载入口,数据版本主要是ALOS PALSAR RTC(辐射地形校正)产品和ALOS World 3D-30m(AW3D30)。
选择ASF作为主要获取平台的理由很直接:一个账号打通三种数据、支持批量下载脚本、提供API接口、数据更新及时。ESA的Copernicus Open Access Hub虽然也能下Sentinel-1,但下载速度不稳定,而且精密轨道文件需要另外去别的地方找。所以我的建议是,把ASF作为主力平台,ESA作为备用。
1.3 数据获取的时机与批量策略
还有一个容易被忽视的问题:什么时候下载数据?很多人是确定了研究区域和时间范围之后才去搜数据,结果发现想要的时段内可用影像很少,或者轨道方向不匹配。我的做法是,先明确研究目标,然后提前把候选数据集全部拉出来,用基线估算工具(比如ASF的Baseline Tool)先做一轮筛选,确定最优的干涉对组合,再精准下载对应的影像和轨道文件。
批量下载方面,ASF支持通过Python脚本调用API进行批量请求。如果你要下载几十景甚至上百景数据,手动点网页肯定不现实。后面我会给出具体的脚本示例和参数说明。
2. Sentinel-1数据下载:从搜索到落盘的全流程
2.1 Sentinel-1数据产品类型与选择逻辑
Sentinel-1有几种不同的数据产品类型,新手最容易在这里犯迷糊。简单来说,按处理级别分,常用的是SLC(单视复数)和GRD(地距探测)两种。做InSAR必须用SLC数据,因为干涉测量需要相位信息,而GRD数据已经做了多视和检波处理,相位信息丢失了。GRD适合做幅度分析或者变化检测,但不适合做干涉。
按成像模式分,Sentinel-1有SM(条带模式)、IW(干涉宽幅模式)、EW(超宽幅模式)和WV(波浪模式)。做地表形变InSAR,绝大多数情况用IW模式,因为它在覆盖范围和分辨率之间取得了最好的平衡——幅宽250公里,地面分辨率5米×20米。EW模式幅宽更大(400公里),但分辨率更低,主要用于海冰和极地监测。SM模式幅宽只有80公里,但分辨率更高,适合小范围精细监测。
按极化方式分,Sentinel-1支持VV、VH、HH、HV等组合。IW模式下默认是VV+VH双极化。做InSAR通常用VV极化,因为VV在大多数地表类型上相干性更好。如果你研究的是植被覆盖区,VH有时也能提供有用的信息,但干涉处理还是以VV为主。
按轨道方向分,有升轨(Ascending)和降轨(Descending)两种。升轨是卫星从南向北飞,降轨是从北向南飞。同一区域升轨和降轨的视线方向不同,对形变的敏感方向也不同。如果条件允许,最好同时获取升轨和降轨数据,这样可以做二维形变分解。但大多数项目受限于数据可用性,只能选一种。
注意:下载之前一定要确认好产品类型。SLC数据文件比GRD大很多,一景IW SLC大概4-8GB,下载前确保硬盘空间充足。
2.2 ASF Vertex搜索实操:参数设置与筛选技巧
打开ASF Vertex的搜索界面,第一步是在左侧面板选择数据集。在“SAR Datasets”里找到Sentinel-1,然后选择“Sentinel-1 Interferometric Wide Swath SLC”或者直接搜“SENTINEL-1”。接下来设置搜索参数:
- Area of Interest:可以直接在底图上画矩形或多边形,也可以输入经纬度坐标。建议用多边形,因为矩形会包含很多无效区域。
- Time Range:设置你需要的日期范围。做时序InSAR的话,建议至少覆盖一到两年,保证有足够多的影像。
- File Type:选SLC。
- Beam Mode:选IW。
- Polarization:选VV或VV+VH。
- Orbit Direction:根据需要选Ascending或Descending。
搜索结果出来之后,不要急着全选下载。先点开每一景的详情页,看一下几个关键参数:轨道号(Relative Orbit Number)、时间基线、空间基线。同一相对轨道号的影像才能组成干涉对,不同轨道号的影像之间基线太大,没法干涉。所以第一步筛选就是按相对轨道号分组,选影像数量最多的那个轨道号。
然后看时间基线。Sentinel-1的重访周期是12天(单星)或6天(双星),所以同一轨道的影像间隔通常是12天的整数倍。时间基线越短,时间去相干越小。如果研究区是城市或裸地,时间基线可以放宽到48天甚至更长;如果是植被区,最好控制在24天以内。
空间基线方面,ASF的搜索结果里会显示每景影像相对于参考影像的垂直基线。一般来说,垂直基线在150米以内比较理想,超过300米相干性会明显下降。不过Sentinel-1的轨道管得很稳,大多数情况下垂直基线都在合理范围内。
2.3 批量下载脚本:用Python调用ASF API
手动下载几景数据还行,但如果要下载几十景,就必须用脚本了。ASF提供了基于Python的搜索和下载接口,核心是asf_search库。先安装:
pip install asf_search然后写一个搜索脚本:
import asf_search as asf results = asf.search( platform=asf.PLATFORM.SENTINEL1, processingLevel=asf.PRODUCT_TYPE.SLC, beamMode=asf.BEAMMODE.IW, polarization=asf.POLARIZATION.VV, start='2023-01-01T00:00:00Z', end='2023-12-31T23:59:59Z', intersectsWith='POLYGON((116.0 39.5, 117.0 39.5, 117.0 40.5, 116.0 40.5, 116.0 39.5))' ) print(f"共找到 {len(results)} 景数据") for r in results[:5]: print(r.properties['fileID'], r.properties['startTime'], r.properties['pathNumber'])这段代码会返回指定区域和时间范围内的所有SLC影像。intersectsWith参数用的是WKT格式的多边形,你可以根据自己的研究区替换坐标。pathNumber就是相对轨道号,用来分组筛选。
筛选完之后,用download方法批量下载:
session = asf.ASFSession() session.auth_with_creds('your_username', 'your_password') results.download(path='./sentinel1_data', session=session)下载速度取决于你的网络和ASF服务器的负载,一般单景数据几分钟到十几分钟不等。建议挂后台跑,不要盯着进度条。
实操心得:ASF的下载链接有时效性,如果脚本跑到一半中断了,重新跑的时候已经下载完的文件会自动跳过,不会重复下载。但如果你换了下载目录,就得重新下。所以建议固定一个下载目录,不要中途改路径。
2.4 数据完整性校验与文件组织
下载完成后,第一件事是校验文件完整性。Sentinel-1的SLC产品通常是一个.zip压缩包,里面包含manifest.safe、measurement文件夹(存放TIFF格式的复数数据)、annotation文件夹(存放元数据XML)等。校验方法很简单:解压时如果不报错,基本就没问题。更严格的做法是对比文件大小和ASF页面上标注的大小,差异超过1%就重新下载。
文件组织方面,我习惯按“轨道号/日期”的层级来存放:
sentinel1_data/ ├── 135/ │ ├── 20230103/ │ │ └── S1A_IW_SLC__1SDV_20230103T... │ ├── 20230115/ │ └── ... ├── 62/ │ └── ...这样在后续处理时,按轨道号和时间顺序就能快速定位到需要的影像,不会乱。
3. 精密轨道文件:精度提升的关键一步
3.1 为什么需要精密轨道文件
Sentinel-1的元数据里自带轨道信息,叫“预报轨道”(Predicted Orbit)或“快速轨道”(Restituted Orbit)。预报轨道是在卫星过境前基于轨道动力学模型推算出来的,精度大概在几米到十几米量级。快速轨道是在过境后几小时内生成的,精度稍好一些,但也不够。
精密轨道文件(Precise Orbit Ephemeris,简称POD)是在卫星过境后大约两周到三周才发布的,精度可以达到厘米级。对于InSAR来说,轨道误差会直接转化为相位误差,在干涉图上表现为大尺度的条纹。如果轨道精度不够,这些条纹会被误认为是形变信号,导致错误的结果。
具体来说,轨道误差对干涉相位的影响可以用以下关系估算:垂直基线越大,轨道误差引起的相位误差越大。在垂直基线为100米的情况下,10厘米的轨道误差大约会产生几厘米量级的形变误差。而精密轨道文件的精度在3-5厘米,基本可以忽略不计。
3.2 精密轨道文件的下载渠道与命名规则
精密轨道文件可以从ASF下载,也可以从ESA的轨道数据网站获取。ASF的下载方式更简单,直接在搜索界面里选择“Auxiliary Data”类型,然后搜索“Sentinel-1 Precise Orbit”即可。每个轨道文件对应一颗卫星(S1A或S1B)和一个时间范围。
文件命名规则是:S1A_OPER_AUX_POEORB_OPOD_YYYYMMDDTHHMMSS_V_YYYYMMDDTHHMMSS.EOF。其中S1A表示卫星编号,POEORB表示精密轨道(Preliminary Orbit Ephemeris),后面的两个时间戳分别表示轨道文件的起始和结束有效时间。一个精密轨道文件通常覆盖约26小时,足够覆盖一景影像的成像时间。
需要注意的是,精密轨道文件有“Preliminary”和“Restituted”两种。Preliminary是最终版本,精度最高;Restituted是快速版本,精度稍低但发布更快。做高精度形变监测,一定要用Preliminary版本。
3.3 轨道文件的应用时机与操作要点
在SNAP中应用精密轨道文件,是在干涉处理的最开始阶段。具体操作是:在InSAR处理流程的“Apply Orbit File”步骤中,指定轨道文件的存放目录,SNAP会自动匹配每景影像对应的轨道文件并应用。
这里有一个容易踩的坑:轨道文件的时间覆盖范围必须包含影像的成像时间。如果轨道文件的起始时间晚于影像成像时间,或者结束时间早于成像时间,SNAP会报错。所以下载轨道文件时,要确保时间范围覆盖你所有影像的成像日期。最稳妥的做法是,把研究时段前后各多下载一个月的轨道文件,确保全覆盖。
另一个坑是轨道文件的版本问题。有时候同一个时间段会有多个版本的轨道文件,SNAP默认会选择最新的版本。如果你发现应用轨道文件后干涉图反而变差了,可以检查一下是不是用错了版本。
实操心得:我习惯在下载完所有SLC数据后,先提取每景影像的成像时间,然后批量下载对应的精密轨道文件。这样不会遗漏,也不会多下。提取成像时间可以用
gdalinfo或者SNAP的命令行工具gpt。
3.4 轨道文件缺失时的替代方案
有时候会遇到精密轨道文件还没发布的情况,尤其是最近一两个月的影像。这时候有两个选择:一是等,精密轨道文件通常在影像获取后21天左右发布;二是用快速轨道文件代替,精度差一些但总比没有强。
如果连快速轨道都没有,还可以用影像自带的预报轨道,但精度最差。我的建议是,如果研究区形变信号比较强(比如矿区、地震区),预报轨道也能凑合用;如果形变信号很弱(比如城市地面沉降,年速率只有几毫米),那就必须等精密轨道。
4. ALOS PALSAR DEM:地形相位去除的基石
4.1 DEM在InSAR中的角色与精度要求
DEM在InSAR处理中有两个核心作用:一是去除地形相位,二是用于地理编码。地形相位是由于地表起伏导致的相位贡献,在干涉图上表现为密集的条纹。如果不去除,形变相位就淹没在地形相位里了。
对DEM精度的要求取决于几个因素:垂直基线、地形起伏程度、以及你想要的形变精度。一般来说,垂直基线越大,对DEM精度的要求越高。在垂直基线为100米的情况下,DEM高程误差10米大约会引起几厘米的形变误差。所以对于高精度形变监测,DEM的高程精度最好在10米以内。
ALOS PALSAR DEM的高程精度大约在5-10米(取决于地形坡度),水平分辨率30米,覆盖范围是全球陆地(南北纬80度以内)。这个精度对于大多数InSAR应用来说是够用的。如果研究区地形特别陡峭,或者垂直基线特别大,可能需要更高精度的DEM,比如商业DEM或者无人机测绘的DEM。
4.2 ALOS PALSAR DEM的下载与预处理
在ASF Vertex中搜索“ALOS PALSAR DEM”,会看到两种产品:RTC(辐射地形校正)和AW3D30。做InSAR用AW3D30更合适,因为它是纯高程数据,没有经过辐射校正。RTC产品主要用于雷达影像的辐射校正,不适合做干涉。
下载时选择你研究区对应的图幅。AW3D30按1度×1度的图幅分块,命名规则是ALPSMLC30_N040E116_DSM.tif这样的格式。如果你的研究区跨了多个图幅,需要下载多块然后拼接。
拼接可以用GDAL的gdal_merge.py或者gdalwarp:
gdal_merge.py -o merged_dem.tif -of GTiff ALPSMLC30_N039E115_DSM.tif ALPSMLC30_N039E116_DSM.tif ALPSMLC30_N040E115_DSM.tif ALPSMLC30_N040E116_DSM.tif拼接完之后,还需要做一步重投影。ALOS PALSAR DEM默认是地理坐标系(WGS84),但InSAR处理通常需要投影坐标系。用gdalwarp转换:
gdalwarp -t_srs EPSG:32650 -tr 30 30 -r bilinear merged_dem.tif dem_utm.tif这里EPSG:32650是UTM 50N的代码,你需要根据研究区的经度带替换。-tr 30 30指定输出分辨率为30米,-r bilinear指定重采样方法为双线性插值。
4.3 DEM在SNAP中的导入与使用
在SNAP中,DEM的导入是在“Apply Orbit File”之后、“Interferogram Formation”之前。具体操作是:在“Topographic Phase Removal”步骤中,指定DEM文件路径。SNAP会自动读取DEM并计算地形相位,然后从干涉相位中减去。
这里有一个细节:SNAP默认使用SRTM DEM(自动下载),但SRTM在高纬度地区和某些区域有数据空洞。如果你已经下载了ALOS PALSAR DEM,建议手动指定,避免SNAP自动下载的DEM出现空洞导致处理失败。
注意:SNAP在读取外部DEM时,要求DEM的坐标系与影像的坐标系一致。如果DEM是地理坐标系而影像已经投影了,SNAP会自动做转换,但转换精度可能受影响。所以最好提前把DEM处理好,确保坐标系匹配。
4.4 DEM精度对干涉结果的影响评估
怎么判断DEM精度够不够?一个简单的方法是:在去除地形相位后,看干涉图上是否还有明显的地形相关条纹。如果残余条纹与地形等高线高度吻合,说明DEM精度不够或者DEM与影像之间存在配准误差。
另一个方法是做差分干涉(DInSAR)后,看形变图上是否有与地形相关的假信号。如果形变信号集中在山谷或山顶,而且与已知的地质构造无关,那很可能是DEM误差引起的。
如果确认是DEM精度问题,有几个解决思路:一是换更高精度的DEM;二是用多视或者滤波来抑制残余地形相位;三是在时序InSAR中,通过时间维的滤波来分离地形残差和形变信号。
5. 数据获取后的质量检查与常见问题排查
5.1 数据质量检查清单
数据下载完之后,别急着开始处理。先花十分钟做一轮质量检查,能省下后面几个小时甚至几天的排查时间。我整理了一个检查清单:
| 检查项 | 检查方法 | 合格标准 |
|---|---|---|
| SLC文件完整性 | 解压是否报错,文件大小是否匹配 | 无报错,大小差异<1% |
| 轨道文件时间覆盖 | 对比轨道文件时间范围和影像成像时间 | 完全覆盖 |
| DEM覆盖范围 | 在GIS中打开DEM,叠加研究区边界 | 完全覆盖研究区 |
| DEM坐标系 | gdalinfo查看 | 与处理流程一致 |
| 影像轨道号一致性 | 检查所有SLC的pathNumber | 同一轨道号 |
| 极化方式一致性 | 检查所有SLC的极化 | 同一极化 |
5.2 常见问题与排查技巧
问题一:ASF下载速度慢或者中断。这是最常见的问题。ASF服务器在国外,国内下载速度不稳定。解决方法:一是用下载工具(如aria2)支持断点续传;二是避开高峰时段(北京时间晚上8-11点);三是如果实在下不动,可以试试ESA的镜像。
问题二:精密轨道文件找不到对应时间段的。先确认影像日期,然后去ASF的Auxiliary Data搜索页面,用日期范围搜索。如果确实没有,说明精密轨道还没发布,等几天再试。
问题三:DEM拼接后出现缝隙或错位。这通常是因为相邻图幅的坐标系或分辨率不一致。用gdalinfo逐个检查,确保所有图幅的投影和分辨率相同。如果不同,先用gdalwarp统一。
问题四:SNAP读取DEM时报错“No valid DEM found”。检查DEM文件路径是否包含中文或空格,SNAP对路径中的特殊字符支持不好。另外检查DEM的NoData值设置是否正确,有些DEM用-9999表示无效值,SNAP可能不识别。
问题五:干涉图相干性整体偏低。除了数据本身的问题,还要检查轨道文件是否正确应用、DEM是否准确配准。有时候是SNAP的默认配准参数不适合你的数据,需要手动调整配准窗口大小和搜索范围。
5.3 数据管理的长期策略
如果你打算长期做InSAR研究,建议建立一个规范的数据管理体系。我的做法是:
- 按项目建文件夹,每个项目下分
raw_data、orbit、dem、processed四个子目录。 - 原始数据下载后立即校验并记录元信息(日期、轨道号、极化、大小)。
- 轨道文件按卫星和年份归档,方便复用。
- DEM按研究区裁剪后保存,避免每次处理都重新拼接。
- 所有处理步骤用SNAP的Graph Processing Framework做成XML流程图,保证可重复。
这样一套体系建下来,后面再做新项目的时候,数据准备阶段的时间可以缩短一半以上。
6. 从数据获取到DInSAR处理的衔接要点
6.1 SNAP中数据导入的注意事项
数据下载和预处理都搞定之后,下一步就是在SNAP中导入并开始DInSAR处理。导入SLC数据时,SNAP会自动读取元数据,但有几个地方需要手动确认:
- 影像对选择:在“InSAR Stack Overview”中检查所有影像的时间基线和空间基线,选择最优的干涉对。一般来说,选择时间基线最短、空间基线适中的一对作为主影像和从影像。
- 主影像选择:主影像的选择会影响整个干涉图的几何。通常选择位于时间序列中间、空间基线最小的影像作为主影像。
- 子区裁剪:如果研究区只是影像的一小部分,建议在导入后就做裁剪,减少后续处理的数据量。
6.2 处理流程中的关键参数设置
DInSAR处理流程中,有几个参数直接影响最终结果的质量:
- 多视比(Multilooking):Sentinel-1 IW SLC的距离向和方位向分辨率不同,通常做4:1或5:1的多视,使输出像元接近正方形。多视比越大,相干性越好,但空间分辨率越低。
- 滤波方法:Goldstein滤波是InSAR中最常用的,能有效抑制噪声同时保留条纹信息。滤波窗口大小需要根据条纹密度调整,条纹密集时用小窗口,条纹稀疏时用大窗口。
- 解缠方法:SNAP中常用的解缠方法是SNAPHU。解缠前需要做相干性掩膜,把低相干区域排除,避免解缠错误传播。
6.3 结果验证与精度评估
DInSAR处理完成后,怎么判断结果是否可靠?我通常做三件事:
第一,检查干涉图和相干图。干涉图上的条纹应该连续、平滑,没有明显的跳变。相干图上的高相干区域应该与城市、裸地等稳定地表对应。
第二,检查解缠结果。解缠相位应该是连续的,没有明显的2π跳变残留。如果有,说明解缠参数需要调整。
第三,如果有GPS或水准测量数据,做交叉验证。没有的话,可以对比不同干涉对的结果,看形变趋势是否一致。
实操心得:我习惯在处理完一批数据后,把干涉图、相干图、解缠图、形变图拼成一张四联图,一眼就能看出问题在哪。这个习惯帮我省了很多来回排查的时间。
6.4 从DInSAR到时序InSAR的过渡
如果你要做时序InSAR(比如PS-InSAR或SBAS),数据获取阶段的策略会有所不同。时序InSAR需要同一轨道上尽可能多的影像,一般至少20景以上。而且对轨道文件和DEM的精度要求更高,因为时序处理会放大轨道误差和DEM误差的影响。
从DInSAR过渡到时序InSAR,数据准备阶段需要额外注意:确保所有影像的轨道号完全一致;确保精密轨道文件全部到位;DEM的精度要尽可能高。另外,时序InSAR对影像的辐射一致性也有要求,如果影像之间有辐射差异,需要做辐射定标。
数据获取这件事,说起来简单,但真正做起来,细节多到让人头疼。我的经验是,前期多花一个小时检查数据,后期就能少花一天排查问题。Sentinel-1、精密轨道、ALOS PALSAR DEM这三样东西,每一样都有它的脾气,摸清楚了,后面的处理流程才能跑得顺。