在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.rcsudo 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 StaMPScd $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。
相关文章:
在windows的ubuntu LTS中安装及使用EZ-InSAR进行InSAR数据处理
EZ-InSAR(曾被称为MIESAR,即Matlab界面用于易于使用的合成孔径雷达干涉测量)是一个用MATLAB编写的工具箱,用于通过易于使用的图形用户界面(GUI)进行干涉合成孔径雷达(InSAR)数据处理…...
腾讯mini项目-【指标监控服务重构】2023-08-25
今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …...
数据挖掘(1)概述
一、数据仓库和数据挖掘概述 1.1 数据仓库的产生 数据仓库与数据挖掘: 数据仓库和联机分析处理技术(存储)。数据挖掘:在大量的数据中心挖掘感兴趣的知识、规则、规律、模式、约束(分析)。数据仓库用于决策分析: 数据仓库:是在数…...
YApi Pro
1.介绍 说明:YApi Pro 是一款高效、易用、功能强大的 API 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。它可以帮助开发者轻松创建、发布、维护 API,同时为用户提供了优秀的交互体验,开发人员可以更加高效地完…...
AUTOSAR RTE介绍(更新版230925)
RTE是什么 AUTOSAR RTE(Run Time Environment)实现了AUTOSAR系统中的虚拟功能总线(VFB),提供了SWC(Software Component)之间的访问接口和SWC对于BSW资源的访问接口。RTE为SWC中的Runnable提供与其他SWC或者BSW模块通信的接口,RTE将Runnable映射到OS Task中,并且管理Runna…...
深度学习笔记_1、定义神经网络
1、使用了PyTorch的nn.Module类来定义神经网络模型;使用nn.Linear来创建全连接层。(CPU) import torch.nn as nn import torch.nn.functional as F from torchsummary import summary# 定义神经网络模型 class Net(nn.Module):def __init__(self):super(Net, self).__init__()…...
【Java 进阶篇】MySQL 事务详解
在数据库管理中,事务是一组SQL语句的执行单元,它们被视为一个整体。事务的主要目标是保持数据库的一致性和完整性,即要么所有SQL语句都成功执行,要么所有SQL语句都不执行。在MySQL中,事务起到了非常重要的作用…...
Spring修炼之旅(3)自动装配与注解开发
一、自动装配说明 1.1概述 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean。 1.2装配机制 Spring中bean有三种装配机制,分别是: 在xml中显式配置; 在java中显式配置; 隐式…...
嵌入式Linux应用开发-基础知识-第十六章GPIO和Pinctrl子系统的使用
嵌入式Linux应用开发-基础知识-第十六章GPIO和Pinctrl子系统的使用 第十六章 GPIO 和 Pinctrl 子系统的使用16.1 Pinctrl 子系统重要概念16.1.1 引入16.1.2 重要概念16.1.3 示例16.1.4 代码中怎么引用pinctrl 16.2 GPIO子系统重要概念16.2.1 引入16.2.2 在设备树中指定引脚16.2…...
Ubuntu系统下使用apt-get安装Mysql8
记录一下在Ubuntu20.04 64位系统下面使用apt-get方式安装mysql8关系型数据库 Centos下使用yum安装Mysql8(Mysql5.7)以及常见的配置和使用 首先肯定是检查下当前Ubuntu系统是否已经安装过mysql数据库 一般拿到新的云服务器是没有安装的 rootmyw:~# whe…...
jenkins联动显示或隐藏参数
1. 添加组件 Active Choices Plug-in 如jenkins无法联网,可在以下两个地址中下载插件,然后放到/home/jenkins/.jenkins/plugin下面重启jenkins即可 Active Choices Active Choices | Jenkins plugin 2. 效果如下: sharding为空时…...
Error: Activity class {xxx.java} does not exist
git切换到不同的branch之后,报下面的错误: Error: Activity class {xxx.java} does not exist 解决方案: 首先clean 然后会删除build目录 然后点击:Invalidate Caches Android Studio重启,然后重新build即可。...
保护模式阶段测试-模拟3环0环调用
保护模式阶段测试-模拟3环0环调用 最近又复习了一下保护模式相关的内容,然后打算搞个能够把段页的大部分知识能够串联起来的测试代码 最终想到的一个项目如下: 三环部分: 0.编写一个函数读取高2g的地址内容 1.通过设备通信到0环告诉0环我新…...
Dart笔记:stream_channel 包用法
标题1 标题2 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133426961 【介绍】stream_channel是一个用…...
Java进阶必会JVM-深入浅出Java虚拟机
系列文章目录 送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 送书第三期 《深入浅出Java虚拟机》 文章目录 系列文章目录前言一、推荐书籍二…...
1200*B. Sorted Adjacent Differences(构造)
Problem - 1339B - Codeforces 解析: 题目要求每相邻两个值差的绝对值相等或递增。 先排序,可以想到我们先取两侧的数肯定相距最远,然后靠中心每次取两个数,这样符合题目要求。 直接遍历,先取的是答案靠后的数据&…...
恼人的TCP套接字部分发送成功场景
源起 以前就知道套接字有可能出现部分发送成功的可能,直到近段时间一个典型的使用场景触发了明确的此问题,才予以重视,比较深入地考虑解决这个问题的方案! 分析 因为TCP的流式特征,如果出现部分发送成功,…...
ROS2 中的轻量级、自动化、受控回放
一、说明 这篇文章描述了一种在 ROS2 中实现受控重播器的轻量级方法。用以测试中将现象重新播放一遍,以实现调参或故障定位的目的。所有源代码都可以在这里找到。该帖子也可在此处获得。 二、问题:不同步重播 任何曾经认真开发过 ROS2 的人都会知道这个问…...
Egg使用jwt拦截jtoken验证
安装 npm install egg-jwt注册插件 在config文件夹子下 plugin,js下 use strict;module.exports {//mysqlmysql: {enable: true,package: egg-mysql},//jwtjwt: {enable: true,package: egg-jwt} };使用中间件 在app文件下创建 middleware 文件夹 在middleware 文件下创建…...
装饰器模式详解和实现(设计模式 二)
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将对象添加到现有对象中,以提供额外的功能,同时又不影响其他对象。 实现示例 1.定义一个接口或抽象类,表示被装饰对象的公共接口 //抽…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
