專利名稱:基于多分辨率遙感影像離散點(diǎn)融合的dem構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于離散點(diǎn)融合的DEM構(gòu)建方法,更具體地說,是一種基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法。
背景技術(shù):
地表高程信息是地學(xué)研究的基礎(chǔ)數(shù)據(jù)之一,快速獲取、反演區(qū)域的高程信息一直是遙感信息反演的熱點(diǎn)。一方面,對地表形態(tài)變化快速的區(qū)域而言,分析不同時(shí)間段內(nèi)的地貌高程變化信息,可得出區(qū)域地貌的演化特征與規(guī)律,可為經(jīng)濟(jì)社會(huì)和自然環(huán)境的協(xié)調(diào)發(fā)展提供科學(xué)的決策依據(jù);另一方面,由于灘面泥濘、潮溝密布、潮灘沖淤多變、海況復(fù)雜,使得海岸帶潮灘高程測量成為地形測量中公認(rèn)的困難區(qū)域。目前通過航空、航天遙感可獲取大范圍地面高程信息,已形成較多的地表高程反演方法張祖勛等人在數(shù)字?jǐn)z影測量學(xué)中提出基于立體像對的航空影像高程信息反演; Wehr A,Axelsson P,杜國慶等人分別利用 LiDAR (Light Detection And Ranging,機(jī)載激光探測和測距系統(tǒng))進(jìn)行不同地區(qū)的高程信息反演;Akira H, Stemphen G5Rabus B,金亞秋等人則利用立體像對的航天遙感影像高程信息反演;張鷹等人在《海岸帶潮灘土壤含水量遙感測量》一文中提出了一種基于潮灘含水量的高程信息反演的思想,建立潮灘高程與灘面沉積物含水量的相關(guān)關(guān)系,反演灘面沉積物含水量,近似得出潮灘高程。在數(shù)據(jù)源分辨率方面,黨福星在《利用多波段衛(wèi)星數(shù)據(jù)進(jìn)行淺海水深反演方法研究》,田慶久在《江蘇近海岸水深遙感研究》中以中空間分辨率遙感影像為數(shù)據(jù)源,從輻射傳輸理論方程、半理論半經(jīng)驗(yàn)的水深遙感模型、實(shí)測水深與像元輻射值相關(guān)模型等角度出發(fā)反演水底地形,由于衛(wèi)星重訪周期長,不能獲取連續(xù)的水邊線信息,反演精度不高。劉永學(xué)在《基于MODIS遙感數(shù)據(jù)集的潮灘高程反演》中以低空間分辨率遙感影像MODIS為數(shù)據(jù)源, 重訪周期短,但是由于分辨率低,不能滿足基礎(chǔ)數(shù)據(jù)更新要求。構(gòu)建DEM需要足夠的潮汐分布數(shù)據(jù),但是中空間分辨率遙感影像不能滿足長序列時(shí)間覆蓋的要求,低空間分辨率遙感影像雖可以實(shí)現(xiàn)長序列時(shí)間覆蓋,但是空間分辨率受到限制。因此,急需一種能夠協(xié)同利用中空間分辨率遙感影像的空間覆蓋和低空間分辨率遙感影像的時(shí)間覆蓋,來改善潮灘高程反演精度的DEM構(gòu)建方法。
發(fā)明內(nèi)容
發(fā)明要解決的技術(shù)問題
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中單一的中空間分辨率遙感影像不能滿足長序列時(shí)間覆蓋的要求,單一的低空間分辨率遙感影像的空間分辨率受到限制的不足,提供基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法,根據(jù)低空間分辨率影像的分辨率對所有遙感影像提取的水邊線離散點(diǎn)進(jìn)行格網(wǎng)劃分,對于低空間分辨率遙感影像,根據(jù)該格網(wǎng)對離散點(diǎn)進(jìn)行分區(qū)、標(biāo)記、提取中值;對于中空間分辨率遙感影像,將沒有離散點(diǎn)數(shù)據(jù)的網(wǎng)格用低空間分辨率中值濾波后的數(shù)據(jù)進(jìn)行填充,再對融合后離散點(diǎn)進(jìn)行內(nèi)插,以達(dá)到構(gòu)建DEM的目的。技術(shù)方案
為達(dá)到上述目的,本發(fā)明提供的技術(shù)方案為 本發(fā)明的原理
根據(jù)遙感影像成像時(shí)刻潮位高程信息可知這一特點(diǎn),結(jié)合多期遙感影像水邊線數(shù)據(jù), 通過等距離散得到多期水邊線離散點(diǎn),根據(jù)最低遙感影像分辨率對離散點(diǎn)進(jìn)行格網(wǎng)劃分, 以該格網(wǎng)對低空間分辨率遙感影像離散點(diǎn)進(jìn)行分區(qū)、標(biāo)記、提取中值,并對沒有離散點(diǎn)數(shù)據(jù)的中空間分辨率影像格網(wǎng)填充中值濾波后的低空間分辨率遙感影像水邊線離散點(diǎn),最后通過內(nèi)插得到DEM構(gòu)建結(jié)果。本發(fā)明的基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法,其步驟為
步驟1 收集驗(yàn)潮站每日高低潮的潮時(shí)及潮高觀測數(shù)據(jù),以此內(nèi)插得到衛(wèi)星成像時(shí)刻潮位信息;結(jié)合離散衛(wèi)星成像時(shí)刻提取的矢量水邊線,將衛(wèi)星成像時(shí)刻的水邊線根據(jù)其遙感影像分辨率進(jìn)行等間隔離散,得到一系列等間隔的離散點(diǎn),并將上述計(jì)算所得的衛(wèi)星成像時(shí)刻潮位信息賦予離散點(diǎn),重復(fù)以上步驟,直到所有水邊線被離散為帶有潮位信息的等距離散點(diǎn);
步驟2 分別合并離散的等距潮位點(diǎn),根據(jù)低空間分辨率遙感影像分辨率構(gòu)建參考格網(wǎng),并對所有離散的等距潮位點(diǎn)進(jìn)行標(biāo)號(hào),標(biāo)明其所屬格網(wǎng)ID ;
步驟3 遍歷低空間分辨率影像中的所有格網(wǎng),針對各種不同情況采取下列操作
(1)如果該格網(wǎng)內(nèi)沒有被標(biāo)記的離散點(diǎn),則不采取任何操作;
(2)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為奇數(shù),設(shè)為2n+l,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,保留潮位信息中數(shù),即n+1點(diǎn)所對應(yīng)的離散點(diǎn),刪除其他離散點(diǎn);
(3)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為偶數(shù),設(shè)為2η,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,選取潮位信息最中間兩個(gè)離散點(diǎn),即η和n+1點(diǎn),對其地理方位、潮位信息進(jìn)行平均,生成一個(gè)新離散點(diǎn),刪除其他離散點(diǎn);
其中,上述處理過的離散點(diǎn)寫入一個(gè)新建的點(diǎn)shp文件中;
步驟4 對于中空間分辨率影像,將其中沒有離散點(diǎn)的格網(wǎng)進(jìn)行標(biāo)記,并以對應(yīng)格網(wǎng)內(nèi)中值濾波后的低空間分辨率影像離散點(diǎn)進(jìn)行填充,最后在ArcGIS中實(shí)現(xiàn)融合;
步驟5 在上述步驟的基礎(chǔ)上利用線性內(nèi)插構(gòu)建最終的DEM結(jié)果,該線性內(nèi)插過程在 Erdas軟件中利用反距離加權(quán)方法予以實(shí)現(xiàn)。更進(jìn)一步地,步驟1中水邊線離散點(diǎn)生成實(shí)現(xiàn)步驟如下遍歷所有水邊線shp文件,每遍歷到一個(gè)新的水邊線Shp文件則生成一個(gè)投影信息與原Shp文件一致的點(diǎn)文件, 再遍歷該水邊線Shp文件所有線性矢量記錄,針對每條矢量記錄,找到該矢量的起始節(jié)點(diǎn) AO作為線段一個(gè)端點(diǎn),接著尋找矢量的下一個(gè)節(jié)點(diǎn)Al作為線段另一個(gè)端點(diǎn),計(jì)算該線段長度,如果大于給定的間隔L,則生成一個(gè)距離AO點(diǎn)長度為L的離散點(diǎn)N0,并將NO作為起始端點(diǎn),重復(fù)上述步驟直至線段長度小于或等于給定間隔時(shí),將AO及所有生成的N0,N1,…… Nn點(diǎn)寫入遍歷開始時(shí)的點(diǎn)shp文件,判斷該矢量是否有下一個(gè)節(jié)點(diǎn),如果存在,則將Al置為線段起點(diǎn),A2置為線段終點(diǎn),重復(fù)上述步驟,直至矢量文件遍歷完成。更進(jìn)一步地,步驟2中構(gòu)建中值濾波的參考格網(wǎng)及離散點(diǎn)標(biāo)號(hào),具體實(shí)現(xiàn)步驟如下利用ArcGIS的Merge命令將所有離散點(diǎn)shp文件合并成一個(gè)shp文件,并求取該點(diǎn)shp文件所有離散點(diǎn)的極值X,Y坐標(biāo),將其作為網(wǎng)格的邊界值,分析原始遙感影像空間分辨率 S,并以其作為格網(wǎng)邊長,遍歷每一個(gè)格網(wǎng),將落入其中的離散點(diǎn)標(biāo)記該格網(wǎng)的ID號(hào)。有益效果
相比現(xiàn)有技術(shù),本發(fā)明實(shí)現(xiàn)了多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建的流程,引入了融合的方法,與已有的公知技術(shù)相比,具有如下顯著效果
(1)本發(fā)明提高了DEM構(gòu)建的精度。由于多數(shù)基于離散點(diǎn)的DEM構(gòu)建算法利用所有離散點(diǎn)信息,進(jìn)行DEM構(gòu)建時(shí)存在一定的隨機(jī)取舍,而本方明通過對低分辨率遙感影像水邊線離散點(diǎn)采用中值濾波的方法有效地利用了落在格網(wǎng)內(nèi)所有離散點(diǎn)的高程信息,改善離散點(diǎn)空間分布不均衡的現(xiàn)象,提高了離散點(diǎn)高程精度;
(2)本發(fā)明提高了DEM構(gòu)建的時(shí)間空間分辨率。由于中空間分辨率遙感影像不能滿足時(shí)間覆蓋,而低空間分辨率遙感影像雖可以滿足時(shí)間覆蓋,但是空間分辨率受到限制,本發(fā)明同時(shí)利用中空間分辨率遙感影像的空間覆蓋和低空間分辨率遙感影像的時(shí)間覆蓋,提高了 DEM構(gòu)建的時(shí)間空間分辨率;
(3)本發(fā)明實(shí)際應(yīng)用表明,通過本發(fā)明能夠快速、準(zhǔn)確地從多期水邊線數(shù)據(jù)中構(gòu)建精確的DEM,能夠?yàn)閲腋骷?jí)基礎(chǔ)地理信息數(shù)據(jù)庫DEM信息提供技術(shù)支撐,降低基礎(chǔ)地理信息數(shù)據(jù)庫的更新成本,提高數(shù)據(jù)更新的效率。
圖1為實(shí)施例中通過等距離散后的低分辨率遙感影像水邊線離散點(diǎn)提取結(jié)果圖; 圖2為實(shí)施例中通過等距離散后的中分辨率遙感影像水邊線離散點(diǎn)提取結(jié)果圖3為實(shí)施例中通過中值濾波后的低分辨率遙感影像水邊線離散點(diǎn)提取結(jié)果圖; 圖4為實(shí)施例中的中低分辨率遙感影像水邊線離散點(diǎn)融合結(jié)果圖; 圖5為實(shí)施例中的DEM構(gòu)建結(jié)果圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的描述。 實(shí)施例采用C#編程語言在Visual Studio 2008平臺(tái)下實(shí)現(xiàn)本方法的5個(gè)步驟,矢量數(shù)據(jù)的讀寫操作通過開源地理數(shù)據(jù)格式轉(zhuǎn)換類庫GDAL 1. 60以及ArcEngine實(shí)現(xiàn)。步驟1 收集陳家塢驗(yàn)潮站每日高低潮的潮時(shí)及潮高觀測數(shù)據(jù),以此內(nèi)插得到衛(wèi)星成像時(shí)刻潮位信息;結(jié)合離散衛(wèi)星成像時(shí)刻提取的矢量水邊線,將衛(wèi)星成像時(shí)刻的水邊線根據(jù)其遙感影像分辨率進(jìn)行等間隔離散,得到一系列等間隔的離散點(diǎn),并將上述計(jì)算所得的衛(wèi)星成像時(shí)刻潮位信息賦予離散點(diǎn),重復(fù)以上步驟,直到所有水邊線被離散為帶有潮位信息的等距離散點(diǎn)。本實(shí)施例中,采用附圖1及附圖2所示遙感影像水邊線離散點(diǎn)數(shù)據(jù)作為構(gòu)建DEM 的參考數(shù)據(jù),獲取所有水邊線數(shù)據(jù)均從Landsat TM、SPOT HRV、CBERS-2 CCD、IRS-P6、 AWiFS/LISS、Beijing-I CCD以及ERS-2 SAR傳感器所得的遙感影像中獲取,時(shí)間為2006 年全年。首先,利用IFeatureCursor進(jìn)行各矢量線段的遍歷,針對每個(gè)矢量線段新建長度為節(jié)點(diǎn)數(shù)的IPoint型數(shù)組用以存放每條矢量線段的節(jié)點(diǎn),再新建一個(gè)長度為節(jié)點(diǎn)數(shù)-1的 ILine型數(shù)組用于存放該矢量線段的各條直線段,根據(jù)最小劃分閾值遍歷直線段,劃分線元,并將得到的離散點(diǎn)插入新的shapefile文件中,其實(shí)現(xiàn)的核心代碼為
/氺氺氺氺氺氺氺氺氺氺氺iliiJ/Jcii^iP^^S-^h氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺/
//利用as實(shí)現(xiàn)多態(tài)IGeometry即shape向Ipolyline的轉(zhuǎn)換 IPolyline pffaterline = pFeature. Shape as IPolyline;
//在Ipolyline工廠里利用IPolyline對象去訪問
IPointCollection4 對象
IPointColIection4 pffaterline_points = pffaterline as
IPointCollection4;
Il建立一個(gè)存放點(diǎn)的數(shù)組
IPoint[] points = new IPoint[pWaterline—points.
PointCount];
IGeometryBridge geometryBridge = new
GeometryEnvironmentClass ();
for (int i = 0; i < points.Length; i++)
{
points [i] = new PointClass ();
}
Il將pointcollection中的點(diǎn)讀到points數(shù)組中去
geometryBridge. QueryPoints(pffaterline_points, O, ref
points);
/氺氺氺氺氺氺氺氺氺氺完畢
/*********得到每條水邊線的直線段
Il為每一條水邊線段建立一個(gè)存放直線段的數(shù)組,并記錄相鄰兩點(diǎn)的直線段 ILine[] Waterline_line_array = new ILine[pWaterline—points. PointCount -
1];
for (int i = 0; i < (pWaterline—points· PointCount - 1); i++)
{
Waterline_line_array[i] = new LineClass (); Il用水邊線的相鄰兩點(diǎn)構(gòu)建直線段
Waterline_line_array[i]. PutCoords (points [i], points [i + 1]);
ι
//此處才是真正將第一個(gè)點(diǎn)寫入Shp中
if(Waterline—line—array
. Length〈2000)
{
OBJ = point_featureCursor. InsertFeature(point_featurebuffer);point—featureCursor· Flush ();
ι
//用水邊線的各個(gè)點(diǎn)來構(gòu)建直線段
for (int j = 0; j < points. Length - 1; j++)
{
if (Waterline_line_array[j]. Length < 2000)
{
//記錄已經(jīng)被劃分的直線段的長度 double Water1ine_line_length = 0; Il記錄劃分直線段線元的編號(hào) int t = 0;
Il遍歷直線段,劃分線元
while (Water1ine_line_length < Waterline_line_array[j]. Length)
{
//如果剩下的直線段已經(jīng)不夠再劃分這個(gè)線元,那就用剩下的直線段來作為
這個(gè)線元
if ((Waterline_line_array[j]. Length - Waterline_line_length) < EL)
{
ILine pline = new LineClass(); IPoint from—point = new PointClass (); IPoint to—point = new PointClass (); //注意每個(gè)線元的始末點(diǎn)劃分方法,即用上一個(gè)線元?jiǎng)澐值慕K點(diǎn)作為起點(diǎn),再加上該線元的長度EL
Waterline_line_array[j]. QueryPoint(esriSegmentExtension.esriNoExtension, Water1ine_line_length, false, from—point);
to—point = Waterline_line_array[j]. ToPoint;
TideDataset[index]. MapToPixel(to_point. X,to_point. Y,out pcolunm, out prow);
obj = TideDataset[index]. GetPixelValue (O, pcolunm, prow); point_featurebuffer. set—Value(point_featurebuffer. Fields. FindFieldByAlias Name (TideFieldName),obj);
point_featurebuffer. Shape = to—point;
OBJ = point_featureCursor. InsertFeature(point_featurebuffer); point—featureCursor· Flush ();
ι
//否則,用計(jì)算出的該線元的長度劃分線段
else {
ILine pline = new LineClass ();IPoint from—point = new PointClass (); IPoint to—point = new PointClass (); Waterline_line_array[j]. QueryPoint(esriSegmentExtension. esriNoExtension, Water1ine_line_length, false, from—point);
Waterline_line_array[j]. QueryPoint(esriSegmentExtension. esriNoExtension, Water1ine_line_length + ELj false, to—point);
TideDataset[index]. MapToPixel(to_point. X,to_point. Y,out pcolunm, out prow);
obj = TideDataset[index]. GetPixelValue(O, pcolunm, prow); point_featurebuffer. set—Value(point_featurebuffer. Fields. FindFie IdByAliasName(TideFieldName),obj);
point_featurebuffer. Shape = to—point;
OBJ = point_featureCursor. InsertFeature(point_featurebuffer); point_featureCursor. Flush (); Il用這兩個(gè)點(diǎn)來構(gòu)建線元 pline.PutCoords (from—point,to—point);
ι
//遞進(jìn),得到下一個(gè)直線段 t++;
Water1ine_line_length += EL; 步驟2 :分別合并離散的等距潮位點(diǎn),根據(jù)低空間分辨率遙感影像分辨率構(gòu)建參考格網(wǎng),并對所有離散的等距潮位點(diǎn)進(jìn)行標(biāo)號(hào),標(biāo)明其所屬格網(wǎng)ID。 本實(shí)施例中,將步驟1生成的低空間分辨率遙感影像水邊線離散點(diǎn)文件和中空間分辨率遙感影像水邊線離散點(diǎn)文件利用ArcGIS軟件中Merge命令分別進(jìn)行合并得到兩個(gè)匯總離散點(diǎn)的shapefile文件,再利用ArcGIS軟件中Create Fishnet功能進(jìn)行格網(wǎng)構(gòu)建,該功能中^Template Extent選擇匯總離散點(diǎn)的shapefile文件,Cell Size Width 與Cell Size Height均為提取水邊線的低空間分辨率遙感影像分辨率,再利用!Mature to Polygon命令將上一步生成的Fishnet轉(zhuǎn)換成polygon的格網(wǎng),最后利用Spatial Join命令對匯總離散點(diǎn)進(jìn)行標(biāo)記,該功能中Target !Matures選擇匯總離散點(diǎn)文件,Join Features選擇由Fishnet轉(zhuǎn)換成polygon的格網(wǎng),其實(shí)現(xiàn)的核心代碼為 III確定格網(wǎng)內(nèi)的點(diǎn) private void PointsInGrids ()
{
for (int i = 0; i < gridNumber; i++)
{
for (int j = 0; j < pointNumber; j++)
{
if (points[j]. X > grids[i]. X - gridSize / 2. O && points[j]. X < grids[i], X + gridSize / 2. O &&points[j]. Y > grids[i]. Y - gridSize / 2. 0 && points[j]. Y < grids[i]. Y + gridSize / 2. 0)
grids [i]. Index. Add (j);
ι
ι
ι
步驟3 :對低空間分辨率遙感影像水邊線離散點(diǎn)數(shù)據(jù)進(jìn)行中值濾波,遍歷低空間分辨率影像中的所有格網(wǎng),針對各種不同情況采取下列操作
(1)如果該格網(wǎng)內(nèi)沒有被標(biāo)記的離散點(diǎn),則不采取任何操作;
(2)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為奇數(shù),設(shè)為2n+l,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,保留潮位信息中數(shù),即n+1點(diǎn)所對應(yīng)的離散點(diǎn),刪除其他離散點(diǎn);
(3)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為偶數(shù),設(shè)為2η,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,選取潮位信息最中間兩個(gè)離散點(diǎn),即η和n+1點(diǎn),對其地理方位,潮位信息進(jìn)行平均,生成一個(gè)新離散點(diǎn),刪除其他離散點(diǎn);其中,上述處理過的離散點(diǎn)寫入一個(gè)新建的點(diǎn)shp文件中;結(jié)果如圖3所示。中值濾波代碼如下
III中值濾波
private void MedianFilter()
{
for (int i = 0; i < gridNumber; i++)
{
if (grids[i]. Index. Count > 0)
{
List〈PData> tempData = new List〈PData>(); for (int j = 0; j < grids[i]. Index. Count; j++)
tempData. Add(points[grids[i]. Index[j]]); for (int m = 0; m < tempData. Count; m++)
for (int η = m + 1; η < tempData. Count; η++)
{
if (tempData[m]. TideValue > tempData[η]. TideValue)
{
int tempOID = tempData[m]· OID;
double tempX = tempData[m]. X;
double tempY = tempData[m]. Y;
double tempTideValue = tempData[m] · TideValue;
tempData[m]. OID = tempData[n]. OID;
tempData[m]. X = tempData[n]. X;
tempData[m]. Y = tempData[n]. Y;
tempData[m] · TideValue = tempData[n] · TideValue;
tempData[n]. OID = tempOID;tempData[n]. X = tempX; tempData[n]. Y = tempY; tempData[n]. TideValue = tempTideValue;
ι
ι
PData pData = new PData (); pData. OID = outPoints. Count;
if (tempData. Count % 2 == 0)
{
pData. X = (tempData[tempData.Count / 2 - 1]. X + tempData [tempData. Count / 2]. X) / 2. 0 ;
pData. Y = (tempData[tempData.Count / 2 - 1]. Y + tempData [tempData. Count / 2]. Y) / 2. 0 ;
pData.TideValue = (tempData[tempData. Count / 2 -
1].TideValue + tempData[tempData. Count/ 2].TideValue) / 2. 0;
ι
else {
pData. X = tempData[tempData. Count / 2]. X; pData. Y = tempData[tempData. Count / 2]. Y;
pData.TideValue = tempData[tempData. Count /
2].TideValue;
ι
outPoints. Add (pData);
ι
ι
ι
步驟4:對于中空間分辨率影像,將其中沒有離散點(diǎn)的格網(wǎng)進(jìn)行標(biāo)記,并以對應(yīng)格網(wǎng)內(nèi)中值濾波后的低空間分辨率影像離散點(diǎn)進(jìn)行填充,最后在ArcGIS中實(shí)現(xiàn)融合,結(jié)果如圖4 所示,其實(shí)現(xiàn)的核心代碼為
private void SelectInsertPoints ()
{
for (int i = 0; i < grids. Length; i++)
{
int flag = 0;
for (int j = 0; j < basepoints. Length; j++)
{
if (grids[i]. X + gridSize / 2 > basepoints [j]. X && grids[i]. X -gridSize / 2 < basepoints[j]. X&& grids[i]. Y + gridSize / 2 > basepoints[j]. Y && grids[i]. Y -
gridSize / 2 < basepoints[j]. Y)
{
flag = 1; break;
}
}
if (flag == 0)
{
int index = SearchInsertPointsWithinGrid(i);
if (index != _1)
{
selectedinsertpointsindex. Add(index);
ι
ι
ι
ι
private int SearchInsertPointsWithinGrid(int gridindex)
{
int index = _1;
for (int i = 0; i < insertpoints. Length; i++)
{
if (grids[gridindex]. X + gridSize / 2 > insertpoints[i]. X && grids[gridindex]. X - gridSize / 2 < insertpoints [i].X
&& grids[gridindex]. Y + gridSize / 2 > insertpoints[i]. Y &&
grids[gridindex]. Y - gridSize / 2 < insertpoints[i]. Y)
{
index = i; break;
ι
ι
return index;
ι
步驟5 在上述步驟的基礎(chǔ)上利用線性內(nèi)插構(gòu)建最終的DEM結(jié)果,該線性內(nèi)插過程在 Erdas軟件中利用反距離加權(quán)方法予以實(shí)現(xiàn)。 本實(shí)施例中,將步驟4中得到的離散點(diǎn)融合圖利用Erdas軟件中Data Prepration 中的Create Surface功能實(shí)現(xiàn)。首先在對話框中點(diǎn)擊file下的read功能,讀取步驟4的離散點(diǎn)融合結(jié)果,點(diǎn)擊Surface下的Surfacing,設(shè)置輸出路徑、輸出文件名、輸出結(jié)果分辨率等參數(shù),在Surfacing Methods下選擇Linear Rubber Shipping功能,點(diǎn)擊運(yùn)行,得到DEM結(jié)果,結(jié)果如圖5所示。 本發(fā)明提高了現(xiàn)有中低分辨率遙感影像離散點(diǎn)DEM構(gòu)建的正確率,同時(shí)也提高了 DEM構(gòu)建的時(shí)間空間分辨率。實(shí)際應(yīng)用表明,通過本發(fā)明能夠快速、準(zhǔn)確地從多期水邊線數(shù)據(jù)中構(gòu)建精確的DEM,能夠?yàn)閲腋骷?jí)基礎(chǔ)地理信息數(shù)據(jù)庫DEM信息提供技術(shù)支撐,降低基礎(chǔ)地理信息數(shù)據(jù)庫的更新成本,提高數(shù)據(jù)更新的效率。
權(quán)利要求
1.基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法,其步驟為步驟1 收集驗(yàn)潮站每日高低潮的潮時(shí)及潮高觀測數(shù)據(jù),以此內(nèi)插得到衛(wèi)星成像時(shí)刻潮位信息;結(jié)合離散衛(wèi)星成像時(shí)刻提取的矢量水邊線,將衛(wèi)星成像時(shí)刻的水邊線根據(jù)其遙感影像分辨率進(jìn)行等間隔離散,得到一系列等間隔的離散點(diǎn),并將上述計(jì)算所得的衛(wèi)星成像時(shí)刻潮位信息賦予離散點(diǎn),重復(fù)以上步驟,直到所有水邊線被離散為帶有潮位信息的等距離散點(diǎn);步驟2 分別合并離散的等距潮位點(diǎn),根據(jù)低空間分辨率遙感影像分辨率構(gòu)建參考格網(wǎng),并對所有離散的等距潮位點(diǎn)進(jìn)行標(biāo)號(hào),標(biāo)明其所屬格網(wǎng)ID ;步驟3 遍歷低空間分辨率影像中的所有格網(wǎng),針對各種不同情況采取下列操作(1)如果該格網(wǎng)內(nèi)沒有被標(biāo)記的離散點(diǎn),則不采取任何操作;(2)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為奇數(shù),設(shè)為2n+l,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,保留潮位信息中數(shù),即n+1點(diǎn)所對應(yīng)的離散點(diǎn),刪除其他離散點(diǎn);(3)如果該格網(wǎng)內(nèi)被標(biāo)記的離散點(diǎn)個(gè)數(shù)為偶數(shù),設(shè)為2η,則將該格網(wǎng)內(nèi)所有離散點(diǎn)潮位信息從小到大排序,選取潮位信息最中間兩個(gè)離散點(diǎn),即η和n+1點(diǎn),對其地理方位、潮位信息進(jìn)行平均,生成一個(gè)新離散點(diǎn),刪除其他離散點(diǎn);其中,上述處理過的離散點(diǎn)寫入一個(gè)新建的點(diǎn)shp文件中;步驟4 對于中空間分辨率影像,將其中沒有離散點(diǎn)的格網(wǎng)進(jìn)行標(biāo)記,并以對應(yīng)格網(wǎng)內(nèi)中值濾波后的低空間分辨率影像離散點(diǎn)進(jìn)行填充,最后在ArcGIS中實(shí)現(xiàn)融合;步驟5 在上述步驟的基礎(chǔ)上利用線性內(nèi)插構(gòu)建最終的DEM結(jié)果,該線性內(nèi)插過程在 Erdas軟件中利用反距離加權(quán)方法予以實(shí)現(xiàn)。
2.根據(jù)權(quán)利要求1所述的基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法,其特征在于步驟1中水邊線離散點(diǎn)生成實(shí)現(xiàn)步驟如下遍歷所有水邊線shp文件,每遍歷到一個(gè)新的水邊線shp文件則生成一個(gè)投影信息與原shp文件一致的點(diǎn)文件,再遍歷該水邊線 shp文件所有線性矢量記錄,針對每條矢量記錄,找到該矢量的起始節(jié)點(diǎn)AO作為線段一個(gè)端點(diǎn),接著尋找矢量的下一個(gè)節(jié)點(diǎn)Al作為線段另一個(gè)端點(diǎn),計(jì)算該線段長度,如果大于給定的間隔L,則生成一個(gè)距離AO點(diǎn)長度為L的離散點(diǎn)N0,并將NO作為起始端點(diǎn),重復(fù)上述步驟直至線段長度小于或等于給定間隔時(shí),將AO及所有生成的N0,N1,……Nn點(diǎn)寫入遍歷開始時(shí)的點(diǎn)shp文件,判斷該矢量是否有下一個(gè)節(jié)點(diǎn),如果存在,則將Al置為線段起點(diǎn),A2 置為線段終點(diǎn),重復(fù)上述步驟,直至矢量文件遍歷完成。
3.根據(jù)權(quán)利要求1或2所述的基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法, 其特征在于步驟2中構(gòu)建中值濾波的參考格網(wǎng)及離散點(diǎn)標(biāo)號(hào),具體實(shí)現(xiàn)步驟如下利用 ArcGIS的Merge命令將所有離散點(diǎn)shp文件合并成一個(gè)shp文件,并求取該點(diǎn)shp文件所有離散點(diǎn)的極值X,Y坐標(biāo),將其作為網(wǎng)格的邊界值,分析原始遙感影像空間分辨率S,并以其作為格網(wǎng)邊長,遍歷每一個(gè)格網(wǎng),將落入其中的離散點(diǎn)標(biāo)記該格網(wǎng)的ID號(hào)。
全文摘要
本發(fā)明公開了基于多分辨率遙感影像離散點(diǎn)融合的DEM構(gòu)建方法,屬于DEM構(gòu)建領(lǐng)域。其步驟為(1)將衛(wèi)星成像時(shí)刻的水邊線根據(jù)其遙感影像分辨率進(jìn)行等間隔離散;(2)分別合并離散的等距潮位點(diǎn),根據(jù)低空間分辨率遙感影像分辨率構(gòu)建參考格網(wǎng);(3)遍歷低空間分辨率影像中的所有格網(wǎng)進(jìn)行中值濾波;(4)以對應(yīng)格網(wǎng)內(nèi)中值濾波后的低空間分辨率影像離散點(diǎn)進(jìn)行填充,最后在ArcGIS中實(shí)現(xiàn)融合;(5)利用線性內(nèi)插構(gòu)建最終的DEM結(jié)果。本發(fā)明提高了現(xiàn)有中低分辨率遙感影像離散點(diǎn)DEM構(gòu)建的正確率,同時(shí)也提高了DEM構(gòu)建的時(shí)間空間分辨率,能夠快速、準(zhǔn)確地從多期水邊線數(shù)據(jù)中構(gòu)建精確的DEM,降低了基礎(chǔ)地理信息數(shù)據(jù)庫的更新成本,提高了數(shù)據(jù)更新的效率。
文檔編號(hào)G06T17/05GK102496185SQ20111041784
公開日2012年6月13日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者劉永學(xué), 張雯, 李滿春, 李 真, 楊康, 程亮, 童禮華, 胡煒, 蔡文婷, 陳焱明 申請人:南京大學(xué)