###### tags: `timeseries` `isce` `sbas` `PSInSAR` `Sentinel1` `stripmap` # ISCE TOPS-stack 教學 :::info **Introduction** 1. ISCE 為SAR處理前軟體,主要用於產生配準/解纏過的影像對。在此處使用的是開源版本的isce。 2. StaMPS 為PS-InSAR 時間序列處理程式,包含single master與sbas 兩種執行模式,需在matlab中執行,也需要在使用前設定stamps 環境變數。 4. mintpy([Miami INsar Time-series software in PYthon](https://github.com/insarlab/MintPy)),為SBAS處理軟體,使用前同樣需要設定minpy 環境變數。 :::spoiler Reference for the software ISCE - Rosen, P. A., Gurrola, E., Sacco, G. F., & Zebker, H. (2012). The InSAR scientific computing environment. In EUSAR 2012; 9th European Conference on Synthetic Aperture Radar (pp. 730–733). ::: :::info **相關連結** - [ISCE-Stamps/MTI (PS)](/Je0fJkX_TsS1nqCoaW2bwA) - [StaMPS/MTI (PS)](/hxddWhmLRuS5M6MGoi9W8Q) - [ISCE-mintpy (SBAS)](/oPMP3nM7QD-woHP_KjN4BA) - [ISCE-Stripmap processing Note](/vcIv754cRB2NhO53xuQkAQ) ::: ## Sentinel-1 image - 使用前需要設定環境變數 `export PATH=$ISCE_HOME/contrib/stack/topsStack:$PATH` - 使用stackSentinel.py的腳本來執行 - ISCE主要有兩種 workflow 與對應的時間序列軟體可以選擇: - slc: StaMPS/MTI - interferogram: Mintpy(SBAS) ### Step 1: DEM 生成 如果使用開源ISCE, 並不會產生DEM檔案,但是可以利用topsApp.py處理DInSAR影像來獲得DEM。 或是還有以下方法可以[建立dem](http://earthdef.caltech.edu/boards/4/topics/483) 1. 利用 dem.py ` dem.py -a stitch -b 25 26 121 122 -r -s 1` - -a: ACTION, 再這邊執行拼接. - -b: 範圍, 必須是整數(S N W E)' - -r: report. - -c: 將座標系統由EGM96 -> WGS84 - -f: (filled)填補空白區域 - -s: 選擇使用的strm 種類(1 or 3) * 如果使用anaconda環境下dme.py無法下載DEM,其原因是DEM的預設下載網站變更,但是原始碼並未更新,需要改成以https憑證下載。 2. GDAL ```bash= gdal_translate -of ISCE combinedDEM.vrt stitched.dem gdalbuildvrt combinedDEM.vrt stitched.dem ``` 最後,需要將DEM中路徑改為絕對路徑: `fixImageXml.py -i DEM_FILE.dem` ### Step 2: 依照需求建立影像推(Stack) ### ISCE-StaMPS/MTI (slc workflow) 執行以下指令來建立影像堆,使用的處理流程(workflow)為slc。 ```bash= IMG=IMG_DIR ORB=ORB_DIR AUX=AUX_DIR DEM=DEM_DIR BBOX= MASTER=20201218 stackSentinel.py -W slc -s $IMG -o $ORB -a $AUX \ -m $MASTER -b "$BBOX" -d $DEM ``` * ORB與AUX檔案可以預先下載或指定空資料夾自動下載(研究室有已經下載好的) * 但是DEM必須要自行生成(也可以自行使用5m/20m DEM) * 完成後會產生run_files 資料夾、config資料夾、SAFE_FILES,然後依據執行run_files中 run01~run13 即可。 * 執行時可以只用以下指令來平行化 `parallel -j n_core -a run_script` **[注意]** - 但是注意geo2rdr, resample 等指令原本的計算量較大,應避免平行化 - 部份指令平行化不見得會較快速(磁碟寫入速度有上限,e.g. merge) **接下來的步驟請參照:** [Stamps/MTI(isce) NOTE](/Je0fJkX_TsS1nqCoaW2bwA) ---- ### ISCE-mintpy (interferogram workflow) - 同PSInSAR, 但在workflow 選擇 interferogram(預設,不須額外指定), 不需要選擇master, 使用-c 在時間上選擇時間最鄰近的5張: ```bash dem=your_dem_path SLC=PATH_to_SLC AUX=PATH_to_AUX ORB=PATH_to_ORB BBOX="S N W E" start=yyyy-mm-dd stop=yyyy-mm-dd sentinelStack.py -s $SLC -a $AUX -o $ORB -d $dem -c 5 \ -b "$BBOX" --start_date $start --stop_date $stop ``` - 結束後會產生run_files資料夾,並有run_01~run_16,依序執行後可開始進行小基線處理。 - 之後的操作流程請參考: [ISCE-mintpy processing NOTE](/oPMP3nM7QD-woHP_KjN4BA) ---- <!-- ### Error Issue http://earthdef.caltech.edu/boards/4/topics/3066 但是拿掉一些參數又過了??????? --> ## 接續性分析 如果想要讓分析可以持續進行,但是又需要節省空間 絕對不能刪除的資料夾: - reference(dependency) - coreg_secondarys(dependency) - geom_reference(dependency) - merged(results) - baselines(mintpy) - misreg(待確認) 原則可以刪除(?) - coarse_interferograms - ESD - stack(每次重跑都會更新) ## ESD process 與潛在問題 這個步驟如果有問題,不會造成整個程式的停止(嚴格來說不是Error) 但是卻會嚴重影響後續(尤其是unwrapping與小基線時間序列) ![image](https://hackmd.io/_uploads/ByJMTyazWx.png) *Figure Busrt Gap caused by ESD coregistration error* When Error Log Appears: `Coherence threshold too strict. No points left for reliable ESD estimate` 建議: - 手動移除該影像與其相關的所有干涉對(筆者現在還沒時間撰寫去自動化腳本,但是可以直接從misreg/dates資料夾中確認是否有正確生成即可) - 或是手動調整該影像段的ESD Coherence Threshold (直接調整config file)