在windows的ubuntu LTS中安装及使用EZ-InSAR进行InSAR数据处理

EZ-InSAR(曾被称为MIESAR,即Matlab界面用于易于使用的合成孔径雷达干涉测量)是一个用MATLAB编写的工具箱,用于通过易于使用的图形用户界面(GUI)进行干涉合成孔径雷达(InSAR)数据处理,利用开源软件包(ISCE+StaMPS/MintPy)进行处理。该工具箱现在可以使用ISCE生成SAR干涉图,并使用StaMPS或MintPy进行Persistent Scatters (PS) 或 Small-Baselines (SBAS) 方法的位移时间序列分析,安装过程如下。

1、安装ubuntu LTS

2、安装ubuntu远程桌面

sudo apt-get install xserver-xorg-core
sudo apt-get -y install xserver-xorg-input-all

重启桌面,每次第一次使用时都需要启动下

sudo  /etc/init.d/xrdp  restart

启动成功后会出现

使用windows远程桌面进行链接

输入ubuntu的账号和密码

进入后如图

3、安装python环境,建议安装mamba,这里介绍下其与conda环境的区别。

conda与mamba的区别

Mamba底层依赖于conda,conda是单线程,Mamba做了优化可多线程下载,Mamba兼容conda的命令。

使用​​多线程下载​​repository data和packages; Mamba使用​​libsolv加速解决依赖关系​​

Mamba的核心部分是通过C++实现,以获得最大执行效率;

最重要的是​​Mamba可与conda完美兼容​​ (将conda执行命令中的conda换做mamba即可)。

安装代码

curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh
bash Mambaforge-Linux-x86_64.sh 
sudo apt install gcc g++ gawk tcsh build-essential make git
pip install wget gitpython tree mamba

创建python环境

sudo apt install python3.8-venv
python -m venv InSARenv
source InSARenv/bin/activate

4、ubuntu中安装matlab

安装参考链接:https://zhuanlan.zhihu.com/p/572662952

安装后需要用到下面的工具箱,确保都安装好,用ver检查

Curve Fitting Toolbox

Financial Toolbox

Image Processing Toolbox

Mapping Toolbox

Optimization Toolbox

Parallel Computing Toolbox

Signal Processing Toolbox

Statistics and Machine Learning Toolbox

5、安装InSAR处理所需环境

创建安装路径及下载安装包

# A. Define the path where you want the packages to be installed (Default:Your HOME path-"$HOME") 

EZINSAR_HOME="$HOME"           		  #Set the install path 

tools_insar=$EZINSAR_HOME/tools_insar
tool_DIR=$tools_insar/proc_insar
sudo mkdir -p $tool_DIR

# B. Download the source code (EZ-InSAR, ISCE, MintPy, StaMPS, TRAIN)
## Download EZ-InSAR source file, and put the unzipped EZ-InSAR into the "EZINSAR" directory in $tool_insar.

sudo git clone https://github.com/alexisInSAR/EZ-InSAR.git $tools_insar/EZ-InSAR
sudo mv $tools_insar/EZ-InSAR $tools_insar/EZINSAR

## Download the InSAR processor codes 
sudo git clone https://github.com/isce-framework/isce2.git $tool_DIR/isce2  
sudo git clone https://github.com/insarlab/MintPy.git      $tool_DIR/MintPy 
sudo git clone https://github.com/insarwxw/StaMPS.git      $tool_DIR/StaMPS
sudo git clone https://github.com/dbekaert/TRAIN.git       $tool_DIR/StaMPS/TRAIN

# C. Edit the configuration file
## 1) - Copy the configure template file "config_InSARenv.template" from the "EZINSAR/EZINSAR_BIN/docs/" directory into "$tools_insar";  
##    - Check and replace the PATH variable "$EZINSAR_HOME" in "config_InSARenv.rc" (Line #3). 
##    - Check and replace the Path varialbe $APS_toolbox in TRAIN 
##    - The other variables do not need to be modified if you strictly follow this install instruciton.

sudo cp $tools_insar/EZINSAR/EZINSAR_BIN/docs/config_InSARenv.template $tools_insar/config_InSARenv.rc

sudo sed -i "/EZINSAR_HOME=/c\EZINSAR_HOME=$EZINSAR_HOME"  $tools_insar/config_InSARenv.rc
sudo sed -i "/APS_toolbox=/c\APS_toolbox=$tool_DIR/StaMPS/TRAIN" $tool_DIR/StaMPS/TRAIN/APS_CONFIG.sh

## 2) Add the following lines in your "$HOME/.bashrc" file. 
##    Note you have to change the variable "$EZINSAR_HOME" if it is installed in a differnt PATH (e.g., /usr/local). 

# EZ-InSAR & InSARenv
EZINSAR_HOME="$HOME"           		 
export tools_insar="$EZINSAR_HOME/tools_insar"
alias load_insar='conda activate InSARenv; source $tools_insar/config_InSARenv.rc'

# **IMPORTANT**: Run `load_insar` in the terminal to load the "InSARenv" environmental and PATH variables before running EZ-InSAR each time.

5、安装ISCE2

ISCE(InSAR Scientific Computing Environment)是一个用于地球表面形变监测和地震研究的开源软件工具包。它主要用于分析合成孔径雷达干涉测量(InSAR)数据,这些数据可以通过卫星或飞机获取,用于监测地表的微小变形,如地壳运动、火山活动、地震后的变形等。

ISCE提供了一系列用于处理InSAR数据的工具和库,以及用于数据预处理、核心干涉计算、变形建模和可视化的功能。这使得地球科学家和地球监测研究人员能够更好地理解地表的形变过程,从而更好地理解地质和地球物理现象。

ISCE是一个由NASA Jet Propulsion Laboratory(JPL)开发和维护的开源项目,它在地球科学领域广泛使用,并且在处理合成孔径雷达数据时具有很高的灵活性和可扩展性。这个工具包通常用于研究地壳变形、冰川变化、火山活动等领域的研究。这里安装较费时间。

mamba install -c conda-forge isce2

6、安装MintPy

MintPy(Miami INsar Time-series software in PYthon)是一个用于合成孔径雷达干涉测量(InSAR)数据处理和分析的开源软件工具包。它是由佛罗里达大学(University of Florida)的研究人员开发的,旨在帮助科学家和工程师处理和分析InSAR数据,以了解地表的形变情况。

MintPy提供了一系列功能,包括数据预处理、干涉计算、时序分析、形变建模和可视化工具。用户可以使用MintPy来处理卫星或飞机获取的雷达干涉数据,以监测地壳运动、地震、火山活动、地下水抽取等引起的地表形变。该工具包具有用户友好的界面,并且支持多种不同的InSAR数据格式。

MintPy是一个强大且灵活的工具,适用于各种地球科学研究领域,包括地质学、地球物理学、环境科学等。它可以帮助研究人员从InSAR数据中提取有关地表变化的重要信息,并用于了解地球上不同地区的地形演化和变化趋势。此外,MintPy是一个开源项目,因此用户可以自由访问和定制其代码以满足特定需求。

# Install the mintpy requirements first and then the source code.
# 
cd $tool_DIR
mamba install -c conda-forge --file ./MintPy/requirements.txt

#Close and restart the shell for changes to take effect
python -m pip install -e ./MintPy

7、安装StaMPS

StaMPS(Stanford Method for Persistent Scatterers)是一种用于分析合成孔径雷达干涉测量(InSAR)数据的计算方法和工具包。它是由斯坦福大学的研究人员开发的,用于提取并分析具有较高干涉稳定性的地表散斑(Persistent Scatterers),这些散斑通常是建筑物、桥梁、电线塔等地表特征。

StaMPS的主要目标是识别和监测这些Persistent Scatterers的变化,从而了解地表的形变情况。StaMPS通过多次采集卫星雷达数据,识别在不同时期观测中散斑位置的相对稳定性,以便精确测量地表的形变、沉降或抬升。这对于地质研究、地震监测、城市规划和环境监测等应用非常有用。

StaMPS工具包包括一系列用于数据处理、干涉计算、变形建模和可视化的工具和算法。它通常用于处理高分辨率的卫星雷达数据,如TerraSAR-X、COSMO-SkyMed和Sentinel-1等。StaMPS已经在地球科学研究领域得到广泛应用,特别是在地壳运动、地震监测、城市沉降等领域,为科学家提供了有关地表变化的重要信息。

需要注意的是,StaMPS是一个相对复杂的工具,需要一定的专业知识来正确使用和解释结果。因此,它通常由地球科学领域的专家和研究人员使用。

### check which version of gcc
gcc -v  
#$ gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)

sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install -y gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7
sudo update-alternatives --config gcc
sudo update-alternatives --config g++ 

# A. Compile the files in the "src" directory in StaMPS

cd $tool_DIR/StaMPS/src
sudo make
sudo make install

# B. Install "snaphu" & "triangle"  
# After the installation, run `which snaphu` && `which triangle` in the terminal to check their paths. 
# If the echo paths are not "/usr/bin", then modify the varialbes "SNAPHU_BIN" and "TRIANGLE_BIN" in the "config_InSARenv.rc" to the correct values.

sudo apt install snaphu 
sudo apt install triangle-bin

8、安装EZ-InSAR

EZ-InSAR最大程度地减少了用户下载、参数化和处理SAR数据的工作,因此使那些对InSAR不太熟悉但仍然可以自行生成和分析地表位移的人能够轻松使用。EZ-InSAR还是大西洋地质灾害风险管理平台(AGEO)项目的一项贡献,该项目通过欧洲区域发展基金(European Regional Development Fund)资助,旨在帮助管理大西洋地区的地质风险。

这个工具箱的主要优点在于它的用户友好性,它使不熟悉InSAR技术的用户能够利用开源工具进行地表形变分析。它的目标是让更多的人能够使用InSAR技术,以更好地了解地表的变化和可能的地质风险。

mamba install fiona geopandas rasterio

cd $tool_DIR
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo unzip awscliv2.zip
sudo ./aws/install

在安装文件夹下的EZINSAR_BIN中修改文档pathinformation.txt中内容,将account-name、password改为ASF网站的账号和密码,下载Sentinel-1 数据用。

ASFID 	account-name
ASFPWD  password 

9、测试安装成功否

刷新安装环境,加载环境

source $HOME/.bashrc
load_insar  # warm up conda environment
echo $PATH
echo $TOOL_DIR $DATA_DIR $WEATHER_DIR

测试ISCE-2

topsApp.py -h

如下则安装成功

测试MintPy

smallbaselineApp.py -h

如下则安装成功

测试PySolid

solid_earth_tides.py -h

如下则安装成功

测试PyAPS

tropo_pyaps3.py -h

如下则安装成功

测试StaMPS

mt_prep_isce

如下则安装成功

10、启动EZ-InSAR

进入远程桌面,在命令窗口中输入:

load_insar

加载运行环境,再输入

matlab

启动matlab环境

如下:

11、使用EZ-InSAR

在matlab中输入EZ_InSAR,启动软件

在2中选择运行文件夹,点击后进入处理界面

具体使用参考手册:
https://github.com/alexisInSAR/EZ-InSAR/blob/Version_2_0_3_Beta/EZINSAR_BIN/docs/EZ_InSAR_manual_v2_0_3_beta.pdf

12、ubuntu环境迁移

由于默认ubuntu安装在c盘,会导致c盘存储不足的情况,因此建议迁移

  • 准备工作
    打开CMD,输入wsl -l -v查看wsl虚拟机的名称与状态。
    了解到本机的WSL全称为Ubuntu-22.04,以下的操作都将围绕这个来进行。
    输入 wsl --shutdown 使其停止运行,再次使用wsl -l -v确保其处于stopped状态。
  • 导出/恢复备份
    在D盘创建一个目录用来存放新的WSL,比如我创建了一个 D:\Ubuntu_WSL 。
    导出它的备份(比如命名为Ubuntu.tar)

wsl --export Ubuntu-22.04 D:\Ubuntu_WSL\Ubuntu.tar

确定在此目录下可以看见备份Ubuntu.tar文件之后,注销原有的wsl

wsl --unregister Ubuntu-22.04

将备份文件恢复到D:\Ubuntu_WSL中去

wsl --import Ubuntu-22.04 D:\Ubuntu_WSL D:\Ubuntu_WSL\Ubuntu.tar

这时候启动WSL,发现好像已经恢复正常了,但是用户变成了root,之前使用过的文件也看不见了。

  • 恢复默认用户
    在CMD中,输入 Linux发行版名称 config --default-user 原本用户名

Ubuntu2204 config --default-user cham

请注意,这里的发行版名称的版本号是纯数字,比如Ubuntu-22.04就是Ubuntu2204。

相关推荐
Peter_chq32 分钟前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮1 小时前
Linux 使用中的问题
linux·运维
hairenjing11231 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
dsywws2 小时前
Linux学习笔记之vim入门
linux·笔记·学习
九鼎科技-Leo3 小时前
了解 .NET 运行时与 .NET 框架:基础概念与相互关系
windows·c#·.net
幺零九零零3 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
小林熬夜学编程5 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
程思扬5 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
sun0077005 小时前
拷贝 cp -rdp 和 cp -a
linux·运维·服务器
wowocpp5 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu