摘" 要:隨著星載合成孔徑雷達(Synthetic Aperture Radar,SAR)干涉測量技術(shù)的快速發(fā)展,歐洲航天局等機構(gòu)發(fā)布大量SAR數(shù)據(jù)。其中星載SAR技術(shù)具有高精度、全天候、范圍廣等優(yōu)點,被廣泛地應用于坡度位移、沉降監(jiān)測、滑坡監(jiān)測及中高分辨率的數(shù)字高程模型(Digital Elevation Model,DEM)的生成等。國內(nèi)從歐洲航天局獲取SAR數(shù)據(jù)存在通信鏈路不穩(wěn)定、連接進程數(shù)受限、網(wǎng)絡傳輸速度慢及長時序管理困難等問題,如何高速、按需、便捷地獲取大量長時序SAR數(shù)據(jù)成為推動其行業(yè)應用迫在眉睫的問題。該文基于HTTP與SOCKS5協(xié)議,提取多源數(shù)據(jù)訪問規(guī)則,采用異常斷點續(xù)傳算法與多線程并發(fā)算法,設計并實踐一套高效且穩(wěn)定的多源長時序SAR高速獲取方法,并對阿壩州2019至2022年的SAR數(shù)據(jù)進行獲取,相比IDM商業(yè)下載器,形成一種能夠無人值守且高效穩(wěn)定的長時序SAR數(shù)據(jù)獲取方案。
關(guān)鍵詞:SAR;HTTP;SOCKS5;異常斷點續(xù)傳;無人值守
中圖分類號:P237" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2023)18-0015-04
Abstract: With the rapid development of spaceborne synthetic aperture radar (SAR) interferometry, the European Space Agency and other agencies have released a large amount of SAR data. Among them, Spaceborne SAR technology has the advantages of high precision, all-weather and wide range, and has been widely used in slope displacement, settlement monitoring, landslide monitoring and medium and high resolution digital elevation model (DEM) generation. There are some problems in obtaining SAR data from ESA in China, such as unstable communication links, limited number of connection processes, slow network transmission speed and difficult management of long time series. How to obtain a large amount of long time series SAR data at high speed, on demand and conveniently has become an urgent problem to promote its industrial application. In this paper, based on HTTP and SOCKS5 protocol, multi-source data access rules are extracted, abnormal breakpoint resume algorithm and multi-thread concurrent algorithm are used to design and practice a set of efficient and stable multi-source long time sequence SAR high-speed acquisition method, and the SAR data of Aba prefecture from 2019 to 2022 are obtained. Compared with IDM commercial download, an efficient and stable unattended long time series SAR data acquisition scheme is proposed.
Keywords: SAR; HTTP; SOCKS5; abnormal breakpoint resume; unattended
星載SAR數(shù)據(jù)因其范圍廣闊,精度較高等優(yōu)勢,能夠較好響應火山、地震等突發(fā)性災害,也能針對滑坡、地殼運動、地面沉降和人工構(gòu)建物進行長期監(jiān)測[1-2]。隨著人們對SAR數(shù)據(jù)應用的場景愈發(fā)增加,長時序SAR數(shù)據(jù)獲取的需求變得更加緊迫。
然而,SAR數(shù)據(jù)主要來源為歐洲服務器,傳統(tǒng)的直接下載方式存在諸多限制與不足,如下載平臺不穩(wěn)定、下載速度極慢、下載限制進程數(shù)及下載的數(shù)據(jù)不易管理等。IDM(Internet Download Manager)作為一款成熟的商業(yè)下載器,在下載大量長時序SAR數(shù)據(jù)時也需要大量的人工操作,軟件的個性化定制性與普適性較差,下載無法做到無人值守,難以進行大規(guī)模工程應用,所以,數(shù)據(jù)的高速獲取對后續(xù)的研究與應用具有重要的意義[3]。鑒于以上情況,本文基于SOCKS5與HTTP協(xié)議,利用Python語言編寫按需檢索與自動異常處理及自動斷點續(xù)傳為一體的實時多線程并發(fā)算法,對多源長時序SAR數(shù)據(jù)進行整理與入庫。通過對比傳統(tǒng)下載方法與IDM下載器,來驗證方法的效率,從而得出一種穩(wěn)定并高速且易于管理的多源長時序SAR數(shù)據(jù)獲取方案。
1" 研究概況
1.1" SAR數(shù)據(jù)源情況
國內(nèi)外能免費獲取的SAR數(shù)據(jù)主要有歐洲航天局的哨兵一號、法國哨兵產(chǎn)品運營平臺(PEPS)、阿拉斯加通訊社(ASF)與高分三號等,其中哨兵一號為SAR數(shù)據(jù)主要來源。哨兵一號任務是由歐洲委員會與歐洲航天局共同倡議的哥白尼歐洲雷達觀測站,其從地球觀測衛(wèi)星獲取對地觀測數(shù)據(jù)[4]。哨兵一號任務由哨兵1A和哨兵1B 2顆衛(wèi)星組成,2顆衛(wèi)星共享同一軌道平面,并執(zhí)行C波段合成孔徑雷達成像。
合成孔徑雷達最初主要是機載、星載平臺。隨著技術(shù)的發(fā)展,出現(xiàn)了彈載、地基SAR、無人機SAR、臨近空間平臺SAR和手持式設備等多種形式平臺搭載的合成孔徑雷達,并且廣泛用于軍事、民用領域。
以哨兵一號數(shù)據(jù)源為例,單幅SAR數(shù)據(jù)的命名格式如下:S1A_IW_SLC__1SDV_20220217T230445_20220217T230512_041959_04FF2B_BE83,其中S1A為哨兵1A衛(wèi)星標識,IW為條帶掃描模式,SLC為產(chǎn)品名稱,1SDV由3種類別組成,其中1代表處理級別,S為產(chǎn)品類型,DV為極化方式,20220217T230445為產(chǎn)品的開始日期,20220217T230512為產(chǎn)品的結(jié)束日期,041959為產(chǎn)品的絕對軌道號,04FF2B為任務使用標志符,BE83為產(chǎn)品唯一標識碼。
1.2" HTTP與SOCKS5
HTTP是一種能夠獲取各種網(wǎng)絡資源的一種通信協(xié)議,其是在網(wǎng)絡中進行數(shù)據(jù)交換的基礎,是客戶端到服務器的協(xié)議。HTTP起源于20世紀90年代初期,是一種易于擴展的應用層協(xié)議,通過可進行加密的TCP協(xié)議來發(fā)送數(shù)據(jù),理論上結(jié)合任何傳輸協(xié)議能進行數(shù)據(jù)的傳輸,其主要用來傳輸文檔、圖片、文件等資源[5]。
SOCKS5是一種基于客戶端到服務端的代理服務器實現(xiàn)的規(guī)范協(xié)議。其在使用TCP/IP協(xié)議通信的客戶端與服務器機器之間起到中轉(zhuǎn)作用,使得內(nèi)網(wǎng)的客戶端能夠訪問外網(wǎng)中服務器的功能,SOCKS5服務接收到真正的服務器響應后會原封不動地返回請求的客戶端[6]。SOCKS可以通過代理服務器來路由客戶端和服務器之間的數(shù)據(jù)包,其還額外提供了身份驗證,所以只有驗證的用戶可以通過服務器。特別指出,一個SOCKS服務器可以代理HTTP連接到任何一個IP地址,同時為UDP的數(shù)據(jù)包提供一種轉(zhuǎn)發(fā)方式[7]。
本文采用SOCKS5協(xié)議搭建代理服務器,使用AES256非對稱算法對代理服務器進行安全加密,使用HTTP協(xié)議來獲取數(shù)據(jù)。
2" 研究方法
本文的研究方法如圖1所示。按照SAR數(shù)據(jù)命名規(guī)則及所需下載范圍制作成程序檢索的相關(guān)參數(shù),然后作為程序的輸入檢索多源SAR數(shù)據(jù)信息,依次檢索歐空局、PEPS、ASF網(wǎng)站中所有相關(guān)數(shù)據(jù),按照多源數(shù)據(jù)訪問規(guī)則統(tǒng)一輸出。接下來檢查文件數(shù)據(jù)庫中此任務是否已完成,若完成則跳過該任務的下載,若沒有完成,則使用多線程并發(fā)算法與異常斷點續(xù)傳算法進行數(shù)據(jù)的下載。最后使用SOCKS5代理服務器將下載的資源存入文件數(shù)據(jù)庫中,完成數(shù)據(jù)的下載。
3" 關(guān)鍵技術(shù)
3.1" 多源數(shù)據(jù)訪問規(guī)則抽取
多源數(shù)據(jù)訪問規(guī)則抽取是指從不同格式、種類、來源的數(shù)據(jù)中定義共性的規(guī)則,將復雜的數(shù)據(jù)變得簡單易用[8]。第一步,明確抽取集合;第二步,定義集合的輸入與輸出轉(zhuǎn)化規(guī)則;第三步,建立輸入“數(shù)據(jù)-規(guī)則-輸出數(shù)據(jù)”的映射關(guān)系。基于以上定義,抽取多源SAR數(shù)據(jù)規(guī)則過程如下。第一步,明確以歐空局、PEPS、ASF為集合;第二步,以下載區(qū)域范圍、日期范圍、處理級別、極化方式、產(chǎn)品類型和掃描模式為數(shù)據(jù)的轉(zhuǎn)換條件,每個數(shù)據(jù)的下載鏈接為轉(zhuǎn)換輸出;第三步,建立每條數(shù)據(jù)對應一個數(shù)據(jù)下載鏈接的關(guān)系。這樣抽取的多源數(shù)據(jù)訪問規(guī)則不會讓數(shù)據(jù)存在重復以及冗余,同時也大大減少了數(shù)據(jù)下載量。
由于多源SAR數(shù)據(jù)來源的不一致性,多源SAR數(shù)據(jù)規(guī)則抽取的難點在于如何統(tǒng)一輸出,本文使用Python的requests庫對數(shù)據(jù)來源進行了獲取,通過使用網(wǎng)絡爬蟲手段,對獲取的數(shù)據(jù)源進行匯總,使用轉(zhuǎn)換條件選出符合規(guī)則要求的數(shù)據(jù),整理出各自文件名與之對應的下載鏈接,以歐空局的數(shù)據(jù)為主要參照,若PEPS或ASF中有歐空局相同數(shù)據(jù)源,則將歐空局數(shù)據(jù)源剔除,以PEPS或ASF的數(shù)據(jù)為下載源,反之,則以歐空局的數(shù)據(jù)為下載源。使用CURL工具將數(shù)據(jù)鏈接轉(zhuǎn)換為真實的數(shù)據(jù)文件,最后建立“文件名-數(shù)據(jù)鏈接-文件”這樣一一對應的映射關(guān)系。
3.2" 異常斷點續(xù)傳算法
在多源哨兵數(shù)據(jù)的下載過程中,由于網(wǎng)絡環(huán)境的錯綜復雜,一次性下載過大數(shù)據(jù)量會導致數(shù)據(jù)獲取過程中出現(xiàn)下載失敗,無法繼續(xù)下載,以及服務器直接返回大小為0字節(jié)的文件,導致文件殘缺無法正常使用,所以有必要設計一種異常斷點續(xù)傳算法,保證能獲取完整的數(shù)據(jù)。
異常斷點續(xù)傳支持從文件上次下載中斷的地方開始繼續(xù)傳送數(shù)據(jù),而并非是從文件開頭傳送。其具有以下特點:節(jié)約時間;定時下載功能,可以為將要下載的軟件制定一任務列表,讓下載軟件在規(guī)定的時間自動撥號上網(wǎng)并下載軟件,下載完畢后再自動掛起,斷開與internet的連接,甚至自動關(guān)閉計算機;支持多文件同時下載;發(fā)生致命錯誤時強行關(guān)閉機制。
異常斷點續(xù)傳的原理是獲取所需下載文件的大小記為Total,記每片的大小為Si,每片的索引為i,每片的字節(jié)范圍記為[start,end],最終有如下公式
式中:n為總片數(shù),當Total的大小等于切片之和的時候,進行文件的合并,若其中有某片Si的大小為0,會重新找到該片的索引i,然后按照該片的字節(jié)范圍[start,end],重新嘗試下載該片數(shù)據(jù),直到下載完成,將所有片數(shù)合并。
3.3" 多線程并發(fā)算法
線程是進程內(nèi)獨立執(zhí)行的一個單一順序的控制流;是系統(tǒng)分配處理器時間資源的基本單位;是程序執(zhí)行的最小單位,如圖2所示。
傳統(tǒng)的單線程很難將下載速度達到最高,為了最大化利用計算機資源,需要采用多線程并發(fā)的方式對下載進行增速[9]。筆者根據(jù)大量測試與谷歌瀏覽器的并發(fā)請求數(shù)量限制發(fā)現(xiàn),將最大線程設置為6為較好的方案。
首先構(gòu)建一個最大數(shù)量為6的隊列作為線程池,計切片總數(shù)n,任務啟動后,首先按照順序添加至并發(fā)隊列的最大長度,然后將最先完成的一片切片移動到已完成的隊列中,將未完成隊列的頭文件放入并發(fā)隊列中,直到并發(fā)隊列的長度變?yōu)?,完成該任務的多線程并發(fā),如圖3所示,其中每個正方形代表文件切片。
3.4" 長時序資源管理
由于長時序SAR數(shù)據(jù)體量較大,只有建立一套完善的管理機制,才能讓數(shù)據(jù)不產(chǎn)生冗余以及重復下載的工作。
針對長時序數(shù)據(jù),建立了一種以區(qū)域管理數(shù)據(jù)的方式。每次任務會根據(jù)下載范圍生成區(qū)域文件索引,然后會與文件數(shù)據(jù)庫文件做比較,若存在相同數(shù)據(jù)則不進行下載,數(shù)據(jù)庫中會存在一個指向該文件的索引,減少數(shù)據(jù)的冗余及重復下載工作,提高獲取效率。在數(shù)據(jù)導出時,按照區(qū)域條件可以導出符合該區(qū)域的所有文件。
4" 實驗對比與結(jié)果分析
實驗以阿壩州為數(shù)據(jù)獲取范圍,起始時間為2019年,結(jié)束時間為2022年,掃描模式為IW,產(chǎn)品類型為SLC,所有的極化方式與處理級別作為檢索配置,數(shù)據(jù)總量大約為6.7 TB。分別以直接下載的方式、IDM下載方式以及本文提出的技術(shù)路線方式進行下載。分別對以上3種下載場景進行效率測試與穩(wěn)定性測試,測試所用電腦內(nèi)存16 G,平均網(wǎng)絡帶寬約為90 Mbps。以Python作為編程語言對技術(shù)路線進行實現(xiàn),按照同一文件下載5次的總計時作為平均下載速度,見表1。
由表1可以看出,直接下載的方式下載一景影像大概花費4 d左右的時間,借助IDM下載器下載也需要1 d左右的時間,存在這樣的問題是歐洲服務器限制了下載速度并且同一時間內(nèi)不能允許下載超過2景影像,并且中途存在失敗的情況,還需要人工手動恢復下載。而按照本文的技術(shù)路線下載方式下載平均大概需要13 min左右,中途的異常能自動解決,無需人工干預。綜上所述,本文將多線程并發(fā)算法與異常斷點續(xù)傳算法相結(jié)合提出的技術(shù)路線下載方式比IDM下載的效率高了約90倍,效率提升十分明顯。對于TB級以上的長時序SAR影像而言,其他2種方式顯得心有余而力不足,因此,長時序SAR影像獲取方法非常適用于大規(guī)模的數(shù)據(jù)獲取。
5" 結(jié)論
本文通過研究多源數(shù)據(jù)訪問規(guī)則、異常斷點續(xù)傳算法、多線程并發(fā)算法、SOCKS5協(xié)議與HTTP協(xié)議,對傳統(tǒng)的下載方式與IDM下載方式的不足進行分析。通過對比3種場景下的下載效率與穩(wěn)定性,得出大規(guī)模長時序SAR數(shù)據(jù)獲取的最優(yōu)方法,該方法具有數(shù)據(jù)下載速度快與數(shù)據(jù)一站式獲取的優(yōu)點,真正意義上做到了無人值守,大大減少人工操作,也避免了數(shù)據(jù)下載不全與遺漏的風險。本文研究所得成果對于地震、坡度位移、沉降監(jiān)測、地災監(jiān)測以及地球物理科學研究等領域的海量SAR數(shù)據(jù)的獲取工作都具有非常實用的價值。
參考文獻:
[1] 朱建軍,李志偉,胡俊.InSAR變形監(jiān)測方法與研究進展[J].測繪學報,2017,46(10):1717-1733.
[2] 高明亮,宮輝力,陳蓓蓓.基于InSAR技術(shù)的地表三維形變獲取方法綜述[J].測繪通報,2017(1):1-4.
[3] 李學龍,龔海剛.大數(shù)據(jù)系統(tǒng)綜述[J].中國科學:信息科學,2015,45(1):1-44.
[4] 張艷梅,王萍,羅想,等.利用Sentinel-1數(shù)據(jù)和SBAS-InSAR技術(shù)監(jiān)測西安地表沉降[J].測繪通報,2017(4):93-97.
[5] 齊鵬,李隱峰,宋玉偉.基于Python的Web數(shù)據(jù)采集技術(shù)[J].電子科技,2012,25(11):118-120.
[6] 喻小光,陳維斌,潘孝銘.一種基于SOCKS5的Web安全代理技術(shù)[J].華僑大學學報(自然科學版),2007(3):268-271.
[7] 夏永泉,張秉權(quán),許潔萍.SOCKS5代理技術(shù)分析及應用[J].兵工自動化,2003(1):42-45.
[8] 王元卓,賈巖濤,劉大偉,等.基于開放網(wǎng)絡知識的信息檢索與數(shù)據(jù)挖掘[J].計算機研究與發(fā)展,2015,52(2):456-474.
[9] 王建偉,郭春喜,白穆,等.海量IGS數(shù)據(jù)實時線程池并發(fā)獲取[J].測繪通報,2020(12):93-96,105.