StaMPS实验全流程
本笔记记录使用StaMPS-InSAR方法对sentinel1 SAR 数据进行PS-InSAR实验的全过程,从程序安装到结果输出。
程序安装
在安装StaMPS之前,需要先安装以下依赖软件: ‘matlab’, ‘snaphu’, ‘triangle’, ‘TRAIN’, ‘GMT’
MATLAB
StaMPS是基于MATLAB开发的,因此需要先安装MATLAB。本次安装选择经过多名学者验证的R2020b版本。安装完成后,需要将StaMPS的路径添加到MATLAB的搜索路径中。
具体安装过程此处不再赘述,可以参考MATLAB官网的安装指南。
将matlab
加入.bashrc
1 |
|
snaphu
conda install
安装 snaphu 是 InSAR 处理流程中的一个关键步骤,它负责进行相位解缠(Phase Unwrapping)。如果已经在使用 Conda (Anaconda/Miniconda) 来管理您的 Python 环境(例如 conda activate insar
),这是迄今为止最简单、最不容易出错的方法。
1 |
|
验证snaphu是否安装成功:
1 |
|
develop mode
- 清理错误的编译文件
1 |
|
- 正确修改 Makefile 文件
1 |
|
- 创建手册页目录
1 |
|
- 重新编译和安装
1 |
|
- 验证安装
1 |
|
至此snaphu安装成功!
triangle
安装 triangle 是 InSAR 处理流程中的一个关键步骤,它负责进行三角网生成。可以从triangle官网下载并安装。下载好后,将其解压到一个目录中,例如 /home/yuchi/tools/StaMPS/triangle
,并执行make
命令。
TRAIN
TRAIN是一个用于处理InSAR数据的工具,StaMPS也依赖于它。可以从TRAIN官网下载并安装。
StaMPS
StaMPS可以从StaMPS官网与GitHub下载并安装。
注意: StamPS需要使用gcc-7进行编译,否则在mt_prep_snap
时会出现Segmentation Fault错误。
- 使用
update-alternatives
来切换gcc版本:
1 |
|
Install StaMPS/MTI:
1 |
|
然后我们要写入Path以便正常执行相关指令,我们使用sudo gedit ~/.bashrc来编辑bash启动脚本。
Edit StaMPS CONFIG.tcsh or StaMPS CONFIG.bash (depending on which shell you prefer to use) to point to the correct directories for your set-up (you will need additional programs installed, see below).
1 |
|
编辑CONFIG.bash
文件,添加以下内容:
1 |
|
每次执行stamps时必须source /home/yuchi/tools/StaMPS/StaMPS-4.1-beta/StaMPS_CONFIG.bash
,或者将它家加入到.bashrc中。
使用mt_prep_snap
验证安装是否成功。
1 |
|
GMT
GMT是一个用于处理地理数据的工具,StaMPS依赖于它来生成地图和图形。可以从GMT官网下载并安装。
GMT(Generic Mapping Tools)是一款开源软件,用于处理和可视化地理空间数据。它以命令行形式操作,适合生成高质量的地图和图表。用户可以通过脚本编写和命令组合,灵活地创建各种类型的地形图、等高线图和矢量图等。GMT 支持多种数据格式,如 ASCII、NetCDF 和 GeoTIFF,适合与其他 GIS 软件集成。其生成的图形可以输出为高分辨率的 PostScript 和 PDF 文件,非常适合学术出版和展示。该软件在地球科学、气象学和海洋学等多个领域广泛应用。GMT 的文档和教程非常丰富,用户可以通过这些资源学习使用。同时,它也拥有活跃的社区支持,用户可以在论坛或邮件列表中交流经验和解决问题。
1 |
|
然后我们通过sudo apt install <包名>来安装剩下的工具
Ghostscript
:生成PDF,jpg图片的必要工具,必须安装:sudo apt install ghostscript
GDAL
:地理空间数据转化工具,必须安装:sudo apt install gdal-bin
GraphicsMagick
:生成GIF动画的工具,非必须安装:sudo apt install graphicsmagick
FFmpeg
:生成MP4等视频格式动画的工具,非必须安装:sudo apt install ffmpeg
验证安装
启动matlab
验证stamps是否正确安装:
set_path
-> Add with Subfolder
-> 选择/home/yuchi/tools/StaMPS
1 |
|
snap2stamps
snap2stamps
是一个用于将SNAP格式的干涉图转换为StaMPS格式的工具。可以从SNAP官网下载并安装。
- 成功安装
snap2stamps
之后,在/home/yuchi/tools/stamps/snap2stamps/bin
目录下修改project_topsar.conf
文件,内容如下:
1 |
|
-
在目录
/home/yuchi/Documents/01_vscode/AMIPS/data/02_interim/snap_test
下新建secondaries
,master
文件夹。并将已经下载好的slc压缩文件放入secondaries
下。 -
或者在目录
/home/yuchi/tools/StaMPS/snap2stamps/bin
命令行下运行python asf_s1_downloader.py -F project_topsar.conf
将数据下载到secondaries
目录下。 -
在目录
/home/yuchi/tools/StaMPS/snap2stamps/bin
下运行其余的snap2stamps
命令
1 |
|
- cd到
INSAR_YYYYMMDD
并运行mt_prep_snap
1 |
|
ISCE2数据准备
-
使用ISCE进行StamPS的预处理同Mintpy的略有区别,不可以直接使用前一步Mintpy的结果,需要重新处理。区别在与
-W
的设置,StaMPS需要将-W
设置为slc
,而Mintpy则是默认,即为interferogram
。生成结果的区别是: -
mintpy运行结果中
../merged/SLC/YYYYMMDD
中没有*_slc_full
文件,但是运行StaMPS时需要用到生成的*_slc_full
文件 -
mintpy运行结果中
../merged/SLC/YYYYMMDD
中没有baselines
文件夹,但是运行StaMPS时需要用到生成的baselines
文件夹
所以必须重新进行ISCE2的处理。
在文件夹/home/yuchi/Documents/01_vscode/AMIPS/data/02_interim/xuzhou_test
中新建prep_stamps
文件夹,并cd
到该目录下执行:
1 |
|
将生成文件夹run_files
, 新建批处理python脚本文件auto_run_isce.py
并运行得到ISCE2StamPS的结果。
StaMPS数据处理
- 新建
input_file
文件夹,并在其中创建所需的输入文件。
1 |
|
- 将
make_single_reference_stack_isce
的路径写入PATH并运行
1 |
|
运行结束将在/home/yuchi/Documents/01_vscode/AMIPS/data/02_interim/gnss_test_area/prep_stamps
生成INSAR_20250102
文件夹.
PS preprocess
In the INSAR_master_date
directory run mt_prep_isce
for ISCE.
1 |
|
- 打开
matlab
and rungetparm
1 |
|
1 |
|
-
因为
StaMPS-4.1-beta
包很久没有更新维护,导致下载的源码缺少2个文件,在StaMPS的github主页下载load_isce.m
与matlab/sb_load_initial_isce.m
并复制到/home/yuchi/tools/StaMPS/StaMPS-4.1-beta/matlab/
目录下。 -
同样因为更新维护问题,导致
ps_load_initial_isce.m
脚本中有一个错误,导致无法运行。需要修改文件中的以下内容:
1 |
|
或直接在github page
下载最新的ps_load_initial_isce.m
文件。