• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于arcpy的地理數(shù)據(jù)庫四參數(shù)轉(zhuǎn)換

      2016-01-04 10:18:54張畔濤董壽銀
      科技視界 2015年35期
      關(guān)鍵詞:轉(zhuǎn)換

      張畔濤 董壽銀

      【摘 要】在實際生產(chǎn)中經(jīng)常遇到ArcGIS地理數(shù)據(jù)庫需要轉(zhuǎn)換坐標(biāo)系,但該軟件未對國內(nèi)常用的四參數(shù)轉(zhuǎn)換提供對應(yīng)工具,只提供了三參數(shù)及七參數(shù)轉(zhuǎn)換工具。針對該情況,本文基于ArcPy站點包開發(fā)了四參數(shù)轉(zhuǎn)換工具,并應(yīng)用到實際生產(chǎn)中,大大簡化了ArcGIS地理數(shù)據(jù)庫四參轉(zhuǎn)換的流程。

      【關(guān)鍵詞】ArcPy;四參數(shù);轉(zhuǎn)換

      0 引言

      隨著測繪行業(yè)的發(fā)展,我國使用的坐標(biāo)系統(tǒng)也在不斷的更新、精化。我國曾用過的坐標(biāo)系統(tǒng)包括1954北京坐標(biāo)系、1980西安坐標(biāo)系和2000國家大地坐標(biāo)系。目前很多已有的地理數(shù)據(jù)庫的坐標(biāo)系統(tǒng)是基于1980西安坐標(biāo)系的,但在生產(chǎn)項目中多數(shù)要求提交的成果應(yīng)為2000國家大地坐標(biāo)系的地理數(shù)據(jù)庫,為了使用已有的數(shù)據(jù)成果就涉及坐標(biāo)系統(tǒng)的轉(zhuǎn)換問題。目前很多的軟件平臺都提供了坐標(biāo)的四參轉(zhuǎn)換功能,如MapGIS等,但較為常用的ArcGIS平臺卻并未提供直接的四參轉(zhuǎn)換功能。

      ArcPy是一個ArcGIS中以成功的arcgisscripting模塊為基礎(chǔ)構(gòu)建而成的站點包。目的是為以實用高效的方式通過 Python 執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動化創(chuàng)建基礎(chǔ)。該包提供了豐富純正的 Python體驗,具有代碼自動完成功能(輸入關(guān)鍵字和點即可獲得該關(guān)鍵字所支持的屬性和方法的彈出列表;從中選擇一個屬性或方法即可將其插入),并針對每個函數(shù)、模塊和類提供了參考文檔。

      本文在分析目前地理數(shù)據(jù)庫四參轉(zhuǎn)換流程的基礎(chǔ)上,在ArcGIS平臺上利用ArcPy站點包開發(fā)了四參轉(zhuǎn)換工具,并在實際生產(chǎn)中投入使用,大大簡化了地理數(shù)據(jù)庫轉(zhuǎn)換的流程。

      1 地理數(shù)據(jù)庫轉(zhuǎn)換流程分析

      現(xiàn)以使用ArcGIS和MapGIS兩個平臺進行四參轉(zhuǎn)換為例分析地理數(shù)據(jù)庫的轉(zhuǎn)換流程。

      ArcGIS平臺中雖然沒有直接的四參轉(zhuǎn)換工具,但提供了Spatial Adjustment工具可以完成四參轉(zhuǎn)換,該工具中實際上是根據(jù)輸入的同名點計算兩個數(shù)據(jù)集之間的坐標(biāo)轉(zhuǎn)換參數(shù),然后進行數(shù)據(jù)集的轉(zhuǎn)換。流程如下:

      a.從源數(shù)據(jù)集中選三個或三個以上的坐標(biāo)作為控制點輸入到LinkTable表的Xsource、Ysource列中。

      b.根據(jù)四參數(shù)和控制點坐標(biāo)手動計算出在目標(biāo)坐標(biāo)系中的坐標(biāo)并輸入到LinkTable表的Xdestination、Ydestination列中。

      c.轉(zhuǎn)換數(shù)據(jù)并保存。

      MapGIS平臺中提供了直接的四參轉(zhuǎn)換工具,但不支持ArcGIS地理數(shù)據(jù)庫的轉(zhuǎn)換。需先轉(zhuǎn)換為MapGIS支持的數(shù)據(jù)格式。流程如下:

      a.將源數(shù)據(jù)集導(dǎo)入到MapGIS中,轉(zhuǎn)換為其支持的wp、wl等格式。

      b.利用坐標(biāo)轉(zhuǎn)換工具完成四參轉(zhuǎn)換。

      c.將轉(zhuǎn)換后的數(shù)據(jù)導(dǎo)出為shape等ArcGIS支持的格式。

      上述流程都不是輸入四參數(shù)直接完成轉(zhuǎn)換,本文將針對該情況改進用戶的操作流程。

      2 四參數(shù)轉(zhuǎn)換原理及ArcPy實現(xiàn)思路

      平面四參數(shù)轉(zhuǎn)換模型的四個參數(shù)為:兩個平移參數(shù),一個旋轉(zhuǎn)參數(shù)和一個尺度參數(shù),坐標(biāo)轉(zhuǎn)換矩陣為:

      X′=ΔX+k(Xcosα-Ysinα)Y′=ΔY+k(Xsinα+Ycosα)

      其中X′、Y′為轉(zhuǎn)換后的坐標(biāo),X、Y為原坐標(biāo)系統(tǒng)下的坐標(biāo);ΔX、ΔY為平移參數(shù),α為舊坐標(biāo)軸到新坐標(biāo)軸的旋轉(zhuǎn)角度,以逆時針方向為正,順時針方向為負;k為新坐標(biāo)系統(tǒng)與舊坐標(biāo)系統(tǒng)的縮放比例。

      ArcGIS中支持的矢量數(shù)據(jù)類型FeatureClass包括點(PointGeometry)、線(Polyline)、面(Polygon)等,工具需對每種數(shù)據(jù)類型做出相應(yīng)的處理。對線面等幾何圖形的轉(zhuǎn)換實質(zhì)是對線面上的各點坐標(biāo)的轉(zhuǎn)換,轉(zhuǎn)換后的各點坐標(biāo)重新組合出對應(yīng)的幾何圖形。核心功能是對點坐標(biāo)的處理。工具實現(xiàn)流程如下:

      a.輸入待轉(zhuǎn)換要素數(shù)據(jù)。

      b.判斷待轉(zhuǎn)換數(shù)據(jù)幾何類型。如果是點要素,轉(zhuǎn)入c,轉(zhuǎn)入e;如果是其他類型要素,取出其中各要素圖形,轉(zhuǎn)入d,直至各要素圖形轉(zhuǎn)換完畢,轉(zhuǎn)入e。

      c.單點四參數(shù)轉(zhuǎn)換。

      d.取出該幾何圖形上的各點坐標(biāo),轉(zhuǎn)入d,直至各點完成。

      e.輸出轉(zhuǎn)換后要素數(shù)據(jù)。

      其中,單點坐標(biāo)轉(zhuǎn)換實現(xiàn)的代碼為:

      def SinglePointConvert(point_x, point_y, deltax, deltay, m, alpha):

      x = m*math.cos(alpha)*point_x-m*math.sin(alpha)*point_y+deltax

      y = m*math.sin(alpha)*point_x+m*math.cos(alpha)*point_y+deltay

      new_point = arcpy.Point(x, y)

      return new_point

      線要素轉(zhuǎn)換實現(xiàn)的部分代碼為:

      if(desc.shapeType=="Polyline"):

      rows = arcpy.UpdateCursor(output_feature_class)

      for row in rows:

      geo = row.getValue("SHAPE")

      partCount = geo.partCount

      #處理多部件

      arrayAll=arcpy.Array()

      for ipart in range(0, partCount):

      array = geo.getPart(ipart)

      arrayNew = PartPolylineConvert(array, delta_x, delta_y, m, theta)

      arrayAll.add(arrayNew)

      newPolyline = arcpy.Polyline(arrayAll)

      row.Shape = newPolyline

      rows.updateRow(row)

      del row, rows

      在ArcGIS中創(chuàng)建Toolbox并在其中添加腳本工具(對應(yīng)的腳本文件即四參轉(zhuǎn)換的腳本文件),腳本工具的參數(shù)包括輸入輸出路徑、坐標(biāo)轉(zhuǎn)換需要的四參數(shù)等共六個參數(shù)。工具運行界面如圖1所示。

      圖1 矢量數(shù)據(jù)四參數(shù)轉(zhuǎn)換界面

      3 總結(jié)

      在分析實際生產(chǎn)過程中地理數(shù)據(jù)庫四參轉(zhuǎn)換流程的基礎(chǔ)上,本文提出了基于ArcPy站點包完成ArcGIS該數(shù)據(jù)庫轉(zhuǎn)換的思路,并開發(fā)了該工具,簡化了工作流程,提高了生產(chǎn)效率。

      【參考文獻】

      [1]Programming ArcGIS 10.1 with Python Cookbook[M]. Packt Publishing Ltd.2013.

      [責(zé)任編輯:湯靜]

      猜你喜歡
      轉(zhuǎn)換
      初中語文課堂如何做好教師角色的轉(zhuǎn)換
      淺析生態(tài)城市指標(biāo)在規(guī)劃設(shè)計中的轉(zhuǎn)換
      變式教學(xué)法在高中數(shù)學(xué)中的應(yīng)用
      如何構(gòu)建新型的師生關(guān)系
      自動溫度補償原理與調(diào)節(jié)方法
      科技視界(2016年26期)2016-12-17 17:26:26
      淺議長期股權(quán)投資核算方法的轉(zhuǎn)換
      對當(dāng)代書法藝術(shù)性的思考
      大數(shù)據(jù)時代檔案管理模式的轉(zhuǎn)換與創(chuàng)新
      資治文摘(2016年7期)2016-11-23 02:29:01
      論英漢語翻譯中語內(nèi)翻譯向語際翻譯的轉(zhuǎn)換
      淺談平面圖與立體圖的思維培養(yǎng)
      人間(2016年28期)2016-11-10 00:10:48
      开鲁县| 通化县| 曲阳县| 曲沃县| 榆林市| 兴安县| 大石桥市| 聂拉木县| 普兰县| 拉孜县| 辽源市| 全椒县| 尼玛县| 凌源市| 临西县| 会东县| 潢川县| 休宁县| 平武县| 白沙| 芦溪县| 泌阳县| 马公市| 北海市| 益阳市| 洛川县| 怀仁县| 巨野县| 普安县| 会宁县| 麻阳| 四川省| 那坡县| 凤冈县| 厦门市| 思南县| 包头市| 盐亭县| 惠安县| 赤城县| 娱乐|