1.數(shù)字地圖中典型地形幾何參數(shù)獲取方法,其特征是:包括如下步驟:
步驟101:使用ArcGIS工具,打開一個ASTER GDEM類型的GeoTIFF地圖文件;
步驟102:將所有柵格點的高程值作歸一化處理,結果保存在DEM_1.gif文件中;歸一化處理的方法為:設x為任一柵格點處的量值,該量值是高程、坡度、坡度變率、曲率、地形起伏度中的任一種,xmax是所有柵格點量值的最大值,xmin是所有柵格點量值的最小值,x′是x的歸一化值,則x′=(x-xmin)×255/(xmax-xmin);
步驟103:計算所有柵格點的坡度值,再作歸一化處理,歸一化的坡度值保存在Slope_1.gif文件中;
步驟104:計算所有柵格點的坡度變率,再作歸一化處理,歸一化的坡度變率值保存在PoDuBianLv_1.gif文件中;
步驟105:計算所有柵格點的曲率,并對曲率求絕對值,再作歸一化處理,歸一化的曲率值保存在Curvature_1.gif文件中;
步驟106:計算所有柵格點的地形起伏度,結果保存在QiFuDu.gif文件中,再對其作歸一化處理,歸一化的地形起伏度值保存在QiFuDu_1.gif文件中;
步驟107:將歸一化的高程、坡度、坡度變率、曲率和地形起伏度做為特性指標,采用ISO(Iterative SelfOrganization)非監(jiān)督聚類得到地形的初步分類結果,每類地形有一個類別編號,初步分類結果保存在JuLei.gif文件中;
步驟108:使用GDAL庫函數(shù)打開步驟101的地圖文件,打開QiFuDu.gif文件和JuLei.gif文件;
步驟109:依據(jù)地形平均起伏度對步驟107初步分類結果進行地形判定分類;
步驟110:用四位正整數(shù)標志地形類別及區(qū)域,前一位表示地形類別,平原、丘陵、低山、中山、高山分別用1、2、3、4、5表示;后三位表示此種類別地形的區(qū)域個數(shù)編號,從001開始累積編號,地形判定分類的結果用此種方式表示成數(shù)值之后,保存在地形分類結果文件FenLei.gif之中;
步驟111:讀取分類結果文件FenLei.gif,根據(jù)地形類別及區(qū)域標志數(shù)字選擇待研究地形區(qū)域;
步驟112:判斷地形類別標志是否為1,若是,轉至步驟113;若不是,轉至步驟115;
步驟113:將平原地形簡化為平面,求取地形類別標志為平原的所有柵格點高程的平均值,記其為平均高程Ea;
步驟114:求取地形類別標志為平原的所有柵格點地形起伏度的平均值,記其為平均起伏度Ha,轉至步驟127;
步驟115:對待研究的地形區(qū)域進行八鄰域邊界跟蹤,提取出邊界點序列存入鏈表Point_List中;
步驟116:求地形區(qū)域的面積S、地形區(qū)域的中心C(x0,y0)和地形的體積V:由鏈表Point_List存儲的邊界點序列連線形成一個邊界多邊形,用圖形學中的“交點計數(shù)法”判斷柵格點是否在邊界多邊形內,統(tǒng)計處在邊界多邊形內和位于邊界多邊形邊上的柵格點數(shù)目num,設單個柵格點所占面積為a,則地形區(qū)域的面積S=num×a;地形區(qū)域的中心點C的坐標xi、yi是邊界多邊形內及邊界多邊形邊上的任一柵格點的坐標;地形的體積
hi是邊界多邊形內及邊界多邊形邊上的任一柵格點的高程;
步驟117:地形類別標志是否為2,若是,轉至步驟118;若不是,轉至步驟120;
步驟118:將丘陵地形簡化為球缺,求取球缺的底面圓半徑
步驟119:求取球缺的高度h1:解方程(h1)3+3(r1)2(h1)-6V/π=0即得球缺的高度轉至步驟127;
步驟120:求地形區(qū)域的周長L:由鏈表Point_List存儲的邊界點序列連線形成一個邊界多邊形,邊界點即為邊界多邊形的頂點,設多邊形頂點個數(shù)為n,令第n+1頂點等于第1個頂點,邊界多邊形任一邊的邊長|PiPi+1|由邊的兩個頂點Pi、Pi+1通過兩點距離公式求得,則邊界多邊形的周長即為地形區(qū)域的周長L,
步驟121:求地形區(qū)域的形狀因子f:形狀因子f=4πS/L2;
步驟122:判斷形狀因子f是否大于或等于0.7,若是,轉至步驟123;若不是,轉至步驟125;
步驟123:將地形簡化為錐形山,求錐形山底面圓的半徑
步驟124:求取錐形山的高度轉至步驟127;
步驟125:將地形簡化為楔形山,求取楔形山底面區(qū)域的最小外接矩形;
步驟126:求取楔形山的高度其中a、b為步驟125求取的外接矩形的兩個邊長,轉至步驟127;
步驟127:輸出地形幾何參數(shù):若地形為平原,輸出平均高程Ea、平均起伏度Ha;若地形為丘陵,輸出球缺底面圓中心C(x0,y0)、半徑r1和球缺高度h1;若地形為錐形山,輸出圓錐底面圓中心C(x0,y0)、半徑r1和圓錐高度h2;若地形為楔形山,輸出楔形體底面矩形中心C(x0,y0),邊長a、b,矩形方向角an和楔形體高度h3。
2.根據(jù)權利要求1所述的數(shù)字地圖中典型地形幾何參數(shù)獲取方法,其特征是:所示的步驟109中依據(jù)地形平均起伏度對步驟107初步分類結果進行地形判定分類,包括以下步驟:
步驟201:讀取JuLei.gif文件,遍歷地形類別編號,記該編號為n;
步驟202:遍歷類別n的地形范圍,從QiFuDu.gif文件中讀取相對應位置的地形起伏度數(shù)據(jù);
步驟203:求取該類別地形區(qū)域的地形起伏度平均值U;
步驟204:判斷U是否小于或等于20米,若是,轉至步驟205;若不是,轉至步驟206;
步驟205:該類別地形判定為平原;
步驟206:判斷U是否小于或等于200米,若是,轉至步驟207;若不是,轉至步驟208;
步驟207:該類別地形判定為丘陵;
步驟208:判斷U是否小于或等于500米,若是,轉至步驟209;若不是,轉至步驟210;
步驟209:該類別地形判定為低山;
步驟210:判斷U是否小于或等于1500米,若是,轉至步驟211;若不是,轉至步驟212;
步驟211:該類別地形判定為中山;
步驟212:該類別地形判定為高山。
3.根據(jù)權利要求1所述的數(shù)字地圖中典型地形幾何參數(shù)獲取方法,其特征是:所示的步驟115中對待研究的地形區(qū)域進行八鄰域邊界跟蹤,提取出邊界點序列存入鏈表Point_List中,包括以下步驟:
步驟301:基于GDAL讀取地形分類結果文件FeiLei.gif;
步驟302:根據(jù)待研究的地形區(qū)域的四位正整數(shù)標志,將其地形類別標志數(shù)字記作type;
步驟303:按照從上至下、由左到右的順序,從文件FeiLei.gif中圖像左上角依次讀取柵格點的地形類別標志數(shù)字,當?shù)谝淮巫x到的柵格點的地形類別標志數(shù)字等于type時,則將該點存入邊界點序列鏈表Point_List中,并記錄該點為邊界起點;
步驟304:令當前邊界點等于邊界起點,令下一個邊界點的搜索方向碼Directcode=0;邊界點搜索采用八鄰域方法,每個柵格點有八個其他的柵格點與其相鄰,該柵格點正上方柵格點的搜索方向碼記為0,該柵格點右上方、正右方、右下方、正下方、左下方、正左方、左上方柵格點的搜索方向碼依次記為1、2、3、4、5、6、7;
步驟305:讀取當前邊界點沿Directcode方向的搜索點的地形類別標志數(shù)字,將其記作value;
步驟306:判斷value是否等于type,若是,轉至步驟308;若不是,轉至步驟307;
步驟307:令Directcode=Directcode+1,轉至步驟305;
步驟308:令當前邊界點等于此搜索點;
步驟309:判斷當前邊界點是否等于邊界起點,若是,則邊界跟蹤結束;若不是,轉至步驟310;
步驟310:將當前邊界點存入鏈表Point_List中;
步驟311:令Directcode=Directcode-2;
步驟312:判斷Directcode是否大于或等于0,若是,轉至步驟305;若不是,轉至步驟313;
步驟313:令Directcode=Directcode+8,轉至步驟305。
4.根據(jù)權利要求1所述的數(shù)字地圖中典型地形幾何參數(shù)獲取方法,其特征是:所示的步驟125中將地形簡化為楔形山,求取楔形山底面區(qū)域的最小外接矩形,包括以下步驟:
步驟401:讀取地形區(qū)域邊界點序列鏈表Point_List,令鏈表Rot_List等于鏈表Point_List,ang=3°,定義二維數(shù)組Data[30][4];
步驟402:對鏈表Rot_List中的多邊形各頂點做以地形區(qū)域中心C(x0,y0)為旋轉中心、3°為轉角的旋轉變換,旋轉后的多邊形各頂點保存在鏈表Rot_List中;
步驟403:求鏈表Rot_List中的多邊形的軸向包圍盒的坐標x_max、x_min、y_max、y_min,計算此包圍盒邊長L1=|x_max-x_min|、L2=|y_max-y_min|,計算此包圍盒的面積s0=L1×L2;
步驟404:將ang、L1、L2、s0四個值作為一行依次存入數(shù)組Data的第1列、第2列、第3列、第4列,令ang=ang+3°;
步驟405:將步驟402~404循環(huán)29次;
步驟406:求數(shù)組Data中第4列包圍盒面積的最小值,記錄該面積最小值所在的數(shù)組行號為m;
步驟407:讀取數(shù)組Data中第m行的前3列值,分別用an、a、b記錄;令an=90°-an,定義an為矩形方向角,它是長度為a的矩形邊與正東方向的夾角;
步驟408:輸出地形底面區(qū)域的最小外接矩形邊長a、b及矩形方向角an。