• 
    

    
    

      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)用
      常州市| 鄂托克前旗| 出国| 古交市| 洛南县| 襄垣县| 赤水市| 炉霍县| 顺昌县| 来宾市| 南华县| 丁青县| 沅陵县| 南川市| 黑河市| 信丰县| 凤翔县| 沾益县| 神木县| 奉新县| 托克逊县| 洪洞县| 积石山| 香河县| 东兴市| 东宁县| 灵武市| 彭水| 阳山县| 平谷区| 吉木乃县| 惠东县| 灵台县| 昭通市| 开鲁县| 吴堡县| 宜良县| 龙门县| 隆德县| 遂川县| 抚远县|