SNAP 時間序列InSAR數據準備

1.SNAP簡介

      SNAP是由歐空局開發的一款用於哨兵衛星數據處理的開源軟件,其中s1tbx可用於哨兵1A、1B InSAR數據處理,可以進行哨兵數據的導入、精軌校正、配準、干涉、數據條帶分割、Deburst(不知道如何翻譯準確)、數據剪裁操作,以及時間序列InSAR數據準備工作(時間序列分析StamPS文件準備)。

     根據自己一段時間的使用,大致總結了一下優缺點,見下表,僅供參考。

優點

缺點

SNAP是歐空局長期開發和維護的,可以說是哨兵數據的“官方處理軟件”,並且開發、社區支持較爲活躍,版本更新較快;

處理過程對硬件要求較高,內存優化有待提高;

SNAP全部爲JAVA語言進行構建,只要電腦中有JAVA環境就可運行,具有良好的跨平臺特性;

時間序列InSAR支持較爲基本,當前版本僅僅支持PSI數據準備;尚不支持SBAS數據準備(可自行定義);

SNAP代碼全部開源,並且基於JAVA構建,給二次開發和應用,提供了便利條件。

對Gamma格式的元數據導出不夠完整。

可以自定義數據處理流程圖,並且使用Python語言進行批量調用和處理,靈活性很高。

軟件中仍存在一些邏輯衝突和運行Bug,需要後期版本完善。

   2.軟件使用

    2.1軟硬件環境

       SNAP軟件對硬件要求較高,已在下表所示軟硬件環境下做了測試,可供參考:                                                       

操作系統

軟件環境

硬件環境

Windows10 64bit

Unbutu16.04 64bit

Java 8

CPU: I7 4790k

內存:32G   

      備註:內存不得小於24GB,否則處理過程會報內存溢出類錯誤

   2.2軟件安裝

       打開官方下載鏈接,進行對應版本軟件下載,32位系統的機器,做做數據顯示還行,數據處理還是用64位的機器吧。 

                                                ​

(1)Windows安裝

          下載64位安裝文件後,按默認選項安裝。

(2)Linux安裝

         下載安裝文件,安裝文件爲.sh格式文件,下載完成後,使用root權限,用命令安裝。

                                               > ./ esa-snap_sentinel_unix_6_0.sh

2.3軟件界面及功能

(1)軟件主界面

                                        ​

     雷達數據處理相關工具都在Radar下面,圖中爲加載哨兵原始數據(zip)格式。

(2)數據顯示

    SNAP能夠對原始哨兵數據進行非常好的顯示,其中可在三維地球上顯示數據範圍,如下圖所示:

                                                                      ​

(3)雷達數據處理

    1)流程圖處理

     SNAP有強大的自建處理流程的功能,類似於ArcMap的ModelBuilder,如下圖所示,使用Graph Builder工具能夠添加各個數據處理流程,形成完整的數據流。

                                                               ​

     其中,SNAP官方自帶了(windows 在c盤 \Users\username\.snap\graphs)許多流程處理圖,可進行學習和研究。

                                                       ​

2)批量處理 

使用批量處理工具,結合自定義的流程圖,可按照此流程圖進行批量的數據處理。

                                       ​

     批量數據處理工具存在不穩定性,這裏建議使用調用gpt的方式進行數據的批量處理。

3)通過Python進行批量處理

      SNAP提供了使用命令行方式調用SNAP引擎進行數據處理的方式,在SNAP安裝目錄下 bin文件夾中有gpt.exe文件,通過Python以可執行文件的方式調用gpt文件,可進行批量數據處理,且性能穩定。

                                            

      記得處理前,把gpt.vmoptions裏面內存大小改高一點,除了系統運行的內存之外,其他都給SNAP,不得小於24GB。

                                           ​

調用步驟如下:

1.按需求定義處理文件,例如這裏想要批量進行數據的ESD精校準操作,首先使用Graph Builder工具構建處理流程圖。

                                                

2.將流程圖存儲爲xml格式文件,供使用。

3.編寫Python腳本批量調用(批量調用的寫法,請參考開源項目snap2stamps

3.時間序列預處理

    (1)SNAP和StaMPS軟件結合

     SNAP設置了將數據預處理(Split、精軌校正、配準、干涉、Deburst、剪裁)之後的數據導出到StaMPS軟件進行後續時間序列InSAR處理的功能,但只能導出單主影像PSInSAR處理流程所需的數據,尚不支持SBAS InSAR處理相關數據的導出功能。這一步主要參照開源項目snap2stamps提供的手冊和腳本進行批量的處理。

     這裏需要強調一點,SNAP的運算十分消耗內存,對於多步驟的數據處理,如

                                  ​

   如果沒有內存很大(數百GB),最好不要一個流程圖跑完,最好進行下流程的拆分,一步步的跑。

(2)SNAP和Gamma軟件結合

     SNAP雖然預處理的數據結果導出後的格式爲Gamma格式,但是他的元數據par文件中信息是不全的,而且,經過Stack操作(配準、干涉都會生成Stack)再導出爲slc數據,僅僅會保留master主影像的元數據,不論在導出時怎樣選擇(僅選擇slave)都無濟於事,懷疑是軟件bug。

    通過翻官方論壇,可以看到官方給出(連接)的解釋如下

​                       ​

   大概意思是,SNAP雖然有導出GAMMA格式的功能,但是那是爲StaMPS準備的。

    後續,我會探索僅僅進行Split --精軌校正(Apply Orbit)---Deburst然後導出Gamma格式,再進行後續處理的思路,會在後續博客中給出。

   以上是SNAP軟件使用的一些總結,歡迎各位感興趣的同行一起討論 [email protected]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章