本發(fā)明涉及SAR遙感影像處理的技術(shù)領(lǐng)域,尤其涉及一種Radarsat-1影像數(shù)據(jù)快速全面的讀取方法。
背景技術(shù):SAR又名合成孔徑雷達,利用雷達與目標(biāo)的相對運動把尺寸較小的真實天線孔徑合成為較大的等效天線孔徑的雷達。相比于普通的光學(xué)遙感技術(shù),SAR具有分辨率高、可全天候工作、能有效識別偽裝、穿透掩蓋物等特點,廣泛應(yīng)用于航空測量、衛(wèi)星海洋觀測、航天觀測、圖像匹配制導(dǎo)等,因此SAR影像多用于測繪、軍事偵察、資源勘探等對遙感影像要求較高的領(lǐng)域中,其處理技術(shù)決定了影像的應(yīng)用效果。Radarsat-1衛(wèi)星為加拿大于1995年發(fā)射,是兼顧商用及科學(xué)試驗用途的雷達系統(tǒng),能生成具有多種分辨率、不同幅寬和多種信息特征的影像,影像分辨率從8米到100米,幅寬從50公里到500公里,中國遙感衛(wèi)星地面站從1997年開始接收Radarsat-1影像,已存檔幾乎覆蓋全中國的萬景數(shù)據(jù)。普通光學(xué)影像一般分為0級、1級、2級、3級、4級、5級等若干個級別,Radarsat-1影像分為原始信號級、地理參考級和地理編碼級三個級別,具體為RAW、SLC、SGF、SGC、SCN、SPG等,其中RAW、SLC類型以復(fù)數(shù)形式記錄圖像數(shù)據(jù),采用虛數(shù)波段(Q)、實數(shù)波段(I)組合的方式顯示圖像數(shù)據(jù),通過對Q、I波段計算處理可生成其他代表強度、亮度的波段。Radarsat-1影像格式為CEOS,包括VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五個描述性文件;每個文件包含多個數(shù)據(jù)集,VolumeDirectory文件由VolumeDescriptor、Filepointerrecord等數(shù)據(jù)集組成,Trailer文件由Datasetsummary、Processingparameters、Radiometricdata等數(shù)據(jù)集組成,其他文件的組成結(jié)構(gòu)類似。不同影像數(shù)據(jù)包含的數(shù)據(jù)集不同,但都符合基本規(guī)律。Radarsat-1影像的數(shù)據(jù)集中包含了大量元數(shù)據(jù)和圖像數(shù)據(jù),圖像數(shù)據(jù)類型包括8位無符號整型、16位無符號整型、32位復(fù)數(shù)形式等多種,進行數(shù)據(jù)讀取時,不僅需要對所有數(shù)據(jù)類型進行全面讀取,對于不同的圖像數(shù)據(jù)類型,要采用不同的方法,特別是復(fù)數(shù)類型的數(shù)據(jù)?,F(xiàn)階段ENVI、ERDAS、NEST等專業(yè)遙感圖像處理軟件可讀取Radarsat-1影像,自主開發(fā)實現(xiàn)影像的讀取可采用兩種方式:一是利用IDL、Matlab等語言進行二次開發(fā),二是,直接對影像文件進行數(shù)據(jù)流解析。第一種方法存在明顯的弊端:首先,需要安裝相應(yīng)的環(huán)境,不利于自主開發(fā)工程使用,其次,無法全面地讀取出影像的元數(shù)據(jù)信息。第二種方法對Radarsat-1影像的大量元數(shù)據(jù)進行直接解析,過程比較繁瑣。
技術(shù)實現(xiàn)要素:本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提出一種Radarsat-1影像快速全面的讀取方法。Radarsat-1影像快速全面的讀取方法包括如下步驟:1)根據(jù)Radarsat-1影像特點,分析影像數(shù)據(jù)的結(jié)構(gòu)組成,獲取不同數(shù)據(jù)集的唯一標(biāo)識碼;2)GDAL是一種遙感影像數(shù)據(jù)處理的開源庫,其提供了讀取Radarsat-1影像原始數(shù)據(jù)的接口,結(jié)合唯一標(biāo)識碼,可以獲取各數(shù)據(jù)集的原始數(shù)據(jù);3)根據(jù)影像數(shù)據(jù)結(jié)構(gòu)的說明,生成不同數(shù)據(jù)集對應(yīng)的數(shù)據(jù)模板;Radarsat-1影像由多個文件組成,每個文件包含多個數(shù)據(jù)集,每種數(shù)據(jù)集都有固定的數(shù)據(jù)結(jié)構(gòu);生成各數(shù)據(jù)集對應(yīng)的模板,記錄數(shù)據(jù)集中所有屬性的名稱、類型、長度、默認值四項信息,以XML或者數(shù)據(jù)庫表格的形式存儲;4)結(jié)合數(shù)據(jù)集模板,解析步驟2)獲取的原始數(shù)據(jù),生成Radarsat-1影像的元數(shù)據(jù);5)利用GDAL開源庫,獲取影像所有波段信息,生成Radarsat-1影像的圖像數(shù)據(jù);6)對于SLC復(fù)數(shù)類型的數(shù)據(jù),將每個像素數(shù)據(jù)拆分成兩個部分,分別作為虛數(shù)和實數(shù),每個波段均可生成虛數(shù)波段和實數(shù)波段,形成Radarsat-1影像的圖像數(shù)據(jù);所有元數(shù)據(jù)和圖像數(shù)據(jù)即為從Radarsat-1影像讀取的所有數(shù)據(jù),在此基礎(chǔ)上經(jīng)過處理可生成更多信息。所述的步驟1)包括:Radarsat-1影像數(shù)據(jù)包含VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五個描述性文件,每個文件包含多個數(shù)據(jù)集,每個數(shù)據(jù)集都存在唯一標(biāo)識碼,由如下六個要素組成:所屬文件、第一子類型編碼、類型編碼、第二子類型編碼、第三子類型編碼和該數(shù)據(jù)集的索引號,所屬文件是指五個文件之一,四個類型編碼值可在Radarsat-1的數(shù)據(jù)說明中查找,同一個文件中多個數(shù)據(jù)集對應(yīng)同一組類型編碼時,需要按照順序設(shè)置索引號進行區(qū)分,否則無需設(shè)置索引號;數(shù)據(jù)集的要素編碼固定,作為數(shù)據(jù)讀取的唯一標(biāo)識和憑證。所述的步驟4)包括:以數(shù)據(jù)集為單元,結(jié)合步驟3)生成的數(shù)據(jù)模板,對步驟2)獲取的原始數(shù)據(jù)進行解析;根據(jù)模板中數(shù)據(jù)集的屬性類型、長度、默認值等信息,解析出原始數(shù)據(jù)中相應(yīng)位置的信息,作為屬性值,依次循環(huán),獲取數(shù)據(jù)集中所有屬性的數(shù)據(jù)值;對每個文件的所有數(shù)據(jù)集進行類似解析,生成Radarsat-1影像的元數(shù)據(jù)。所述的步驟6)包括:(1)Radarsat-1影像屬于SLC類型時,采用復(fù)數(shù)形式存儲圖像數(shù)據(jù),虛數(shù)部分?jǐn)?shù)據(jù)和實數(shù)部分?jǐn)?shù)據(jù)均有物理意義;步驟5)中利用GDAL獲取的像素數(shù)據(jù)將虛數(shù)和實數(shù)混合存儲在一起,需要對其進行拆分;(2)假設(shè)每個像素數(shù)據(jù)占用空間為N位,通過利用像素數(shù)據(jù)的存儲地址即指針,將像素數(shù)據(jù)等分為兩部分,前N/2位數(shù)據(jù)作為虛數(shù)部分,后N/2位數(shù)據(jù)作為實數(shù)部分;(3)所有像素拆分后,將所有虛數(shù)部分組合,生成原波段的虛數(shù)波段,所有實數(shù)部分組合,生成原波段的實數(shù)波段;原始波段數(shù)據(jù)全部經(jīng)過拆分操作后,生成Radarsat-1影像的波段數(shù)據(jù)即圖像數(shù)據(jù)。本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果是:(1)全面讀取數(shù)據(jù)Radarsat-1影像含有大量的元數(shù)據(jù)信息,利用IDL等二次開發(fā)不能解析出全部的元數(shù)據(jù)信息;圖像數(shù)據(jù)具有多種數(shù)據(jù)類型,現(xiàn)有開發(fā)方法中一般無法正確讀取復(fù)數(shù)類型的圖像數(shù)據(jù)。本發(fā)明根據(jù)Radarsat-1的數(shù)據(jù)說明,生成數(shù)據(jù)集的結(jié)構(gòu)模板和唯一標(biāo)識碼,利用GDAL、標(biāo)識碼、模板三者結(jié)合,獲取Radarsat-1數(shù)據(jù)說明中的所有元數(shù)據(jù);采用拆分的方式,從復(fù)數(shù)形式的數(shù)據(jù)中解析出虛數(shù)波段和復(fù)數(shù)波段,正確獲取所有的圖像數(shù)據(jù)。因此,本發(fā)明的讀取方法具有全面性,提供影像所有的屬性數(shù)據(jù)和空間數(shù)據(jù),滿足用戶對于Radarsat-1影像精確讀取的要求。(2)實施簡單利用IDL、Matlab等方式進行數(shù)據(jù)讀取,需要安裝相應(yīng)的環(huán)境,不便于實施;利用直接解析的方法,需要計算不同數(shù)據(jù)集的位置索引,過程復(fù)雜繁瑣。本發(fā)明的方法在開源庫GDAL的基礎(chǔ)上,采用任何一種語言均可實現(xiàn),無需進行復(fù)雜的環(huán)境配置,且簡化了數(shù)據(jù)流直接解析的過程。因此,本發(fā)明具有實施簡單的特性,便于用戶操作和重新實現(xiàn)。附圖說明圖1是一種實現(xiàn)本發(fā)明的技術(shù)流程圖;圖2是本發(fā)明的Radarsat-1影像讀取的元數(shù)據(jù)示例圖;圖3是本發(fā)明的Radarsat-1影像讀取的圖像數(shù)據(jù)示例圖;圖4是本發(fā)明的Radarsat-1影像讀取的復(fù)數(shù)類型的圖像數(shù)據(jù)示例圖。具體實施方式Radarsat-1影像快速全面的讀取方法包括如下步驟:1)根據(jù)Radarsat-1影像特點,分析影像數(shù)據(jù)的結(jié)構(gòu)組成,獲取不同數(shù)據(jù)集的唯一標(biāo)識碼;2)GDAL是一種遙感影像數(shù)據(jù)處理的開源庫,其提供了讀取Radarsat-1影像原始數(shù)據(jù)的接口,結(jié)合唯一標(biāo)識碼,可以獲取各數(shù)據(jù)集的原始數(shù)據(jù);3)根據(jù)影像數(shù)據(jù)結(jié)構(gòu)的說明,生成不同數(shù)據(jù)集對應(yīng)的數(shù)據(jù)模板;Radarsat-1影像由多個文件組成,每個文件包含多個數(shù)據(jù)集,每種數(shù)據(jù)集都有固定的數(shù)據(jù)結(jié)構(gòu);生成各數(shù)據(jù)集對應(yīng)的模板,記錄數(shù)據(jù)集中所有屬性的名稱、類型、長度、默認值四項信息,以XML或者數(shù)據(jù)庫表格的形式存儲;4)結(jié)合數(shù)據(jù)集模板,解析步驟2)獲取的原始數(shù)據(jù),生成Radarsat-1影像的元數(shù)據(jù);5)利用GDAL開源庫,獲取影像所有波段信息,生成Radarsat-1影像的圖像數(shù)據(jù);6)對于SLC復(fù)數(shù)類型的數(shù)據(jù),將每個像素數(shù)據(jù)拆分成兩個部分,分別作為虛數(shù)和實數(shù),每個波段均可生成虛數(shù)波段和實數(shù)波段,形成Radarsat-1影像的圖像數(shù)據(jù);所有元數(shù)據(jù)和圖像數(shù)據(jù)即為從Radarsat-1影像讀取的所有數(shù)據(jù),在此基礎(chǔ)上經(jīng)過處理可生成更多信息。所述的步驟1)包括:Radarsat-1影像數(shù)據(jù)包含VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五個描述性文件,每個文件包含多個數(shù)據(jù)集,每個數(shù)據(jù)集都存在唯一標(biāo)識碼,由如下六個要素組成:所屬文件、第一子類型編碼、類型編碼、第二子類型編碼、第三子類型編碼和該數(shù)據(jù)集的索引號,所屬文件是指五個文件之一,四個類型編碼值可在Radarsat-1的數(shù)據(jù)說明中查找,同一個文件中多個數(shù)據(jù)集對應(yīng)同一組類型編碼時,需要按照順序設(shè)置索引號進行區(qū)分,否則無需設(shè)置索引號;數(shù)據(jù)集的要素編碼固定,作為數(shù)據(jù)讀取的唯一標(biāo)識和憑證。所述的步驟4)包括:以數(shù)據(jù)集為單元,結(jié)合步驟3)生成的數(shù)據(jù)模板,對步驟2)獲取的原始數(shù)據(jù)進行解析;根據(jù)模板中數(shù)據(jù)集的屬性類型、長度、默認值等信息,解析出原始數(shù)據(jù)中相應(yīng)位置的信息,作為屬性值,依次循環(huán),獲取數(shù)據(jù)集中所有屬性的數(shù)據(jù)值;對每個文件的所有數(shù)據(jù)集進行類似解析,生成Radarsat-1影像的元數(shù)據(jù)。所述的步驟6)包括:(1)Radarsat-1影像屬于SLC類型時,采用復(fù)數(shù)形式存儲圖像數(shù)據(jù),虛數(shù)部分?jǐn)?shù)據(jù)和實數(shù)部分?jǐn)?shù)據(jù)均有物理意義;步驟5)中利用GDAL獲取的像素數(shù)據(jù)將虛數(shù)和實數(shù)混合存儲在一起,需要對其進行拆分;(2)假設(shè)每個像素數(shù)據(jù)占用空間為N位,通過利用像素數(shù)據(jù)的存儲地址即指針,將像素數(shù)據(jù)等分為兩部分,前N/2位數(shù)據(jù)作為虛數(shù)部分,后N/2位數(shù)據(jù)作為實數(shù)部分;(3)所有像素拆分后,將所有虛數(shù)部分組合,生成原波段的虛數(shù)波段,所有實數(shù)部分組合,生成原波段的實數(shù)波段;原始波段數(shù)據(jù)全部經(jīng)過拆分操作后,生成Radarsat-1影像的波段數(shù)據(jù)即圖像數(shù)據(jù)。實施例:第一步為根據(jù)Radarsat-1影像特點,分析影像數(shù)據(jù)的結(jié)構(gòu)組成,獲取不同數(shù)據(jù)集的唯一標(biāo)識碼;唯一標(biāo)識碼,由如下六個要素組成:所屬文件、第一子類型編碼、類型編碼、第二子類型編碼、第三子類型編碼和該數(shù)據(jù)集的索引號,且要素值固定。實施例的Radarsat-1影像包含VDF_DAT.001、TRA_01.001、NUL_VDF.001、LEA_01.001、DAT_01.001五個文件,分別為VolumeDirectory、Trailer、NullVolumeDirectory、Leader、Data文件。其中,LEA_01.001文件包含F(xiàn)ileDescriptor、MapProjection等在內(nèi)的四個數(shù)據(jù)集,TRA_01.001文件包含F(xiàn)ileDescriptor、DataSetSummaryRecord等在內(nèi)的五個數(shù)據(jù)集,VDF_DAT.001文件包含VolumeDescriptor、SARLeaderFilePointer、SARTrailerFilePointer等五個數(shù)據(jù)集,DAT_01.001文件則保存了圖像數(shù)據(jù)。數(shù)據(jù)集包含唯一的標(biāo)識碼,例如LEA_01.001中數(shù)據(jù)集FileDescriptor的標(biāo)識碼為“l(fā)ea-63-192-18-18”,索引號默認為0,MapProjection的標(biāo)識碼為“l(fā)ea-18-20-18-20”,TRA_01.001中的FileDescriptor的標(biāo)識碼為“trl-63-192-18-18”,DataSetSummaryRecord的標(biāo)識碼為“trl-18-10-18-20”,VDF_DAT.001中的LeaderFilePointer的標(biāo)識碼為“vol-219-192-18-18:0”,ImageOptionsFilePointer的標(biāo)識碼為“vol-219-192-18-18:1”,TrailerFilePointer的標(biāo)識碼為“vol-219-192-18-18:2”,其他數(shù)據(jù)集的標(biāo)識碼可類似獲得。第二步利用開源庫GDAL,結(jié)合唯一標(biāo)識碼獲取影像中各數(shù)據(jù)集的原始信息。GDAL提供查找獲取影像元數(shù)據(jù)的接口函數(shù)GetMetadata(stringstrDomain),參數(shù)為一個表示元數(shù)據(jù)的檢索目錄的字符串。結(jié)合標(biāo)識碼設(shè)置參數(shù),可獲取不同數(shù)據(jù)集的原始信息,具體操作為,如想獲取LEA_01.001的FileDescriptor記錄信息,則將函數(shù)的參數(shù)設(shè)置為“ceos-lea-63-192-18-18”,獲取VDF_DAT.001的ImageOptionsFilePointer記錄的信息時,則將“ceos-vol-219-192-18-18:1”作為接口函數(shù)的參數(shù),其他數(shù)據(jù)集信息可類似獲得。第三步根據(jù)影像數(shù)據(jù)結(jié)構(gòu)的說明,生成不同數(shù)據(jù)集對應(yīng)的數(shù)據(jù)模板,記錄數(shù)據(jù)集中所有屬性的名稱、類型、長度、默認值等信息,采用XML文件進行存儲,分別用name、type、num、value表示相應(yīng)的屬性信息。VDF_DAT.001中數(shù)據(jù)集LeaderFilePointer的XML模板文件部分內(nèi)容如下:<?xmlversion="1.0"encoding="UTF-8"?><ceosversion="1.0"mission="radarsat"><recname="skipBytes"type="0"num="8"/><recname="RecordLength"type="4"num="1"value="720"/><recname="Asciicodecharacter"type="1"num="2"/><recname="skipBytes"type="0"num="2"/><recname="Specificationnumber"type="1"num="12"/><recname="Specificationrevisionnumber"type="1"num="2"/><recname="Recordformatrevisionnumber"type="1"num="2"/><recname="Softwareversionnumber"type="1"num="12"/><recname="FileNumber"type="2"num="4"/>…</ceos>其中skipBytes表示可跳過的字節(jié),如首部跳過的8個字節(jié)包括類型編碼等固定信息,不需要進行詳細解析,其他name值表示對應(yīng)的屬性字段名字,type表示類型,設(shè)置固定的阿拉伯?dāng)?shù)字分別代表不同的類型,0代表空白,即跳過,1代表Ascii,2代表整型,3、4代表二進制,5代表浮點型,num表示該屬性值的長度即字節(jié)數(shù),如type為2的值的num為4,即長度為4個字節(jié),value表示該屬性的默認值,某些屬性存在固定的值,可在模板中將其存儲為默認值,如LeaderFilePointer的長度屬性RecordLength,默認值設(shè)置為720,無默認值的可忽略。第四步以數(shù)據(jù)集為單元,結(jié)合數(shù)據(jù)模板,對第二步獲取的原始信息進行解析;根據(jù)模板中數(shù)據(jù)集的屬性類型、長度、默認值等信息,解析出原始信息中相應(yīng)位置的數(shù)據(jù),作為屬性值,比如對VDF_DAT.001中的數(shù)據(jù)集LeaderFilePointer,原始信息中第10到11字節(jié)表示屬性Asciicodecharacter的值,第14到25字節(jié)表示屬性Specificationnumber的值,依次循環(huán)即可得到每個數(shù)據(jù)集的屬性值集合,對所有文件進行類似的解析后,即獲得Radarsat-1影像的元數(shù)據(jù)。第五步利用GDAL讀取波段信息,解析所有波段的圖像數(shù)據(jù);GDAL提供獲取圖像波段的函數(shù)GetRasterBand(intnBand),參數(shù)為波段的索引值,從0開始,獲取波段后,通過ReadRaster可獲取像素值數(shù)組,即該波段的圖像數(shù)據(jù),對每個波段進行循環(huán)操作,獲得影像的所有圖像數(shù)據(jù)。第六步對于SLC等復(fù)數(shù)類型的影像,將每個像素的信息拆分成兩個部分,分別形成虛數(shù)波段和實數(shù)波段。實施例中,復(fù)數(shù)類型影像的數(shù)據(jù)類型為32位復(fù)數(shù)類型,按照GDAL讀取波段的方式獲得長度為L的Int型數(shù)組,通過地址相同的原則將其轉(zhuǎn)換成長度為2L的Short型數(shù)組,按順序每次取兩個數(shù),前者作為虛數(shù)部分,后者作為實數(shù)部分,依次循環(huán)L次,形成虛數(shù)集合和實數(shù)集合,即可得到對應(yīng)的虛數(shù)波段和實數(shù)波段的圖像數(shù)據(jù)。對每個波段進行循環(huán)操作,可獲得復(fù)數(shù)類型影像的所有圖像數(shù)據(jù)。所有元數(shù)據(jù)和圖像數(shù)據(jù)即為從Radarsat-1影像中讀取的所有數(shù)據(jù),在此基礎(chǔ)上經(jīng)過處理可生成更多信息。