亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MFC的地勢起伏度計算程序設計與實現(xiàn)

        2017-11-07 14:03:33趙強
        科技創(chuàng)新導報 2017年25期
        關鍵詞:變點度值格網(wǎng)

        趙強

        DOI:10.16660/j.cnki.1674-098X.2017.25.151

        摘 要:地勢起伏度是劃分地貌類型的一項重要指標,提取地勢起伏度的關鍵在于確定最佳分析區(qū)域窗口單元的選擇,統(tǒng)計學上的均值變點法為目前最常用最有效的方法之一。其通常由人工計算法計算得出,該方法計算效率和準確度均較低。本文設計并實現(xiàn)一套基于MFC開發(fā)框架,結合STL模版類庫的地勢起伏度計算程序。選用青藏高原部分地勢起伏度值為數(shù)據(jù)樣本,實現(xiàn)均值變點法算法,通過實驗,得到的結果準確且計算速度高,本程序將提高地勢起伏度計算效率,得到廣泛使用。

        關鍵詞:地勢起伏度 均值變點法 MFC STL 程序設計

        中圖分類號:P20 文獻標識碼:A 文章編號:1674-098X(2017)09(a)-0151-05

        Abstract: The relief degree is an important index of classification of geomorphologic types, The key to the extraction of topographic relief is to determine the optimal window unit of the analysis area. the Mean change-points method of statistics is one of the most commonly used and most effective methods. It is usually calculated by manual calculation. It has low computational efficiency and accuracy. In this paper, we design and implement a program based on MFC(MicroSoft Foundation Classes) development framework and STL(Standard template Library) Library. The part of the Qinghai-Tibetan Plateau is chosen as the data sample to realize the mean point change algorithm. Through experiment, The experiment results show that the results are accurate and the calculation speed is high. This program will improve the efficiency of relief calculation and widely used.

        Key Words: Relief amplitude; Mean Change-Point method; MFC; STL; Programing

        地勢起伏度(Relief Amplitude)是指在所指定的分析區(qū)域內(nèi)所有柵格中最大高程與最小高程的差,是反映地形起伏的宏觀地形因子[1]。地勢起伏度是劃分地貌類型的一項重要指標。提取地勢起伏度的關鍵在于確定最佳分析區(qū)域窗口單元的選擇。利用DEM數(shù)據(jù)提取地勢起伏度能夠快速、直觀地反映地形的起伏特征。本文以大尺度SRTM3-DEM為實驗數(shù)據(jù)源,利用統(tǒng)計學上的均值變點法提取實驗區(qū)地勢起伏度并分級分析的算法,基于MFC編程框架以及STL模板類庫實現(xiàn)基于研究區(qū)網(wǎng)格單元與平均地勢起伏度對應關系計算均值變點分析結果的程序。經(jīng)實驗,本程序能夠完全準確實現(xiàn)依據(jù)算法,計算準確度、速度均有提高。獲得的結果可獲得實驗區(qū)域內(nèi)地勢起伏度最佳統(tǒng)計單元。

        1 相關研究

        針對不同地貌區(qū)域的地勢起伏度計算已經(jīng)有較多的研究,鄭琴文、馮玉祥、王玲等在GIS系統(tǒng)的基礎下,采用領域分析方法提取地勢起伏度,運用均值變點分析法對其進行了最佳統(tǒng)計單元的計算[2-4];唐飛等基于DEM和TM影像利用ArcMap中鄰域分析工具對準噶爾盆地及其西北山區(qū)地勢起伏度進行研究最終確定了該地區(qū)地勢起伏度計算的最佳統(tǒng)計單元[5];何文秀等運用地理信息系統(tǒng)窗口分析和統(tǒng)計分析等方法利用DEM數(shù)據(jù)研究了寧夏彭陽縣的地勢起伏度[6];趙斌濱等分析人工作圖法與均值變點法是判斷最佳統(tǒng)計單元相對有效的方法[7]。

        MFC(Microsoft Foundation Class,微軟基礎類庫)是微軟公司為了簡化程序員的開發(fā)工作所開發(fā)的一套C++類的集合,是一套面向對象的函數(shù)庫,以類的方式提供給用戶使用??梢杂盟鼇砭帉?Windows 應用程序。使用 MFC 類庫和Visual C++提供的高度可視的應用程序開發(fā)工具,可使應用程序開發(fā)變得更簡單,極大地縮短開發(fā)周期,提高代碼的可靠性和可重用性[8,9]。

        STL(Standard Template Library)標準模板庫是C++標準規(guī)范的主要內(nèi)容之一,其本身為幾類“容器”的集合,其目的為構建標準化組件,以減少在編寫應用程序過程中重復開發(fā)相同功能的代碼,根據(jù)需要可以選擇最優(yōu)的數(shù)據(jù)結構組件實現(xiàn)高效的數(shù)據(jù)管理[10]。

        2 變點分析法計算地勢起伏度原理

        本文試驗數(shù)據(jù)選用基于SRTM3-DEM的數(shù)據(jù)青藏高原國內(nèi)部分,其平面基準為WGS84,高程基準為EGM96,置信度達90%。對實驗區(qū)的DEM數(shù)據(jù)進行拼接與投影轉換處理。投影方式選擇等面積圓錐投影,第一標準緯線定為25°N,第二標準緯線定為47°N,中央經(jīng)線定為105°E,基準面選用Krasovsay_1940,將DEM柵格單元重采樣為90m[11]。

        應用窗口遞增分析法來計算實驗區(qū)中地勢起伏度的最佳統(tǒng)計面積。分析窗口類型選擇矩形,計算網(wǎng)格2×2、3×3、4×4、……32×32的地勢起伏度,對計算得到的不同窗口下的地勢起伏度,我們?nèi)「髯缘牡貏萜鸱绕骄担ū?)然后與各單元窗口相對應的面積作對數(shù)擬合曲線。在面積從100~200之間出現(xiàn)曲線由陡變緩的點,而該點對應的面積即是我們尋找的最佳統(tǒng)計單元面積。endprint

        利用均值變點法,計算出擬合曲線上由陡變緩的點位?;谧兓W(wǎng)格大小區(qū)域的方法,計算出對應網(wǎng)格大小面積內(nèi)平均地勢起伏度值,將此平均地勢起伏度值作為計算最佳統(tǒng)計面積的參考樣本序列,對其對應的格網(wǎng)面積求單位面積上的平均地勢起伏度,并求其自然對數(shù)構建原始樣本序列。變點的存在使樣本分段后的統(tǒng)計量Si的變化趨勢會有一個轉折。而該轉折點處可以很直觀得到網(wǎng)格半徑大小,從而該網(wǎng)格半徑所對應的區(qū)域面積即為最佳統(tǒng)計面積。

        計算均值變點分析法計算過程如下[12]:

        (1)令i=2,…,N,對每個i將樣本分為兩段:X1,X2,…,Xi-1和Xi,Xi+1,…,XN。

        計算每段樣本的自述平均值和及統(tǒng)計量。

        (2)統(tǒng)計量:

        (3)期望值:

        (4)通過觀察計算結果很容易就能得到統(tǒng)計結果趨勢變化的點。

        通過變點即可確定格網(wǎng)半徑大小,從而確定最佳統(tǒng)計面積。

        3 計算程序設計實現(xiàn)

        利用輸入樣本數(shù)據(jù),通過算法公式計算得出每段樣本的前半段算術平均值和后半段算術平均值,以及輸出統(tǒng)計量?;贛FC對話框程序構建,利用STL對數(shù)據(jù)進行管理。架構圖如圖1所示。

        3.1 數(shù)據(jù)輸入

        由于樣本數(shù)據(jù)量較小,可以選擇手工輸入或數(shù)據(jù)文件導入的形式,定義基于STL的map模板,第一個參數(shù)保存格網(wǎng)半徑,即模版保存數(shù)據(jù)中的key數(shù)據(jù),變量類型定義為整型值;第二個參數(shù)為不同格網(wǎng)大小范圍內(nèi)平均地勢起伏度的平均值。數(shù)據(jù)從外部讀入軟件后,在內(nèi)存中以map的形式組織保存。

        3.2 數(shù)據(jù)預處理

        單元格網(wǎng)面積相同,原始樣本序列采用格網(wǎng)半徑從2開始,依次遞加1的方式取格網(wǎng)。隨著格網(wǎng)半徑的增加,樣本格網(wǎng)的面積也在増加,而所取格網(wǎng)面積內(nèi)的平均地勢起伏度由于面積的増大,起伏度值也在増大。為了更好地找到擬合曲線上由陡變緩的這一臨界點,我們需要對格網(wǎng)面積內(nèi)再取單位網(wǎng)格面積的平均地勢起伏度,并對其求自然對數(shù)來構建真正的原始樣本序列。

        所以在初始樣本序列插入計算平均地勢起伏度值的函數(shù)中,對平均地勢起伏度值進行預處理,即定義原始樣本構建函數(shù):

        selType CReliefDlg::insertReliefs(int num, double relief)

        其中在構建計算用的平均地勢起伏度原始樣本序列ReliefMap中時,需要先進行平均格網(wǎng)地勢起伏度的自然對數(shù)運算:

        relief = log(relief / (num*num))

        運算結果再插入原始樣本序列中:

        m_Reliefs.insert(make_pair(num, relief));

        其中變量m_Reliefs為std::map格式,即自定義map結構,用于存儲預處理過的地勢起伏度值。

        3.3 算法實現(xiàn)

        由均值變點分析法,對樣本序列進行計算時,需要設定一個起始i值,i值即為格網(wǎng)半徑數(shù)變化序列,計算時將樣本從當前i值處,分為前后兩段樣本,并且要對每段樣本的算術平均值和分段樣本的統(tǒng)計量。這也就相當于樣本數(shù)量是動態(tài)變化的,而動態(tài)變化的數(shù)值需要通過函數(shù)參數(shù)傳入計算過程。

        由此,將求平均值的算法和求統(tǒng)計量的算法定義兩個函數(shù)分別為:

        double CReliefDlg::getAverValue(int iBeginPos, int iEndPos)

        double CReliefDlg::getReliefS(int iBeginPos, int iEndPos)

        通過輸入樣本序列的起始位置和終止位置來確定樣本序列的內(nèi)容和長度,而這一數(shù)值又同時與ReliefMap中第一個參數(shù)網(wǎng)格值相對應。故可以直接根據(jù)傳參對樣本序列Map進行遍歷計算,得出當前動態(tài)樣本序列的平均值和統(tǒng)計量;

        在計算分段樣本序列的基礎上,對所有平均地勢起伏度樣本進行循環(huán)處理,依次計算當前樣本遞進時不同位置分段樣本序列的統(tǒng)計量和算術平均值,并計算分段后的統(tǒng)計量Si的值,此值也正是我們需要求出并加以分析的結果。

        3.4 程序實現(xiàn)

        C++編程語言與MFC編程框架相結合,基于MFC可視化界面設計,程序主界面包含ListBox控件用于輸入數(shù)據(jù)顯示及修改、“添加/修改”按鈕用于打開手動數(shù)據(jù)輸入對話框以及啟動起伏度值計算并輸出計算結果的“計算”按鈕,如圖2。

        手動數(shù)據(jù)輸入對話框包含一個ComboBox下拉框控件,用于顯示當前輸入數(shù)值的序號,面積為EditBox,用于輸入格網(wǎng)單元半徑,平均地勢起伏度即為對應網(wǎng)格大小區(qū)域內(nèi)平均地勢起伏度的值,一個數(shù)值輸入完成,點擊“下一個”即進行下一個地勢起伏度值的輸入,“完成”按鈕即輸入結束,手動數(shù)據(jù)輸入對話框自動關閉,點擊主界面“計算”按鈕,計算Si值并輸出到文本文檔中。

        3.5 結果輸出

        計算出Si值后,仍將其放入ReliefMap類型map模板數(shù)據(jù)結構中,利用STL中的map結構對其進行存儲和管理,結果可以在主程序界面中的ListBox控件里插入顯示,也可以文件形式輸出保存到硬盤中。

        4 數(shù)據(jù)驗證

        依據(jù)表1中的數(shù)值,輸入程序后,計算可得均值變點分析的統(tǒng)計結果(表2)。

        根據(jù)表2的分析計算結果可以很輕松得出均值變點分析結果曲線,如圖3。

        圖中Si值為縱軸,i值為橫軸,可以很清楚看出有一個很明顯的趨勢轉折,格網(wǎng)半徑i從2開始到12,其Si的值均為下降趨勢;而格網(wǎng)半徑i從12到31過程中,Si的值是呈上升趨勢,即i=12這一點處即為我們的變點處,格網(wǎng)半徑為12也即為要求的最佳統(tǒng)計單元格網(wǎng)半徑,其對應的面積即為最佳統(tǒng)計面積,與實驗預期結果一致。

        5 結語

        對地勢起伏度計算中基于平均地勢起伏度和變點分析法求最佳統(tǒng)計面積是地勢起伏度研究中比較重要的研究方法之一。本文基于MFC利用模板庫STL對以上地勢起伏度計算方法進行程序實現(xiàn),并針對特定實驗區(qū)數(shù)據(jù)計算,得到的結果與預期結果一致。本文設計實現(xiàn)的程序具有計算速度快、結果準確精度高、界面美觀易操作等特點。本文首次將基于MFC的C++程序應用在地勢起伏度計算方面,增加了地勢起伏度計算的手段,在創(chuàng)新性和實用性方面具有一定價值。

        參考文獻

        [1] 涂漢明,劉振東.中國地勢起伏度研究[J].測繪學報,1991,20(4):311-319.

        [2] 鄭琴文,馬維峰,劉文婷,等.三峽庫區(qū)地勢起伏度研究[J].廈門理工學院學報,2014,22(5):82-87.

        [3] 馮玉祥,鄧青春,楊海青,等.基于變點分析法提取元謀縣地形起伏度[J].四川林勘設計,2015(3):28-33.

        [4] 王玲,呂新.基于DEM的新疆地勢起伏度分析[J].測繪科學,2009,34(1):113-116.

        [5] 唐飛,陳曦,程維明,等.基于DEM的準噶爾盆地及其西北山區(qū)地勢起伏度研究[J].干旱區(qū)地理,2006,29(3):388-392.

        [6] 何文秀,石云,馬超.基于DEM的彭陽縣地勢起伏度分析[J].寧夏工程技術,2016,15(1):30-32.

        [7] 趙斌濱,程永鋒,丁士君,等.基于SRTM-DEM的我國地勢起伏度統(tǒng)計單元研究[J].水利學報,2015,46(6):284-290.

        [8] 聶斐,殷興輝.基于MFC的實時數(shù)據(jù)動態(tài)顯示界面設計[J].電子設計工程,2013,21(10):136-138.

        [9] 裴亮,蔡鋒,李國慶.DLT程序設計與應用[J].測繪工程,2003,12(4):50-54.

        [10] 賴祥芳.選擇合適的STL容器[J].數(shù)字技術與應用,2015(9):177.

        [11] 韓海輝,高婷,易歡,等.基于變點分析法提取地勢起伏度——以青藏高原為例[J].地理科學,2012,32(1):101-104.

        [12] 項靜恬,史久恩.非線性系統(tǒng)中數(shù)據(jù)處理的統(tǒng)計方法[M]. 北京:科學出版社,1997.endprint

        猜你喜歡
        變點度值格網(wǎng)
        探討公路項目路基連續(xù)壓實質量檢測技術
        回歸模型參數(shù)的變點檢測方法研究
        正態(tài)分布序列均值變點檢測的貝葉斯方法
        實時電離層格網(wǎng)數(shù)據(jù)精度評估
        基于二元分割的多變點估計
        河南科學(2020年4期)2020-06-03 07:18:22
        獨立二項分布序列變點的識別方法
        無線傳輸中短碼長噴泉碼的度分布優(yōu)化算法*
        電訊技術(2016年8期)2016-11-02 05:40:50
        微博網(wǎng)絡較大度值用戶特征分析
        科技傳播(2016年17期)2016-10-10 01:46:58
        基于空間信息格網(wǎng)與BP神經(jīng)網(wǎng)絡的災損快速評估系統(tǒng)
        平均Helmert空間重力異常格網(wǎng)構制方法
        国产福利视频一区二区| 最新国产一区二区三区| 99久久久人妻熟妇精品一区二区| 国产又大又黑又粗免费视频| 国产午夜福利小视频合集| 免费国产99久久久香蕉| 日韩人妻大奶子生活片| 99国产精品久久久久久久成人热| 中文字幕一区在线观看视频| 亚洲VA中文字幕无码毛片春药 | 国产又湿又爽又猛的视频| 7194中文乱码一二三四芒果| 中文字幕人妻熟女人妻洋洋| 亚洲—本道中文字幕久久66| 久久精品国产亚洲av热东京热| 丰满少妇被猛烈进入高清播放| 国产白丝无码视频在线观看| 国产日本在线视频| 成年人视频在线观看麻豆| 老色鬼在线精品视频| 无码h黄动漫在线播放网站| 在线你懂| 中文字幕影片免费人妻少妇| 免费毛片a线观看| 国产夫妻av| 中文字幕一区二区网址| 免费人成在线观看| 后入内射欧美99二区视频| 亚洲成a人片77777kkkkk| 久久精品蜜桃亚洲av高清| 琪琪的色原网站| 亚洲国产精品自产拍久久蜜AV| 亚洲女同精品一区二区久久| 亚洲人精品午夜射精日韩| 丰满人妻妇伦又伦精品国产| 秀人网嫩模李梓熙大尺度| 中文字幕av高清人妻| 欧美亚洲国产片在线播放| 亚洲无码视频一区:| 大香蕉国产av一区二区三区| 免费观看又色又爽又湿的视频|