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

        ?

        MapX遙感影像處理系統(tǒng)坡度和通視算法的研究與實現(xiàn)

        2018-01-01 00:00:00李剛王光輝
        現(xiàn)代信息科技 2018年6期

        摘 要:本論文描述了VC環(huán)境下開發(fā)的MapX遙感影像處理系統(tǒng),基于GDAL(Geospatial Data Abstraction Library)實現(xiàn)坡度量算和通視分析的算法。

        關(guān)鍵詞:MapX遙感影像處理系統(tǒng);坡度量算;通視分析;GDAL

        中圖分類號:TP751 文獻標識碼:A 文章編號:2096-4706(2018)06-0047-02

        Abstract:This paper describes the MapX remote sensing image processing system developed under the environment of VC,and the algorithm based on GDAL(Geospatial Data Abstraction Library)to realize the slope calculation and the general view analysis.

        Keywords:MapX remote sensing image processing system;slope measurement;visibility analysis;GDAL

        0 引 言

        遙感圖像處理(processing of remote sensing image data)是對遙感圖像進行輻射校正和幾何糾正、圖像整飾、投影變換、鑲嵌、特征提取、分類以及各種專題處理等一系列操作,以求達到預期目的的技術(shù)。遙感圖像處理可分為兩類:一是利用光學、照相和電子學的方法對遙感模擬圖像(照片、底片)進行處理,簡稱為光學處理;二是利用計算機對遙感數(shù)字圖像進行一系列操作,從而獲得某種預期結(jié)果的技術(shù),稱為遙感數(shù)字圖像處理。

        在VC環(huán)境下使用MapX進行遙感影像數(shù)字圖像處理的過程中,使用MapX本身自帶的功能可以實現(xiàn)簡單的地圖操作,但是對量算常用的坡度量算和通視分析等方法沒有提供現(xiàn)成的工具。本論文就是通過分析與設(shè)計實現(xiàn)了坡度量算和通視分析的自定義工具。

        1 關(guān)鍵技術(shù)研究

        1.1 高程數(shù)據(jù)

        對于TIF格式的遙感影像數(shù)字圖像,我們使用GDAL庫獲取高程數(shù)據(jù)。GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。GDAL提供對多種柵格數(shù)據(jù)的支持,包括Arc/Info ASCII Grid(asc),GeoTiff(tiff),Erdas Imagine Images(img),ASCII DEM(dem)等格式。它利用抽象數(shù)據(jù)模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數(shù)據(jù)轉(zhuǎn)換和處理。

        1.2 坡度

        坡度的計算方法有百分比法、度數(shù)法、密位法和分數(shù)法四種,其中以百分比法和度數(shù)法較為常用。(1)百分比法:表示坡度最為常用的方法,即兩點的高程差與其水平距離的百分比,其計算公式如下:坡度=(高程差/水平距離)×100%;(2)度數(shù)法:用度數(shù)來表示坡度,利用反三角函數(shù)計算而得,其公式tanα(坡度)=高程差/水平距離,所以α(坡度)=tan-1(高程差/水平距離)。這里我們選用百分比法。

        1.3 點對點通視

        點對點通視分析有四種常用方法:(1)Janus算法:以固定步長插視線上點的高程,高程內(nèi)插采用格網(wǎng)單元的四個頂點進行,該方法計算點少,效率較高;(2)Dyntacs算法:通過視線在XY平面的投影與格網(wǎng)單元邊交點進行判斷,根據(jù)相交邊頂點高程通過反距離加權(quán)內(nèi)插出交點高程,依據(jù)斜率判斷同時與否。該方法精度較高,但速度較慢;(3)ModSAF算法:該方法在Dyntacs算法上改進,不斷判斷視線與格網(wǎng)單元邊的交點,還要判斷視線與單元格對角線的交點,同時觀察點與目標點高程由其所在三角面上的三個頂點決定,這種方法精度更好,但計算量也隨之加大;(4)Bresenham算法:該算法在Bresenham法繪制直線的基礎(chǔ)上形成,高程點取視線通過格網(wǎng)中心點高程。這種方法速度快,但精度不高。

        通過以上分析,這里我們采用Dyntacs算法。

        2 系統(tǒng)設(shè)計

        2.1 高程數(shù)據(jù)獲取

        取視線點的經(jīng)緯度pointX和pointY,使用GDAL庫的RasterIO()函數(shù)獲取視線點的高程pointEleva,算法主要步驟如下:

        GetDem(double pointX, double pointY, double pointEleva)

        {

        GDALDataset *poDataset;//GDAL數(shù)據(jù)集

        GDALAllRegister();//注冊所有的驅(qū)動

        CString tifname;//加載tif高程文件

        tifname.Format(\"dem//ASTGTM2_N%dE0%d_dem.tif\", (int)pointY, (int)pointX);

        poDataset = (GDALDataset *)GDALOpen(tifname, GA_ReadOnly);

        GDALRasterBand *poBand1;//獲取圖像波段

        poBand1 = poDataset->GetRasterBand(1);

        int nImgSizeX = poDataset->GetRasterXSize();//獲取圖像的尺寸X

        int nImgSizeY = poDataset->GetRasterYSize();//獲取圖像的尺寸Y

        int nImgc = poDataset->GetRasterCount();//獲取圖像的波段個數(shù)

        double trans[6];//獲取坐標變換系數(shù)

        CPLErr aaa = poDataset-> GetGeo Transform (trans);

        GDALDataType btype = poBand1->GetRaster DataType();

        vector vecElevation;

        BYTE *pafScanblock1;//開辟緩存區(qū)

        pafScanblock1 = (BYTE *)CPLMalloc(sizeof(BYTE)*(1)*(1));//建議能小則小否則會造成內(nèi)存不足的情況

        double XMin = trans[0];//取X方向最小值

        double YMin = trans[3];//取Y方向最小值

        double XMax = trans[0]+nImgSizeX*trans[1]+ trans[2];//取X方向最大值

        double YMax = trans[3]+trans[4]+nImgSizeY* trans[5];//取Y方向最大值

        int col = (pointX-XMin-trans[2])/trans[1];//獲取選取點所在行數(shù)

        int row = (pointY-YMin-trans[4])/trans[5];//獲取選取點所在列數(shù)

        poBand1->RasterIO(GF_Read, col, row, 1, 1, pafScanblock1, 1, 1, btype, 0, 0);

        pointEleva = pafScanblock1[0];//獲取選取點高程數(shù)據(jù)

        delete poDataset;

        }

        2.2 坡度量算

        坡度量算如圖1所示,地圖上點1(p1x,p1y)和點2(p2x,p2y)的坡度算法主要步驟如下:(1)取點1高程數(shù)據(jù)GetDem(p1x,p1y,p1h);(2)取點2高程數(shù)據(jù)GetDem(p2x,p2y,p2h);(3)計算兩點之間的平面距離:dis=Distance(p1x,p1y,p2x,p2y);(4)計算兩點坡度slope=(fabs(p2h-p1h)/dis)*100。

        2.3 點對點通視分析

        點對點通視分析如圖2所示,地圖上視點1(p1x,p1y)和目標點2(p2x,p2y)的通視算法主要步驟如下:(1)取視點1高程數(shù)據(jù)GetDem(p1x,p1y,p1h);(2)取目標點2高程數(shù)據(jù)GetDem(p2x,p2y,p2h)(3)計算視點1與目標點2二者之間的坡度S;(4)取視點下一步(圖像的步幅為1秒)的平面坐標(pix,piy):pix=p1x+i*cx/3600.0;piy=p1y+i*(row/col)*cy/3600.0(其他row和col表示視點和目標點之間的格網(wǎng)總行數(shù)值和總列數(shù)值;cx和cy表示視點和目標點之間的平面坐標的漸進關(guān)系,目標點比視點大,則為1,反之為-1;i表示步數(shù),最大為row);(5)取所有步點的高程值GetDem(pix,piy,pih),并計算其與目標點之間的坡度Si,若該值大于視點與目標點的坡度,則不通視。

        3 結(jié) 論

        通過以上研究,我們在MapX遙感影像處理系統(tǒng)中實現(xiàn)了坡度量算和通視分析自定義工具。不僅如此,在以MapX為開發(fā)平臺的其他系統(tǒng)也可以參考此方法進行設(shè)計與實現(xiàn)。

        參考文獻:

        [1] 李民錄,GDAL源碼剖析與開發(fā)指南 [M].北京:人民郵電出版社,2014.

        [2] 張宏,溫永寧,劉愛利,等.地理信息系統(tǒng)算法基礎(chǔ) [M].北京:科學出版社,2010.

        作者簡介:李剛(1982-),男,漢族,山東棗莊人,工程師,本科。研究方向:軟件系統(tǒng)開發(fā)、軟件測試;王光輝(1987-),女,漢族,黑龍江依蘭人,工程師,研究生。研究方向:軟件測試、軟件質(zhì)量管理。

        久久久国产精品三级av| 亚洲经典三级| 亚洲免费不卡| 大ji巴好深好爽又大又粗视频| 国产一区二区三精品久久久无广告 | 日本丰满老妇bbw| 欧美日韩一区二区综合| 亚洲婷婷丁香激情| 亚洲国产免费一区二区| 亚洲高清在线天堂精品| 中国妇女做爰视频| 日产精品久久久久久久性色| 国产精品 视频一区 二区三区 | 久久国产黄色片太色帅| 激情综合色综合久久综合| 越南女子杂交内射bbwxz| 精品一区二区三区免费爱| 天堂影院久久精品国产午夜18禁| 国产亚洲综合另类色专区| 亚洲男人av天堂久久资源| 久久99精品久久久久久9蜜桃| 在线观看免费人成视频色9| 国产精品一区二区久久| 性无码国产一区在线观看| 偷拍与自偷拍亚洲精品| av在线播放中文专区| 亚洲精品第一国产综合精品| 国产精品国产三级国av在线观看| 日本亚洲欧美高清专区| 久久亚洲av午夜福利精品西区| 色哟哟亚洲色精一区二区| 无码精品日韩中文字幕| 亚洲成在人线久久综合| 精品一区二区三区长筒靴| 国内偷拍精品一区二区| 国产精品主播在线一区二区 | 丰满人妻久久中文字幕| 亚洲综合无码无在线观看| 粗大挺进尤物人妻一区二区| 色婷婷亚洲十月十月色天| 虎白m粉嫩小在线播放|