ISCE2重新配置,处理哨兵数据(仅个人记录,详细内容以官方为准)

ISCE2针对的Ubuntu22.04进行安装和处理

python版本≥3.9
安装配置好conda环境,具体可参考:https://blog.csdn.net/qq_46026166/article/details/157033069
conda install -c conda-forge isce2
git clone https://github.com/isce-framework/isce2.git
gedit ~/.bashrc,设置环境变量

isce2 pre_process

export ISCE_HOME=/home/***/miniconda3/envs/isce2_env/lib/python3.8/site-packages/isce
export PYTHONPATH=$ISCE_HOME/applications:$ISCE_HOME/components
export PATH=${PATH}😒{ISCE_HOME}/applications:$ISCE_HOME/bin

process script

export ISCE_STACK=/home/bvt/isce2/contrib/stack
export PYTHONPATH=${PYTHONPATH}😒{ISCE_STACK}
export preStack_to_stamps=/home/***/isce2/contrib/timeseries/prepStackToStaMPS
export PATH=${PATH}:$ISCE_STACK/topsStack:$ISCE_STACK/alosStack

note $ISCE_STACK/stripmapStack: tops strip must choose one naming conflicts

source ~/.bashrc或打开新的终端进行环境,输入stackSentinel.py脚本正常
conda install -c conda-forge sentineleof 安装可自动下载精密轨道
conda install -c conda-forge sardem 安装可自动下载ISCE格式的DEM数据
conda install -c conda-forge burst2safe 可指定下载部分哨兵数据进行处理,减少储存
conda install -c conda-forge mintpy 进行后续的时序分析

本文章主要用于对已经安装过的ISCE环境迁移至另一台电脑
这里,默认已经安装过conda。
进入anaconda目录将envs中的isce环境进行打包:tar -cJpf isce2_env.tar.xz isce2_env/
随后,将其拷贝到另一台电脑上,对其进行解压:tar -xJpf isce2_env.tar.xz conda env list 可发现,相应的环境已经复制到新的电脑上
添加相应的环境:
注意两个系统的计算机名不一样的话,会报解释器错误:没有那个文件或目录;不建议直接修改至原始计算机名,可能会导致系统异常。
不要处理链接文件(clear命令无法正常使用,直接利用系统的usr/bin/clear)
原始路径 | 新路径
find . -type f -name "*.py" -exec sed -i "s|/home/原始计算机名/anaconda3/envs/isce2_env/bin/python3.8|/home/新计算机名/anaconda3/envs/isce2_env/bin/python3.8|g" {} +
git clone https://github.com/isce-framework/isce2.git(或者打包之前的文件)
数据处理
mkdir AuxDir(2015年3月后,一般不需要AUX_CAL文件) DEM Orbits process(stackSentinel.py的输出文件路径) SLC

1、准备DEM

cd DEM
dem.py -a stitch -b 26 29 102 106 -r -s 1 -c(下载1 arc srtm,并应用EGM96校正至WGS84);dem.py -a download -b 26 29 102 106 -r -s 1 -c(仅下载)
gedit .netrc
machine urs.earthdata.nasa.gov (maybe noe need this line)
login username
password password
conda install sardem
sardem --bbox 26 102.0 29 106 --data COP -isce
移动dem的时候,记得修改相应xml的路径,不然第一步会报错,程序找不到dem的路径

2、准备精密轨道(SLC数据压缩包也可)

conda install -c ocnda-forge sentineleof ; eof --search-path SLC --save-dir Orbits

3、设置处理参数,配置批量处理文件

stackSentinel.py -s raw_data/ -o Orbits/ -a AuxDir/ -w work_dir -d DEM/elevation.dem -p vv -W interferogram -n ‘1 2 3’ -C NESD -m 20191008 --snr_misreg_threshold 10 -e 0.8 -z 2 -r 8 -f 0.5 -u snaphu -rmFilter --num_proc 4 --num_proc4topo 4
各参数含义,注意大小写含义不同:
-s 原始哨兵数据存放路径(SAFE或zip)-o 精密轨道路径 -a AUX_DIRNAME(固定空文件2015年3月前) -w 工作路径 -d DEM路径(wgs84椭球高)-p 极化方式(vv)-W 处理到哪一步(slc,默认interferogram)
研究区参数:-n subswath处理的number,默认全部 -b 研究区经纬度范围(不指定,默认根据stack公共重叠范围)
日期参数:-x 排除处理的影像日期 -i 包含需要处理的影像日期(默认none) --start_date --stop_date
配准参数:-C (geometry,默认NESD) -m 参考影像日期 --snr_misreg_threshold(默认10,估计距离向的误配准) -e (默认0.85的相干性阈值,利用ESD估计方位向的误配准)-O 进行ESD的时候,默认每个日期与后续三个日期相连形成干涉对,进行计算NESD
干涉参数:-c 每副影像与后续影像形成干涉对的连接对数量,默认1 -z 方位向视数 -r 距离向视数 -f 滤波强度默认0.5 -u
相位解缠参数:-u (icu,snaphu默认) -rmFilter 生产额外的未滤波的解缠结果
电离层参数:
计算参数: -useGPU --num_proc 并行任务计算 --num_proc4topo -t -V
执行上述命令,生成config文件(20个)和run_files文件夹
进入process/run_files chmod 777 *
1、./run_01_unpack_topo_reference 在上级目录,生成geom_reference和reference文件夹,对影像和DEM进行处理
在run_files同级目录下,生成reference文件夹,对主影像进行解压等预处理。
内部执行:SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_reference (config_reference为主影像和DEM的路径及基本参数)
SentinelWrapper.py根据config_reference中的Function1和2分别执行Sentinel1_TOPS预处理和topo几何参数处理(各burst的入射角、阴影、高程等几何参数)
可利用mdx.py脚本对输出的文件进行可视化查看。(SentinelWrapper.py -s(起始) -e(结束))

2、./run_02_unpack_secondary_slc 在上级目录,生成secondarys文件夹,对副影像进行处理(和主影像一样,生成的都是.vrt(虚拟文件,不存储实际像素)和.xml元数据)
内部执行:SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_secondary_20200609 (Function1:Sentinel1_TOPS)

3、./run_03_average_baseline 在上级目录,生成baselines文件夹,计算各subswath的平均基线。
内部执行:SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_baseline_20200609 (Function1:computeBaseline)
输出三个subswath的平行基线(B_par)和垂直基线(B_perp)(逐burst求取基线,对每个subswath的9个burst估计的基线求取平均)

4、./run_04_extract_burst_overlaps 在reference目录中,生成overlap文件夹,提取相邻burst的重叠区,生成轻量化索引和元数据。
subsetReference.py -m /media/AAAA/新加卷/test_sbas/process/reference -g /media/AAAA/新加卷/test_sbas/process/geom_reference
burst_top_01_02.slc(存储上Burst的重叠部分,Burst1 的尾部)、burst_bot_01_02.slc(存储下Burst的重叠部分,Burst2的头部),为提取的重叠影像生成新的.xml元数据(如reference/overlap/IW1_bottom.xml);这里的上下并不是两个独立的区域,而是相同的区域,只是一个Burst1 的尾部,另一个Burst2的头部。
5、./run_05_overlap_geo2rdr 在上级目录,生成coreg_secondarys文件夹(里面包含副影像的overlap);在geom_reference目录下生成overlap;计算公共区域,生成burst重叠区的偏移量
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_overlap_geo2rdr_20200609 (Function1:geo2rdr)
每个像素对应一个地面点(DEM)锁定地面同一点 → 算它在主、副影像的雷达坐标 → 坐标差就为几何偏移量
6、./run_06_overlap_resample 在副影像目录的overlap文件夹中生成具体的slc文件(resample)
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_overlap_resample_20200609 (Function1:resamp_withCarrier)

7、./run_07_pairs_misreg 在上级目录,生成coarse_interferograms、ESD、misreg文件夹(耗时)
SentinelWrapper.py -c /media/****/新加卷/test_sbas/process/configs/config_misreg_20200609_20200621 (Function1:generateIgram;Function-2:overlap_withDEM;Function-3:estimateAzimuthMisreg;Function-4:estimateRangeMisreg)
Function-2:通过上下burst干涉图的复数共轭相乘,突出两者的相位差异;为抑制噪声,做了5x15的多视,生成相干文件(5x5的估计窗口);脚本通过 overlapSpectralSeparation 函数,结合上、下Burst的轨道参数(如卫星速度、多普勒频率)和偏移量(.off 文件),计算 “Burst间的频率差异生成频率差异文件(量化burst跳变来源,是轨道误差带来的频率差异还是配准误差带来的几何差异);输出文件存储在ESD的主副影像目录下,overlap_xx.int和cor,可通过mdx.py可视化查看,freq_xx.bin为二进制浮点文件。多视双差干涉图,相干文件,多视频率差异文件均作为ESD的输入。
Function-3:计算方位向残余相位差。合并每个IW的双差干涉图、频率差异和相干性;逐像素估计方位向残余误差,单个像素的误差:off = np.angle(ifg) / freq(双差相位/频率差异),off为正值,表示次级影像在该位置比参考影像偏 “后”(沿卫星飞行方向);负值表示偏 “前”,需要通过后续重采样修正。逐像素误差存储在combined.off文件中,记录IW全区域的方位向残余误差分布;质量筛选,只保留0.85的高相干像素;统计分析,计算方位向的方位向残余误差(中位数误差(核心)、平均值、标准差)
Function-4:计算距离向残余配准误差(通过振幅相关算法)。信噪比为10
注意:软件的配准方式,默认生成连续的3个影像对进行计算。这样能保证更多的冗余,避免某些影像相干性极差的情况,下一步通过invertMisreg.py获取精确相对于主影像的偏移量。

8、 ./run_08_timeseries_misreg 反演相当于主影像的偏移量

invertMisreg.py -i /media/AAAA/新加卷/test_sbas/process/misreg/azimuth/pairs/ -o /media/AAAA/新加卷/test_sbas/process/misreg/azimuth/dates/
invertMisreg.py -i /media/AAAA/新加卷/test_sbas/process/misreg/range/pairs/ -o /media/AAAA/新加卷/test_sbas/process/misreg/range/dates/

9、 ./run_09_fullBurst_geo2rdr 将上步求得的偏移量,修正副影像相对于主影像的位置;全burst的校正(耗时)
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_fullBurst_geo2rdr_20200609 (Function1:geo2rdr)

10、 ./run_10_fullBurst_resample
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_fullBurst_resample_20200609 (Function1:resamp_withCarrier)

11、 ./run_11_extract_stack_valid_region 生成stack文件夹 提取有效公共范围,主要输出参数信息
extractCommonValidRegion.py -m /media/AAAA/新加卷/test_sbas/process/reference -s /media/****/新加卷/test_sbas/process/coreg_secondarys

12、 ./run_12_merge_reference_second 虚拟合并
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_20200621 (Function1:mergeBursts)
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_lat (Function1:mergeBursts)
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_lon
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_los
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_hgt
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_shadowMask
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_incLocal
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_20200609
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_20200703
SentinelWrapper.py -c /media/AAAA/新加卷/test_sbas/process/configs/config_merge_20200715

13、 ./run_13_generate_burst_igram 生成单个非重叠区burst干涉图(参数中,未进行平地和地形去除)
SentinelWrapper.py -c /home/****/isce_process/process/configs/config_generate_igram_20230205_20230217 (Function1:generateIgram)

14、 ./run_14_merge_burst_igram 虚拟合并;取burst上方
SentinelWrapper.py -c /home/AAAA/isce_process/process/configs/config_merge_igram_20230205_20230217 (Function1:mergeBursts)

15、 ./run_15_filter_coherence 滤波和相干性估计
SentinelWrapper.py -c /home/AAAA/isce_process/process/configs/config_igram_filt_coh_20230205_20230217 (Function1:FilterAndCoherence)

16、./run_16_unwrap 相位解缠
SentinelWrapper.py -c /home/AAAA/isce_process/process/configs/config_igram_unw_20230205_20230217 (Function1:unwrap)

mdx.py filename #view the data

posted @ 2025-09-30 11:39  wenguang0412  阅读(360)  评论(0)    收藏  举报