记录一下StamPS+SBAS的过程

本文主要记录一下做SBAS的过程,主要参考了B站up主刘博士的视频,其中也遇到了一些问题进行解决,在此记录一下整体过程。

  1. 安装双系统Ubuntu18.04.6

①在镜像源中下载:http://mirrors.163.com/ubuntu-releases/

找到ubuntu-18.04.6-desktop-amd64.iso下载即可,下载较慢可以复制下载地址粘贴到IDM中进行下载。

②利用软碟通制作启动u盘。准备好镜像文件和一个大于8G的U盘,U盘里的文件记得备份好,软碟通制作u盘的过程可参考网上的资料,这个还是比较简单的。

③磁盘分区。准备好一个大于200G的磁盘空间用于安装Ubuntu系统,并在系统盘中分个200M做EFI启动项(我是双固态硬盘)。

④重启电脑安装Ubuntu系统。插好启动u盘,开机时进入BIOS界面,用上下左右键找到设置启动项,可能在setting里,选择启动u盘优先启动,保存并退出。然后就进入安装界面,选择install Ubuntu,前面可根据自行需求进行设置。

手动分区:

EFI启动区:选择200M的空闲区域,点击+,Primary,加载方法为Beginning of this space,Use as选择EFI System Partition,OK;(分好后变为efi, unknown,注意与window的区分)

swap交换区:选择20000多M的空闲区域,点击+,Size设置为你的内存大小(我的为16384MB),Logical,加载方法为Beginning of this space,Use as选择swap area,OK;

根目录区:选择剩余的20000多M的空间区域,点击+,Logical,加载方法为Beginning of this space,Use as选择Ext4 journaling file system,Mount point:/,OK;

注意:Device for boot loader installation必须选择与EFI相同的挂载点,注意名称,否则会安装失败。

点击install now,继续安装即可。


问题:安装Ubuntu完成但是发现没有网络?

答:这个我尝试过安装驱动,但是没能成功,可能要对应版本的才行。有另外两种办法,一个是直接用网线直连,有宽带的可以加条网线连接即可,用手机的热点也可以;另一个是上淘宝买个20块的无线网卡,我试了即插即用,直接就能搜到wifi。


问题:如何重装Ubuntu双系统?

答:重装的话直接先进入windows系统,在磁盘管理删除掉分给Ubuntu的空间即可,然后重新安装步骤安装就行,考虑到可能因修改系统文件无法进入Ubuntu界面导致的后果(新手的我也重装过)

  1. 安装ISCE软件(使用cmake方法)

①安装Cmake(版本要求3.13以上)

下载链接:https://cmake.org/files/v3.22/

直接找到cmake-3.22.1.zip下载就行。

进入cmake-3.22.1文件夹,打开终端,运行./configure命令,看看是否满足运行条件,有报错提示按照提示来改就行,如果满足会提示now run:make、sudo make install,按照提示运行即可。


安装多个版本gcc、g++并指定为7的方法:

sudo apt install software-properties-common

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt install gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7

sudo update-alternatives --config gcc

然后选择g++-7那个即可。


提示找不到OpenSSL:sudo apt-get install libssl-dev


②安装Cython

下载链接:https://pypi.org/simple/cython/

找到Cython-0.29.1.tar.gz下载下来。

到Cython-0.29.1文件夹中运行:

sudo python3 setup.py install

③安装好预备的库

sudo apt-get install python-pybind11

sudo apt install -y gfortran libmotif-dev libhdf5-dev libfftw3-dev libgdal-dev scons python3 cython3 python3-scipy python3-matplotlib python3-h5py python3-gdal python3-pip gdal-bin

④安装ISCE

参考链接:https://github.com/isce-framework/isce2

将isce包下载下来,放到你的Ubuntu文件夹中。

在isce文件夹中搜索给geogrid.cpp和geogridOptical.cpp两个文件添加一行头文件:

#include <ogr_spatialref.h>

进入isce文件夹,打开终端,运行:

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/isce (这个路径也是参考UP主来弄的)

make install

编译成功后,复制原来isce文件夹中的contrib文件夹到usr/local/isce/packages/isce里,由于没有访问权限要使用sudo,在文件夹中运行进行复制:sudo cp -r contrib /usr/local/isce/packages/isce

配置bashrc环境:

export ISCE_HOME=/usr/local/isce/packages

export PYTHONPATH=$ISCE_HOME:$ISCE_HOME/isce:$PYTHONPATH

export PATH=$ISCE_HOME/isce/applications:$ISCE_HOME/isce/contrib/stack/topsStack:$ISCE_HOME/isce/contrib/timeseries/prepStackToStaMPS/bin:/usr/local/isce/bin:$PATH

然后在终端中运行:source ~/.bashrc 更新一下命令即可。

最后验证一下:

在终端里:

python3

import isce

isce.version.release_version

看到版本即安装ISCE成功。


No CMAKE_Fortran_COMPILER could be found报错:sudo apt install gfortran


Gtk-Message: 18:27:05.223: Failed to load module "canberra-gtk-module":

sudo apt-get install libcanberra-gtk-module


报错FFTW:sudo apt-get install fftw3 fftw3-dev fftw3-doc


切换为Python3:

查看位置

python3 --version

python --version

建立软链接

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

设置优先级:

sudo update-alternatives --config python

  1. 安装matlab R2022b

参考:https://mp.weixin.qq.com/s/Tve3e1aBcJ7ogSrHZN9mNw

  1. 安装StamPS

需准备的环境:

sudo apt-get install gawk

sudo apt-get install tcsh

sudo apt-get install csh

sudo apt-get install matlab-support

sudo apt-get make

sudo apt-get build-essential g++

①安装snaphu

下载链接:SNAPHU (stanford.edu)

在终端运行:

sudo mkdir /usr/local/man/man1

cd到文件夹的src里,运行:

make

sudo make install

②安装Triangle

sudo apt-get install triangle-bin

③安装TRAIN

下载链接:David Bekaert

后续在matlab中添加TRAIN-master的matlab路径即可。

④安装StamPS

下载链接:GitHub - dbekaert/StaMPS: Stanford Method for Persistent Scatterers

解压得到stamps文件夹。

cd /StaMPS-master/src

make

sudo make install

⑤配置bashrc环境

export STAMPS="/home/lhf/StaMPS-master"

export TRIANGLE_BIN="/usr/bin"

export SNAPHU_BIN="/usr/local/bin"

export TRAIN="/home/lhf/TRAIN-master"

export MATLABPATH=$STAMPS/matlab:$TRAIN/matlab:`echo $MATLABPATH`

export PATH=${PATH}:$STAMPS/bin:$TRIANGLE_BIN:$SNAPHU_BIN

到这环境基本上就配置好了~

5. 进行SBAS实验

参考:https://github.com/isce-framework/isce2/blob/main/contrib/stack/topsStack/README.md

首先注册earthdata账号,并添加LPDAAC服务、LP DAAC data pool、LP DAAC OPeNP,这个可以参考我上一篇博客:https://blog.csdn.net/amazing_jack/article/details/128656045?spm=1001.2014.3001.5501

在实验文件夹中创建:AxuDir、DEM、Orbits、SLC四个文件夹

将下载好的哨兵数据slc放在SLC里

①进入DEM文件夹下载拼接DEM,运行(4个数字代表经纬度,适当大一点)

dem.py -a stitch -b 34 37 111 114 -r -s 1 -c

rm demLat*.dem demLat*.dem.xml demLat*.dem.vrt

处理只剩4个文件


提示not found curl无法下载:sudo apt-get install curl


②新建Process文件夹(注意文件夹名称不能有空格)

Mkdir Process

进入Process文件夹中运行,生成配准后的SLC(4个参数对应SLC、DEM、AxuDir、Orbits):

stackSentinel.py -s ../SLC/ -d ../DEM/demLat_N36_N39_Lon_E100_E104.dem.wgs84 -a ../AuxDir/ -o ../Orbits -b '37 38.5 100.3 102' -W slc

处理没问题的话形成得到run_files文件夹

③运行run_files里的所有命令:

./run_0**

这一步处理时间较长,我总共有13个run

创建input_file文件,内容如下,reference修改(时间20180419改为你的参考影像时间,其他路径根据你的来改):

source_data slc_stack

slc_stack_path /media/lhf/Backup_Plus/SBAS/Process/merged/SLC

slc_stack_reference 20180419

slc_stack_geom_path /media/lhf/Backup_Plus/SBAS/Process/merged/geom_reference

slc_stack_baseline_path /media/lhf/Backup_Plus/SBAS/Process/merged/baselines

range_looks 40

azimuth_looks 10

aspect_ratio 4

lambda 0.056

slc_suffix .full

geom_suffix .full


下载opencv:

sudo python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

④根据官方手册进行处理

官网文档连接:ISCE 2 StaMPS Manual (usermanual.wiki)

make single master stack isce mt extract info isce 进入matlab

ps_load_info

生成干涉图网(可以自行设置)

sb find (rho min , Ddiff max , Bdiff max) sb find (0.4,48,150)

plot sb baselines(这一步我报错了,不过没关系)

进入INSAR_master_date文件夹:

make small baselines isce

进入生成的SMALL_BASELINES文件夹:

mt_prep_isce 0.3 3 2 20 20

生成3*2个patch块,然后就可以进入matlab利用stamps处理啦

在matlab中每一个patch运行stamps(1,5)

然后返回上一目录运行

setparm('small_baseline_flag', 'y')

stamps(1,1)

再运行

stamps(6,6)

stamps(7,7)

即处理完成,可以反复运行stamps(6,7),使得解缠结果更加准确

ps_plot('V-do',1,0,0,'ts');绘制SBAS时间序列形变图

这就是StamPS-SBAS的整个处理过程了,还是花了比较多的时间的,其中可能还有很多不完善的地方,欢迎各位指出相互交流,TY。


可能会出现有个patch里的pscands文件是空的情况,可参考:Empty pscands files --- Error in llh2local (line 39) z=llh(2,:)~=0; Error in ps_load_initial_isce (line 161) xy=llh2local(lonlat',ll0)*1000; Error in stamps (line 281) ps_load_initial_isce(data_inc) · Issue #28 · dbekaert/StaMPS · GitHub

qgmeng1提到了这种情况,可编辑patch.list文件,将错误的patch删掉(文件夹也对应删除),再运行即可。

主要参考:

StamPS-SBAS参考:https://www.bilibili.com/video/BV1pm4y1976U?p=2&vd_source=5897ef2245bbf96656b07e9ef7ba73e6

双系统Ubuntu安装过程参考:https://www.bilibili.com/video/BV1F44y1m7ZL/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=5897ef2245bbf96656b07e9ef7ba73e6

StamPS安装参考:(66条消息) StaMPS4.1+ISCE2.5安装记录(已经把后期出现问题的解决方案加进去了,所以按照这个流程不会出错)_boost66的博客-CSDN博客

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值