王燕婷
摘要
基于GDAL庫(kù)的功能和其開(kāi)源、可對(duì)柵格空間數(shù)據(jù)操作的特點(diǎn),將GDAL與C++語(yǔ)言的完美結(jié)合,可極大得發(fā)揮其在開(kāi)發(fā)遙感圖像處理軟件中的優(yōu)勢(shì),并可跨平臺(tái)應(yīng)用于不同操作系統(tǒng)下的遙感圖像數(shù)據(jù)處理軟件系統(tǒng)中。本文介紹了最新一代的氣象衛(wèi)星風(fēng)云三號(hào)D星極軌衛(wèi)星數(shù)據(jù)特點(diǎn)及格式和風(fēng)云四號(hào)A星靜止衛(wèi)星數(shù)據(jù)特點(diǎn)及格式,以及以FY-3D和FY-4A官網(wǎng)發(fā)布數(shù)據(jù)為例,詳細(xì)講述了如何利用GDAL庫(kù)和c++語(yǔ)言,對(duì)HDF5和NETCDF格式的遙感數(shù)據(jù)進(jìn)行通道合成、植被指數(shù)計(jì)算等遙感圖像處理的實(shí)現(xiàn),為遙感軟件的開(kāi)發(fā)提供了參考。
【關(guān)鍵詞】遙感圖像處理 GDAL 風(fēng)云三號(hào)D星風(fēng)云四號(hào)A星 通道合成 植被指數(shù)
1概論
根據(jù)氣象衛(wèi)星數(shù)據(jù)的背景特點(diǎn)以及GDAL的上述優(yōu)點(diǎn),本文利用GDAL來(lái)對(duì)FY-3D和FY-4的預(yù)處理后數(shù)據(jù),進(jìn)行數(shù)據(jù)的提取、解析和數(shù)據(jù)格式轉(zhuǎn)換,以及基礎(chǔ)的數(shù)據(jù)通道合成、植被指數(shù)計(jì)算等遙感數(shù)據(jù)的處理。
2軟件架構(gòu)
HDF格式和NetCDF格式,均是用于存儲(chǔ)氣象科學(xué)的網(wǎng)絡(luò)通用數(shù)據(jù)格式,其中HDF是美國(guó)國(guó)家高級(jí)計(jì)算機(jī)中心為了滿足科研領(lǐng)域需要而開(kāi)發(fā)出的一種高效存儲(chǔ)科學(xué)數(shù)據(jù)的數(shù)據(jù)格式,可包含多種類(lèi)型數(shù)據(jù),如柵格圖像數(shù)據(jù)、科學(xué)數(shù)據(jù)集、信息說(shuō)明等,因此一個(gè)HDF圖像文件數(shù)據(jù),可方便的查取其地理定位、軌道參數(shù)、柵格圖像數(shù)據(jù);而NetCDF是由美國(guó)大學(xué)大氣研究協(xié)會(huì)unidata項(xiàng)目科學(xué)家針對(duì)氣象科學(xué)數(shù)據(jù)特點(diǎn)開(kāi)發(fā)的一種可以通用的資料存儲(chǔ)格式,能夠存儲(chǔ)海量的面向陣列數(shù)據(jù),可支持生成、訪問(wèn)和共享科學(xué)數(shù)據(jù),且與平臺(tái)無(wú)關(guān),可在不同平臺(tái)下傳輸。
因此,要在Linux操作系統(tǒng)下用GDAL庫(kù)讀取和處理風(fēng)云三號(hào)和風(fēng)云四號(hào)的氣象衛(wèi)星遙感數(shù)據(jù),需要安裝GDAL庫(kù)之后,基于GDAL原有功能基礎(chǔ)上,按照其代碼規(guī)范標(biāo)準(zhǔn)和結(jié)構(gòu)標(biāo)準(zhǔn)進(jìn)行功能擴(kuò)展,集成HDF庫(kù)和NetCDF庫(kù)并重新發(fā)布GDAL版本,才能進(jìn)行HDF格式和NetCDF格式文件的讀寫(xiě)操作,這樣就能方便得把HDF和NetCDF中的數(shù)據(jù)信息轉(zhuǎn)換為其他通用的柵格數(shù)據(jù)格式,如Geotiff等,方便進(jìn)一步數(shù)據(jù)的應(yīng)用于處理。
2.1框架搭建
以GDAL和C++編程語(yǔ)言的結(jié)合應(yīng)用,設(shè)計(jì)出本軟件的程序框架,采用面向?qū)ο蟮木幊趟枷脒M(jìn)行框架的搭建,新建了用于讀取風(fēng)三HDF數(shù)據(jù)的GDALHDFData類(lèi),用于讀取風(fēng)四NetCDF數(shù)據(jù)的GDALNetCDFData類(lèi),用于圖像處理的ImageProcess類(lèi),以及用于植被指數(shù)計(jì)算的數(shù)據(jù)處理NDVIProcess類(lèi)。
(1) GDALHDFData類(lèi):包含各種成員函數(shù),用于打開(kāi)風(fēng)云三號(hào)MERSI載荷的數(shù)據(jù),包括各種數(shù)據(jù)集、文件屬性等,實(shí)現(xiàn)分塊讀取和格式轉(zhuǎn)換等操作;
(2) GDALNetCDF類(lèi):包含各種成員函數(shù),用于打開(kāi)風(fēng)云四號(hào)AGRI成像儀載荷的產(chǎn)品數(shù)據(jù),包括各種數(shù)據(jù)集、文件屬性等,實(shí)現(xiàn)分塊讀取和格式轉(zhuǎn)換等操作;
(3) ImageProcess類(lèi):包含各種不同通道作為參數(shù)作為圖像處理的函數(shù);
(4) NDVIProcess類(lèi):包含利用讀取的通道數(shù)據(jù)作為植被指數(shù)計(jì)算處理的函數(shù);
2.2 Linux環(huán)境下支持HDF和NetCDF庫(kù)的GDAL開(kāi)源庫(kù)安裝
默認(rèn)的GDAL庫(kù)并不包含對(duì)MODIS數(shù)據(jù)、風(fēng)三數(shù)據(jù)和風(fēng)四數(shù)據(jù)的支持,需要在gdal原有功能基礎(chǔ)上,按照其代碼規(guī)范標(biāo)準(zhǔn)和結(jié)構(gòu)標(biāo)準(zhǔn)進(jìn)行功能擴(kuò)展,集成HDF4、HDF5、netcdf庫(kù)并重新編譯發(fā)布。方法如下:
(1)下載針對(duì)HDF4、HDF5和NetCDF的Iinux環(huán)境下的源碼,安裝hdf4的庫(kù)libdf.a、libmthdf.a和libudport.a.hdf5的庫(kù)libhdf5.a、libhdf5.so和libhdf5_ hI.a,以及NetCDF的庫(kù)libnetcdf.a和libnetcdf.SO.
(2)安裝GDAL庫(kù),修改配置文件nmake.opt,修改有關(guān)HDF4、HDF5和NetCDF的配置
HDF4_ PLUGIN= No
HDF4 DIR= /user/MODIS/LIB
HDF4 LIB= /user/MODIS/LIB/lib/libdf.a/user/MODIS/LIB/lib/libmfhdfa
HDF5 PLUGIN= No
HDF5__ DIR= /user/MERSI/LIB
HDF5__ LIB= /user/MERSI/LIB/lib/libhdf5
NETCDF PLUGIN= No
NETCDF_SETTrNG= yes
NETCDF LIB=/user/FY4/LIB/lib/libnetcdf.a
NETCDF INC DIR= /user/FY4/LIB/include
(3)運(yùn)行l(wèi)inux環(huán)境下的配置,加載HDF4、HDF5和NetCDF之后,再編譯安裝。
(4)在linux環(huán)境下,輸入gdalinfoformats的命令,查看是否配置好支持HDF4、HDF5和NETCDF的庫(kù),如果均為yes,則證明有了這些庫(kù)的支持。
3處理功能設(shè)計(jì)
3.1風(fēng)三數(shù)據(jù)讀取與顯示
FY-3DMERSI載荷的Ll數(shù)據(jù)為HDF格式,以1000M分辨率的數(shù)據(jù)為例, 其文件名為:FY3D MERSI GBAL11 20180121 0330 1000M MS.HDF,當(dāng)中含有多個(gè)子數(shù)據(jù)集,如要獲取某一指定的子數(shù)據(jù)集的數(shù)據(jù),分為兩步,一是打開(kāi)文件獲取子數(shù)據(jù)名列表;二是根據(jù)第一步獲得的列表,選擇打開(kāi)指定數(shù)據(jù)集,核心代碼如下:
3.2風(fēng)四數(shù)據(jù)讀取與顯示
FY-4A的AGRI載荷的L2產(chǎn)品為NETCDF格式,以云檢測(cè)數(shù)據(jù)為例,其文件名 為FY4A- AGRI--_N_ DISK 1047E L2-CLM- MULT_NOM_ 20180204234500 20180204235959_ 4000M_VOOOl.ne,一個(gè)NETCDF數(shù)據(jù)的數(shù)據(jù)集包含維、變量和屬性三種描述類(lèi)型,每種類(lèi)型都會(huì)被分配一個(gè)名字和一個(gè)ID,用ID來(lái)識(shí)別不同數(shù)據(jù)集。
4實(shí)驗(yàn)結(jié)果
4.1通道合成結(jié)果
由于FY-3D星為最新一代極軌衛(wèi)星,是顆下午星,MERSI-H載荷每5分鐘一個(gè)數(shù)據(jù),而每軌數(shù)據(jù)間有重疊區(qū)域,因此在進(jìn)行3-2-1通道的真彩色合成前.需要對(duì)每個(gè)5分鐘數(shù)據(jù)做投影,并按照最優(yōu)天頂角的原則進(jìn)行去重復(fù),最后得到根據(jù)獲取的三個(gè)通道數(shù)據(jù)進(jìn)行的合成顯示。
5結(jié)論
本文的亮點(diǎn)在于在統(tǒng)一的開(kāi)發(fā)平臺(tái)庫(kù)中可實(shí)現(xiàn)多種衛(wèi)星遙感數(shù)據(jù)的處理,并將不同來(lái)源和格式的數(shù)據(jù)轉(zhuǎn)化為常用的通用的遙感數(shù)據(jù)格式,實(shí)現(xiàn)了批量化的處理,供后續(xù)處理應(yīng)用打下了基礎(chǔ),大大提高了工作效率。
參考文獻(xiàn)
[1]許健民,楊軍,我國(guó)氣象衛(wèi)星的發(fā)展與應(yīng)用[J].國(guó)家氣象衛(wèi)星中心氣象學(xué)報(bào),2010.
[2]王繼成,基于GDAL的HDF文件格式柵格數(shù)據(jù)的提取[J].計(jì)算機(jī)技術(shù)與信息發(fā)展,2011.