在上一期的技术分享中,我们详细介绍了InSAR处理环境的基础搭建,涵盖了Linux系统安装、Python环境配置、GMT绘图软件安装以及StaMPS时序分析软件的核心安装步骤。通过前期的精心部署,我们已经成功搭建起了InSAR处理的技术基石。
本篇将围绕 构建功能完善、高效稳定的 InSAR 处理平台 展开,在已有环境的基础上,进一步完善工具链配置与处理流程。
以下是正文部分
打开终端,输入:
在页面最下方右键单击粘贴以下内容,如下环境配置均写入 “.bashrc”中。
1.1 MATLAB R2024a 配置
# -------------------------------------------------# 1. MATLAB R2024a 配置# -------------------------------------------------export MATLAB_HOME="/usr/local/MATLAB/R2024a"export PATH="$MATLAB_HOME/bin:$PATH"export MATLABPATH="$MATLAB_HOME/toolbox/local:$MATLABPATH"export MATLAB_JAVA="$MATLAB_HOME/sys/java/jre/glnxa64/jre"export MATLAB_OPTS="-nosoftwareopengl -nosplash -nodisplay"export MATLAB_PREFDIR="$HOME/.matlab/R2024a"mkdir -p $MATLAB_PREFDIR 2>/dev/null
MATLAB_HOME:指定MATLAB安装目录,确保路径一致性
# -------------------------------------------------# 2. SNAP配置 (安装在/home/wl/esa-snap)# -------------------------------------------------export SNAP_HOME="/home/wl/esa-snap"export PATH="$SNAP_HOME/bin:$PATH"export JAVA_HOME="/usr/lib/jvm/default-java"export _JAVA_OPTIONS="-Xmx4G"export OMP_NUM_THREADS=4# SNAP Python扩展export PYTHONPATH="$SNAP_HOME/snap-python:$PYTHONPATH"export PATH="$SNAP_HOME/snap-python:$PATH"
# -------------------------------------------------# 3. StaMPS配置 (4.1-beta)# -------------------------------------------------export STAMPS_HOME="/home/wl/software/StaMPS-4.1-beta"export PATH="$STAMPS_HOME/bin:$STAMPS_HOME/scripts:$PATH"export MATLABPATH="$STAMPS_HOME:$MATLABPATH" # 添加StaMPS到MATLAB搜索路径export STAMPS_MATLAB="$MATLAB_HOME/bin/matlab" # StaMPS使用的MATLAB路径# StaMPS工具路径配置export SNAPHU_BIN="/usr/bin/snaphu"export GMT_BIN="/usr/bin"
2.1 地理信息工具链
# -------------------------------------------------# 4. 地理信息工具配置# -------------------------------------------------# GMT配置export GMT5_SHAREDIR="/usr/share/gmt"export GMTHOME="/usr/share/gmt"export GMT_COMPATIBILITY=6# GDAL配置export GDAL_DATA="/usr/share/gdal"export PROJ_LIB="/usr/share/proj"
功能说明:
● GMT(Generic Mapping Tools):用于高质量地图制作和地理数据处理
● GDAL(Geospatial Data Abstraction Library):支持多种栅格和矢量数据格式
● PROJ:地理坐标系统转换库,确保数据处理的空间参考一致性
# -------------------------------------------------# 5. Python环境配置# -------------------------------------------------# 如果有多个Python版本,明确指定alias python=python3.10alias pip=pip3.10# 添加Python包路径export PYTHONPATH="$HOME/.local/lib/python3.10/site-packages:$PYTHONPATH"export PATH="$HOME/.local/bin:$PATH"
# -------------------------------------------------# 6. 处理优化配置# -------------------------------------------------# 设置临时目录export TMPDIR="/tmp/insar_$(whoami)"mkdir -p $TMPDIR 2>/dev/null# 获取CPU核心数CPU_CORES=$(nproc)# 调用3/4核心(二选一)THREADS=$((CPU_CORES * 3 / 4))# 调用全部核心(二选一)# THREADS=$((CPU_CORES))#内存和线程设置export MKL_NUM_THREADS=$THREADSexport NUMEXPR_NUM_THREADS=$THREADSexport OPENBLAS_NUM_THREADS=$THREADS
3.1 快捷命令别名
# -------------------------------------------------# 7. 工具函数和别名# -------------------------------------------------# 常用命令别名alias snap-gui='$SNAP_HOME/bin/snap'alias snap-gpt='$SNAP_HOME/bin/gpt'alias matlab-gui='$MATLAB_HOME/bin/matlab -desktop'alias matlab-cli='$MATLAB_HOME/bin/matlab -nodisplay -nosplash'alias insar-menu='~/insar_menu.sh'alias insar-check='check-insar-env'alias insar-clean='clean-insar-cache'
命令功能说明:
● insar_menu.sh:该脚本为地枢遥感所开发,请进QQ交流群获取
● snap-gui / snap-gpt:快速启动SNAP图形界面和命令行工具
● matlab-gui / matlab-cli:区分图形界面和命令行MATLAB启动模式
● 功能快捷命令:环境检查、缓存清理等常用操作
# 验证环境函数function check-insar-env() { echo"=== InSAR环境检查 ===" echo"1. MATLAB: $(which matlab 2>/dev/null || echo '未找到')" echo"2. SNAP: $(which gpt 2>/dev/null || echo '未找到')" echo"3. StaMPS: $(ls $STAMPS_HOME 2>/dev/null && echo 'OK' || echo '未找到')" echo"4. snaphu: $(which snaphu 2>/dev/null || echo '未找到')" echo"5. GMT: $(which gmt 2>/dev/null || echo '未找到')" echo"6. Python: $(python3.10 --version 2>/dev/null || echo '未找到')"}
# 清理缓存函数function clean-insar-cache() { echo"清理InSAR处理缓存..." rm -rf $TMPDIR/* rm -rf /tmp/insar_* rm -rf $MATLAB_PREFDIR/cache/* echo"完成!"}
4.1 路径优先级管理
# -------------------------------------------------# 8. 路径整合(重要:保持正确顺序)# -------------------------------------------------# 最终PATH设置(按优先级排序)export PATH="$STAMPS_HOME/bin:$STAMPS_HOME/scripts:$MATLAB_HOME/bin:$SNAP_HOME/bin:$SNAP_HOME/snap-python:$HOME/.local/bin:$PATH"# 最终LD_LIBRARY_PATH设置export LD_LIBRARY_PATH="$JAVA_HOME/lib:$JAVA_HOME/lib/server:$MATLAB_HOME/runtime/glnxa64:$MATLAB_HOME/bin/glnxa64"
# =====================================================# 初始化消息# =====================================================echo"🔭 InSAR环境已加载: MATLAB R2024a + SNAP + StaMPS"echo"可用命令:"echo" insar-menu - 功能菜单"echo" insar-check - 环境检查"echo" insar-clean - 清理缓存"echo" matlab-gui - 启动MATLAB图形界面"echo" matlab-cli - 启动MATLAB命令行"echo" snap-gui - 启动SNAP图形界面"echo" snap-gpt - 启动SNAP命令行"
全部粘贴后Ctrl+X保存配置,在终端中输入:
出现初始化消息即为配置成功。
为了方便环境管理,我们写了一份脚本“insar_menu.sh”,由于代码过长,放在了QQ群里,有兴趣的朋友可以加群下载(脚本不影响正常环境配置)。
河南地枢遥感科技有限公司专注星载 InSAR 技术产业化,致力于打通从卫星数据处理、核心算法研发到行业场景落地的“最后一公里”,构建起从算法到服务的全栈式解决方案。
公司以自主可控的 InSAR 产品体系和专业技术服务为双轮驱动,围绕交通基础设施、能源电力、矿山与采空区等重点领域,提供毫米级地表形变监测、地质灾害预警与风险评估服务,帮助用户实现对大范围地质胁迫的早识别、早预警、早处置,支撑工程设施的安全运行和资产的精细化管理。
内容整理:薛俊杰 吕静珂排版编辑:吕静珂
审核:河马会讲话
欢迎各位同行、朋友关注我的哔哩哔哩账号,不定时发布InSAR处理教程与知识讲解。
欢迎加入同行、朋友与我共同维系的InSAR交流群,大家相互学习,共同进步。由于①群已超2000人、②群已超1000人,请择一加入。