999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于arcpy的地理數據庫四參數轉換

2016-01-04 10:18:54張畔濤董壽銀
科技視界 2015年35期

張畔濤 董壽銀

【摘 要】在實際生產中經常遇到ArcGIS地理數據庫需要轉換坐標系,但該軟件未對國內常用的四參數轉換提供對應工具,只提供了三參數及七參數轉換工具。針對該情況,本文基于ArcPy站點包開發了四參數轉換工具,并應用到實際生產中,大大簡化了ArcGIS地理數據庫四參轉換的流程。

【關鍵詞】ArcPy;四參數;轉換

0 引言

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

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

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

1 地理數據庫轉換流程分析

現以使用ArcGIS和MapGIS兩個平臺進行四參轉換為例分析地理數據庫的轉換流程。

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

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

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

c.轉換數據并保存。

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

a.將源數據集導入到MapGIS中,轉換為其支持的wp、wl等格式。

b.利用坐標轉換工具完成四參轉換。

c.將轉換后的數據導出為shape等ArcGIS支持的格式。

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

2 四參數轉換原理及ArcPy實現思路

平面四參數轉換模型的四個參數為:兩個平移參數,一個旋轉參數和一個尺度參數,坐標轉換矩陣為:

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

其中X′、Y′為轉換后的坐標,X、Y為原坐標系統下的坐標;ΔX、ΔY為平移參數,α為舊坐標軸到新坐標軸的旋轉角度,以逆時針方向為正,順時針方向為負;k為新坐標系統與舊坐標系統的縮放比例。

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

a.輸入待轉換要素數據。

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

c.單點四參數轉換。

d.取出該幾何圖形上的各點坐標,轉入d,直至各點完成。

e.輸出轉換后要素數據。

其中,單點坐標轉換實現的代碼為:

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

線要素轉換實現的部分代碼為:

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中創建Toolbox并在其中添加腳本工具(對應的腳本文件即四參轉換的腳本文件),腳本工具的參數包括輸入輸出路徑、坐標轉換需要的四參數等共六個參數。工具運行界面如圖1所示。

圖1 矢量數據四參數轉換界面

3 總結

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

【參考文獻】

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

[責任編輯:湯靜]

主站蜘蛛池模板: 国产一在线观看| 九色视频一区| 日韩无码视频播放| 人妻熟妇日韩AV在线播放| 尤物午夜福利视频| 尤物亚洲最大AV无码网站| 亚洲娇小与黑人巨大交| 日韩A∨精品日韩精品无码| 91精品日韩人妻无码久久| 国产麻豆另类AV| 亚欧成人无码AV在线播放| 国产特级毛片aaaaaaa高清| 在线国产资源| 99热这里只有免费国产精品 | 欧美一道本| 国产精品欧美在线观看| 青青草91视频| 无码人妻免费| 福利国产在线| 少妇精品久久久一区二区三区| 亚洲国产天堂久久综合| 天天综合网站| 国产成熟女人性满足视频| 亚洲欧美自拍视频| 67194亚洲无码| 国产黄网永久免费| 久久久久九九精品影院| 亚洲国产欧美中日韩成人综合视频| 欧美日韩在线第一页| 亚洲综合片| 免费一级毛片在线播放傲雪网 | 国产精品欧美亚洲韩国日本不卡| 国产人成午夜免费看| 欧美一区二区人人喊爽| 国产中文一区a级毛片视频| 亚洲AV无码精品无码久久蜜桃| 国产精品色婷婷在线观看| 亚洲va视频| 日韩视频福利| 欧美黄网在线| 91无码国产视频| 女人一级毛片| 久久久久国产精品嫩草影院| 老司机久久99久久精品播放| 91啪在线| 欧美激情视频二区三区| 毛片免费在线视频| 91福利国产成人精品导航| 91免费国产高清观看| 日本国产精品| 伊人网址在线| 欧美日韩中文国产| 国产成人免费视频精品一区二区| 91原创视频在线| 国内精品小视频在线| 亚洲天堂成人在线观看| 青青青国产视频手机| 中文字幕人成乱码熟女免费| 国产成人AV综合久久| 99久久亚洲精品影院| 伊人91在线| 国产欧美日韩精品综合在线| 女同国产精品一区二区| 久久婷婷五月综合97色| 日本中文字幕久久网站| 福利片91| 国产麻豆精品在线观看| 伊人五月丁香综合AⅤ| 日本人妻一区二区三区不卡影院| 国产麻豆精品手机在线观看| 国产二级毛片| 国产成人高精品免费视频| 五月天天天色| aaa国产一级毛片| 美女无遮挡被啪啪到高潮免费| 色婷婷视频在线| aaa国产一级毛片| 波多野结衣爽到高潮漏水大喷| 天天操精品| 色屁屁一区二区三区视频国产| 最新亚洲av女人的天堂| 99er精品视频|