• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ArcGIS Engine的矢柵基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換方法研究

    2011-11-15 03:29:52劉佰瓊戴相喜
    測(cè)繪通報(bào) 2011年12期
    關(guān)鍵詞:柵格數(shù)據(jù)控制點(diǎn)矢量

    劉佰瓊,周 衛(wèi),戴相喜

    (1.南京師范大學(xué)教育部虛擬地理環(huán)境重點(diǎn)實(shí)驗(yàn)室,江蘇南京210046;2.南京市測(cè)繪勘察研究院有限公司,江蘇南京210005)

    基于ArcGIS Engine的矢柵基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換方法研究

    劉佰瓊1,周 衛(wèi)1,戴相喜2

    (1.南京師范大學(xué)教育部虛擬地理環(huán)境重點(diǎn)實(shí)驗(yàn)室,江蘇南京210046;2.南京市測(cè)繪勘察研究院有限公司,江蘇南京210005)

    隨著2000國(guó)家大地坐標(biāo)系的正式啟用,實(shí)現(xiàn)基礎(chǔ)地理數(shù)據(jù)不同坐標(biāo)系間的空間轉(zhuǎn)換具有重要意義和實(shí)用價(jià)值?;贓sri二次開發(fā)組件ArcGIS Engine所提供的空間轉(zhuǎn)換和影像配準(zhǔn)接口,討論ArcGIS平臺(tái)坐標(biāo)轉(zhuǎn)換和投影變換方法,采用C#語(yǔ)言設(shè)計(jì)開發(fā)空間轉(zhuǎn)換系統(tǒng),并進(jìn)行轉(zhuǎn)換誤差分析,驗(yàn)證該轉(zhuǎn)換方法的實(shí)用性和可靠性。

    空間轉(zhuǎn)換;投影變換;ArcGIS Engine

    一、引 言

    經(jīng)國(guó)務(wù)院批準(zhǔn),我國(guó)自2008年7月1日起,正式啟用2000國(guó)家大地坐標(biāo)系(簡(jiǎn)稱CGCS2000)[1-2]。然而我國(guó)現(xiàn)有的測(cè)繪成果大多是基于1954北京坐標(biāo)系、1980西安坐標(biāo)系或地方獨(dú)立坐標(biāo)系獲得的,因此在今后相當(dāng)長(zhǎng)的時(shí)期內(nèi),面臨著大量的基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換問題。

    目前許多學(xué)者都對(duì)空間轉(zhuǎn)換模型進(jìn)行了研究,探討了公共點(diǎn)的選取原則和模型適用范圍[3-4]。本文針對(duì)GIS中矢量數(shù)據(jù)和柵格數(shù)據(jù)的結(jié)構(gòu)特點(diǎn),討論了ArcGIS軟件平臺(tái)坐標(biāo)系統(tǒng)和地理參考投影變換的相關(guān)接口,并以實(shí)例介紹了在 Visual Studio 2005集成開發(fā)環(huán)境下使用Esri二次開發(fā)組件Arc-GIS Engine實(shí)現(xiàn)矢柵基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換的關(guān)鍵技術(shù)方法。

    二、矢量數(shù)據(jù)空間轉(zhuǎn)換

    1.轉(zhuǎn)換模型

    二維的平面坐標(biāo)轉(zhuǎn)換模型有多項(xiàng)式逼近、正形轉(zhuǎn)換、相似變換、仿射變換等,其中相似變換四參數(shù)模型具有較高的嚴(yán)密性,適用于區(qū)域范圍小、轉(zhuǎn)換區(qū)域在兩個(gè)坐標(biāo)系中的幾何相似程度好的情況[5-6],本文采用平面四參數(shù)模型進(jìn)行矢量數(shù)據(jù)空間轉(zhuǎn)換。

    2.轉(zhuǎn)換方法與流程

    矢量數(shù)據(jù)是基礎(chǔ)地理數(shù)據(jù)最主要的數(shù)據(jù)類型,能準(zhǔn)確表示地理空間實(shí)體的位置、長(zhǎng)度、面積等特性。由于矢量數(shù)據(jù)的所有空間幾何實(shí)體都是由坐標(biāo)點(diǎn)(串)構(gòu)成的,所以逐點(diǎn)進(jìn)行空間轉(zhuǎn)換是最嚴(yán)密的轉(zhuǎn)換方式。但是逐點(diǎn)轉(zhuǎn)換需要對(duì)所有圖形要素重新生成,要求讀取并保存不同數(shù)據(jù)類型的符號(hào),并且必須保證轉(zhuǎn)換前后符號(hào)的一致性,增大了系統(tǒng)開銷,計(jì)算量大,運(yùn)行效率低。為了在提高轉(zhuǎn)換效率的同時(shí)保證轉(zhuǎn)換成果的可靠性,本文采用逐要素轉(zhuǎn)換的方法,對(duì)矢量數(shù)據(jù)的每個(gè)圖元要素依次進(jìn)行轉(zhuǎn)換。矢量數(shù)據(jù)的空間轉(zhuǎn)換流程如圖1所示,其中包括數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出3大模塊。

    圖1 矢量數(shù)據(jù)空間轉(zhuǎn)換流程圖

    3.轉(zhuǎn)換功能的實(shí)現(xiàn)

    在二次開發(fā)組件 ArcGIS Engine中,提供了ITransform2D接口實(shí)現(xiàn)圖形要素的平移、旋轉(zhuǎn)和縮放,還提供了強(qiáng)大的坐標(biāo)轉(zhuǎn)換方法(transform)。ITransformation接口則提供了多種轉(zhuǎn)換方法,包括莫洛金斯基轉(zhuǎn)換(Abridged Molodensky transformation)、二次多項(xiàng)式轉(zhuǎn)換(Affine transformation)等。矢量數(shù)據(jù)空間轉(zhuǎn)換的主要代碼與說明如下:

    (1)根據(jù)控制點(diǎn)坐標(biāo)擬合四參數(shù)

    輸入已知的n組控制點(diǎn)坐標(biāo),根據(jù)這些控制點(diǎn)坐標(biāo)采用最小二乘擬合的方法計(jì)算轉(zhuǎn)換參數(shù)。

    IPoint[]fromPts=new PointClass[count];

    IPoint[]toPts=new PointClass[count];

    ∥定義并初始化點(diǎn)數(shù)組,其中count為控制點(diǎn)個(gè)數(shù)

    IAffineTransformation2D3GEN pAffineTrans=new Affine-Transformation2DClass();

    ∥定義并實(shí)例化相似變換接口對(duì)象

    pAffineTrans. DefineConformalFromControlPoints (ref fromPts,ref toPts);

    ∥計(jì)算轉(zhuǎn)換參數(shù),其中Dx、Dy為坐標(biāo)平移量,Dxscale、Dyscale為縮放尺度,Drotate為旋轉(zhuǎn)角度

    Dx=pAffineTrans.XTranslation;

    Dy=pAffineTrans.YTranslation;

    Dxscale=pAffineTrans.XScale;

    Dyscale=pAffineTrans.YScale;

    Drotate=pAffineTrans.Rotation;

    (2)圖元要素的空間轉(zhuǎn)換

    ArcGIS中的圖元要素分為點(diǎn)、線、面、注記4種類型,其中點(diǎn)要素由坐標(biāo)點(diǎn)對(duì)構(gòu)成,線要素由一系列坐標(biāo)串構(gòu)成,面要素則由一系列首尾相連的坐標(biāo)串構(gòu)成。點(diǎn)、線、面3類要素都是一般的圖形要素類,只需對(duì)其進(jìn)行平移、旋轉(zhuǎn)、縮放就可實(shí)現(xiàn)空間轉(zhuǎn)換。

    IFeatureCursor pFeaCur=pFeaCls.Update(null,false);

    IFeature pFeature=pFeaCur.NextFeature();

    IPoint pPoint=new PointClass();∥坐標(biāo)基點(diǎn)

    pPoint.X=Dx;pPoint.Y=Dy;

    ITransform2D pTransform2D=pFeature.Shape;

    ∥要素按照四參數(shù)進(jìn)行平移、旋轉(zhuǎn)和縮放

    pTransform2D.Move(Dx,Dy);

    pTransform2D.Rotate(pPoint,Drotate);

    pTransform2D.Scale(pPoint,Dxscale,Dyscale);

    pFeature.Shape=pTransform2D as IGeometry;

    ∥將轉(zhuǎn)換后的要素更新保存

    pFeatureCursor.UpdateFeature(pFeature);

    注記要素包含文字的空間位置、字體等注記信息,要求空間轉(zhuǎn)換之后保持字體朝向不變,因此可采用中心點(diǎn)位平移的方法進(jìn)行注記的空間轉(zhuǎn)換。即首先計(jì)算出注記中心點(diǎn)經(jīng)四參數(shù)模型轉(zhuǎn)換后的坐標(biāo);再根據(jù)其轉(zhuǎn)換前后的坐標(biāo)值計(jì)算出坐標(biāo)偏移量;最后將注記的文字和圖形均按照中心點(diǎn)偏移量進(jìn)行空間轉(zhuǎn)換。

    三、柵格數(shù)據(jù)空間轉(zhuǎn)換

    1.轉(zhuǎn)換方法與流程

    一般而言,要將柵格數(shù)據(jù)的空間信息轉(zhuǎn)換到其他坐標(biāo)系中,可通過幾何校正來實(shí)現(xiàn)[7]。但是幾何校正需要人工選取同名控制點(diǎn),轉(zhuǎn)換效率比較低。本文探討了在已知兩個(gè)坐標(biāo)系之間轉(zhuǎn)換參數(shù)的情況下,自動(dòng)實(shí)現(xiàn)柵格數(shù)據(jù)空間轉(zhuǎn)換的方法。

    柵格數(shù)據(jù)空間轉(zhuǎn)換流程如圖2所示,首先獲得柵格數(shù)據(jù)的四至坐標(biāo),并將其作為空間轉(zhuǎn)換的控制點(diǎn)。然后通過已知的轉(zhuǎn)換參數(shù)計(jì)算出其在目標(biāo)坐標(biāo)系下的新坐標(biāo),再在此基礎(chǔ)上對(duì)柵格像元進(jìn)行重采樣,實(shí)現(xiàn)空間轉(zhuǎn)換。該方法無需人工選取控制點(diǎn),根據(jù)轉(zhuǎn)換參數(shù)就可以方便地實(shí)現(xiàn)柵格數(shù)據(jù)不同坐標(biāo)系之間的空間轉(zhuǎn)換,提高了柵格數(shù)據(jù)空間轉(zhuǎn)換的自動(dòng)化程度,尤其適用于批量轉(zhuǎn)換。

    圖2 柵格數(shù)據(jù)坐標(biāo)轉(zhuǎn)換流程圖

    2.轉(zhuǎn)換功能的實(shí)現(xiàn)

    柵格數(shù)據(jù)空間轉(zhuǎn)換可通過IRaster GeometryProc接口實(shí)現(xiàn),該接口提供了柵格數(shù)據(jù)的剪切(clip)、翻轉(zhuǎn)(filp)、合并(merge)、映像(mirror)及鑲嵌(mosaic)等操作。通過轉(zhuǎn)換參數(shù)對(duì)柵格數(shù)據(jù)進(jìn)行空間轉(zhuǎn)換可以使用該接口的Wrap方法,該方法會(huì)略微改變影像圖的色彩值。柵格數(shù)據(jù)空間轉(zhuǎn)換的主要代碼與說明如下:

    1)獲取柵格數(shù)據(jù)源坐標(biāo)系的四至坐標(biāo)

    IEnvelope pEnv=pRasterLayer.AreaOfInterest;

    ∥根據(jù)最小外接矩形獲得柵格數(shù)據(jù)四至坐標(biāo),并將其存入fromPtsCol點(diǎn)數(shù)組,作為源控制點(diǎn)坐標(biāo)

    IPointCollection fromPtsCol=new MultipointClass();

    IPoint frPt1=new PointClass();

    frPt1.X=pEnv.XMin;frPt1.Y=pEnv.YMin;

    fromPtsCol.AddPoint(frPt1,ref obj,ref obj);

    ……

    2)計(jì)算柵格數(shù)據(jù)目標(biāo)坐標(biāo)系的四至坐標(biāo)

    ∥將四至坐標(biāo)根據(jù)四參數(shù)進(jìn)行坐標(biāo)轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果存入toPtsCol點(diǎn)數(shù)組,作為目標(biāo)控制點(diǎn)坐標(biāo)

    IClone pClone=frPt1 as IClone;

    IPoint toPt1=pClone.Clone();

    ITransform2D pTrans2D=toPt1 as ITransform2D;

    pTrans2D.Move(Dx,Dy);

    pTrans2D.Rotate(pPoint,Drotate);

    pTrans2D.Scale(pPoint,Dxscale,Dyscale);

    toPtsCol.AddPoint(toPt1,ref obj,ref obj);

    ……

    3)根據(jù)控制點(diǎn)坐標(biāo)進(jìn)行柵格數(shù)據(jù)重采樣

    ∥通過IGeoReference接口或IRasterGeometryProc接口進(jìn)行柵格數(shù)據(jù)空間轉(zhuǎn)換

    IGeoReference pGR=pRasterLayer as IGeoReference;

    pGR.Warp(fromPtsCol,toPtsCol,0);

    pGR.Register();

    值得注意的是,在柵格數(shù)據(jù)的空間轉(zhuǎn)換過程中,由于對(duì)數(shù)據(jù)進(jìn)行了重采樣,空間轉(zhuǎn)換后的相鄰兩幅柵格數(shù)據(jù)邊緣會(huì)存在縫隙,無法做到無縫拼接。一種可行的解決方法是在轉(zhuǎn)換前將柵格數(shù)據(jù)劃分為具有一定重疊帶的相鄰圖幅,轉(zhuǎn)換后再將這些圖幅拼接在一起,以消除縫隙對(duì)柵格數(shù)據(jù)的影響。

    四、矢柵數(shù)據(jù)投影變換

    1.投影變換方法

    在已知矢柵數(shù)據(jù)空間轉(zhuǎn)換前后坐標(biāo)系參數(shù)的情況下,可以使用投影變換方法實(shí)現(xiàn)基礎(chǔ)地理數(shù)據(jù)的空間轉(zhuǎn)換。ArcGIS軟件平臺(tái)的坐標(biāo)系統(tǒng)主要有地理坐標(biāo)系統(tǒng)(geographic coordinate system)和投影坐標(biāo)系統(tǒng)(projected coordinate system)。其中,地理坐標(biāo)系統(tǒng)定義了大地橢球體和大地基準(zhǔn)面參數(shù),如橢球體長(zhǎng)半徑、短半徑、偏心率等;投影坐標(biāo)系統(tǒng)則定義了投影參數(shù),如東偽偏移(false easting)、北偽偏移(false northing)、中央經(jīng)線(central meridian)等。

    矢柵數(shù)據(jù)的投影變換流程如圖3所示,對(duì)于矢量數(shù)據(jù)來說,仍然采用逐要素的變換方式,使用IGeometry接口的Project方法依次更新每個(gè)圖元要素實(shí)體,實(shí)現(xiàn)不同空間參照系之間的相互轉(zhuǎn)換;對(duì)于柵格數(shù)據(jù),則可以根據(jù)IRaster GeometryPro接口的ProjectFast方法實(shí)現(xiàn)投影變換,并采用ISaveAs接口將柵格存儲(chǔ)為Image、Tiff、Grid等數(shù)據(jù)格式。

    2.投影變換功能實(shí)現(xiàn)

    在進(jìn)行投影變換之前,需要確定轉(zhuǎn)換前后的空間參考信息,定義地理坐標(biāo)系統(tǒng)和投影坐標(biāo)系統(tǒng)的相關(guān)參數(shù),其主要代碼與說明如下:

    1)設(shè)置空間參考信息

    ∥定義投影方式為高斯克呂格投影

    IProjection pProj=pFact.CreateProjection((int)esriSR_

    ProjectionType.esriSRProjection_GaussKruger);

    ∥定義投影單位、中央經(jīng)線、東偽偏移、北緯偏移、比例系數(shù)、原點(diǎn)緯度等投影參數(shù)

    IParameter[]pParm=new IParameter[5];

    pParm[0]=pFact.CreateParameter((int)esriSRParameterType.esriSRParameter_FalseEasting);

    ……

    2)實(shí)現(xiàn)投影變換

    ∥若為矢量數(shù)據(jù),則依次對(duì)每個(gè)圖形要素進(jìn)行重投影處理,并更新圖形實(shí)體

    IGeometry pGeo=pFeature.Shape as IGeometry;

    pGeo.SpatialReference=pSpatialRefFrom;

    pGeo.Project((ISpatialReference)pSpatialRefTo);

    ∥若為柵格數(shù)據(jù),則對(duì)整個(gè)柵格對(duì)象賦予投影信息,并進(jìn)行重采樣

    IRasterGeometryProc pRasterGeometryPropc=new Raster-GeometryProcClass();

    pRasLayer.SpatialReference=pSpatialRefFrom;

    IRaster pRaster=pRasLayer.Raster;

    pRasterGeometryPropc.ProjectFast(pSpatialRefTo,0,ref Missing,pRaster);

    圖3 投影變換方法流程圖

    五、應(yīng)用實(shí)例與誤差分析

    筆者基于二次開發(fā)組件ArcGIS Engine,采用C#語(yǔ)言設(shè)計(jì)開發(fā)了矢柵基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換系統(tǒng),界面如圖4所示。對(duì)同一區(qū)域的矢量和柵格數(shù)據(jù)采用同一套轉(zhuǎn)換參數(shù)進(jìn)行空間轉(zhuǎn)換,將轉(zhuǎn)換結(jié)果疊加顯示,如圖5所示,矢柵數(shù)據(jù)轉(zhuǎn)換后具有較好的一致性。

    為驗(yàn)證轉(zhuǎn)換精度,選取4幅1∶1 000地形圖從地方獨(dú)立坐標(biāo)系轉(zhuǎn)換到2000國(guó)家大地坐標(biāo)系,將轉(zhuǎn)換后的圖形數(shù)據(jù)與實(shí)際數(shù)據(jù)進(jìn)行對(duì)比,抽樣選取25個(gè)同名點(diǎn)進(jìn)行誤差分析,圖6為轉(zhuǎn)換后隨機(jī)采樣點(diǎn)的坐標(biāo)分量殘差,表1為誤差統(tǒng)計(jì)表。由表1可知,X坐標(biāo)的中誤差為±7 mm,平均值為0 mm;Y坐標(biāo)的中誤差為±6 mm,平均值為±3 mm。

    圖4 系統(tǒng)主界面

    圖5 空間轉(zhuǎn)換后矢量與柵格圖層疊加

    圖6 空間轉(zhuǎn)換隨機(jī)采樣點(diǎn)的坐標(biāo)分量殘差

    表1 空間轉(zhuǎn)換誤差統(tǒng)計(jì)表 mm

    六、結(jié)束語(yǔ)

    隨著2000國(guó)家大地坐標(biāo)系的正式啟用,實(shí)現(xiàn)不同坐標(biāo)系之間的空間轉(zhuǎn)換具有重要意義。本文根據(jù)我國(guó)多種坐標(biāo)系統(tǒng)共存的現(xiàn)實(shí),研究了一種通過坐標(biāo)轉(zhuǎn)換參數(shù)實(shí)現(xiàn)基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換的實(shí)用方法,該方法的特點(diǎn)是使用一套轉(zhuǎn)換參數(shù)即可完成矢量數(shù)據(jù)和柵格數(shù)據(jù)的同步轉(zhuǎn)換。

    另外,本文還介紹了在已知轉(zhuǎn)換前后空間參考信息的情況下,通過投影變換實(shí)現(xiàn)矢柵數(shù)據(jù)空間轉(zhuǎn)換的關(guān)鍵技術(shù)。筆者根據(jù)本文所述方法開發(fā)了矢柵基礎(chǔ)地理數(shù)據(jù)空間轉(zhuǎn)換系統(tǒng),該系統(tǒng)能快速高效地完成不同坐標(biāo)系間的空間變換,減少了人工干預(yù),大大提高了轉(zhuǎn)換效率和自動(dòng)化水平,轉(zhuǎn)換精度較高。

    [1] 立實(shí).2000國(guó)家大地坐標(biāo)系7月1日啟用[N].中國(guó)測(cè)繪報(bào),2008-07-01.

    [2] 陳俊勇,楊元喜,王敏,等.2000國(guó)家大地控制網(wǎng)的構(gòu)建和它的技術(shù)進(jìn)步[J].測(cè)繪學(xué)報(bào),2007,36(1):1-8.

    [3] 黨亞民,成英燕,孫毅,等.圖件更新北京54和西安80坐標(biāo)系轉(zhuǎn)換方法研究[J].測(cè)繪科學(xué),2006,31(3): 20-22.

    [4] 成英燕,程鵬飛,顧旦生,等.三維4參數(shù)模型實(shí)現(xiàn)地圖到CGCS2000的轉(zhuǎn)換[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2010,35(6):747-751.

    [5] 郭金運(yùn).地圖數(shù)據(jù)幾何糾正時(shí)仿射變換與相似變換的對(duì)比分析[J].測(cè)繪通報(bào),2001(4):23-27.

    [6] 韓雪培,廖幫固.海岸帶數(shù)據(jù)集成中的空間坐標(biāo)轉(zhuǎn)換方法研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2004,29(10):933-936.

    [7] 王強(qiáng),束炯,張曉滬.一種遙感圖像的坐標(biāo)轉(zhuǎn)換方法[J].測(cè)繪科學(xué),2006,31(4):137-139.

    Research on Space Conversion Method for Foundation Geographical Data Based on ArcGIS Engine

    LIU Baiqiong,ZHOU Wei,DAI Xiangxi

    0494-0911(2011)12-0054-04

    P208

    B

    2010-11-23

    劉佰瓊(1986—),女,四川瀘州人,博士生,主要研究方向?yàn)榛A(chǔ)地理信息系統(tǒng)。

    猜你喜歡
    柵格數(shù)據(jù)控制點(diǎn)矢量
    基于柵格數(shù)據(jù)的遼中南城市群人居環(huán)境自然適宜性測(cè)評(píng)
    矢量三角形法的應(yīng)用
    NFFD控制點(diǎn)分布對(duì)氣動(dòng)外形優(yōu)化的影響
    基于風(fēng)險(xiǎn)管理下的項(xiàng)目建設(shè)內(nèi)部控制點(diǎn)思考
    基于GDAL的標(biāo)準(zhǔn)圖幅生成及數(shù)據(jù)批量裁剪方法*1
    基于矢量最優(yōu)估計(jì)的穩(wěn)健測(cè)向方法
    三角形法則在動(dòng)態(tài)平衡問題中的應(yīng)用
    相似材料模型中控制點(diǎn)像點(diǎn)坐標(biāo)定位研究
    基于ArcGISEngine的南水北調(diào)工程基礎(chǔ)柵格數(shù)據(jù)管理
    SDCORS在基礎(chǔ)地理信息控制點(diǎn)補(bǔ)測(cè)中的應(yīng)用
    烟台市| 永春县| 西昌市| 若尔盖县| 余姚市| 永宁县| 洛浦县| 阳谷县| 宁蒗| 双城市| 广元市| 庄河市| 香港 | 湘阴县| 舞钢市| 凭祥市| 光山县| 武宁县| 遂溪县| 湖北省| 南靖县| 荣成市| 太湖县| 宝丰县| 曲阳县| 阿合奇县| 油尖旺区| 同心县| 泰来县| 河津市| 时尚| 弥勒县| 英德市| 迁西县| 宣武区| 武功县| 宁远县| 赤城县| 垫江县| 农安县| 贵阳市|