简单了解一下ArcPy
0. 為何學習ArcPy
我應該是從2012年開始接觸并使用ArcMap的,一直到現在。很多時候也只是使用里面一些較為基礎的編輯和簡單的地理處理工具。對其中的ArcPy模塊,卻遲遲不敢去觸碰,主要是自己沒有編程基礎,也沒有相應的項目推動。
前段時間開始轉型去做一些開發的事情,想著正好可以開始去了解一下ArcGIS的開發內容,再加上有一個機會需要用到ArcPy去開發一個小地理處理工具,便開始去學習和使用ArcPy了。
1. ArcPy是什么
ArcPy 是一個 Python 站點包(site package),可提供以實用高效的方式通過 Python 執行地理數據分析、數據轉換、數據管理和地圖自動化。
ArcPy 為用戶提供了使用 Python 語言操作所有地理處理工具(包括擴展模塊)的接口,并提供了多種有用的函數和類,以用于處理和查詢 GIS 數據。
使用 ArcPy 來編寫的 ArcGIS 應用程序和腳本有兩個優勢,1)是可以很方便的訪問并使用大量的 Python 模塊,并與ArcGIS系統集成;2)Python 是一種通用的編程語言,易于學習和使用,通過這一解釋和動態型編程語言,可以在交互式環境中快速地創建腳本原型并進行測試。
ArcPy 和 ArcGIS
一般我們所說的 ArcPy 是指 ArcMap 或者 ArcGIS Pro 提供的 Python 包。
廣義的 ArcPy 應該是跨 ArcGIS 平臺的,比如在 ArcGIS Enterprise 中,ArcPy 主要是通過 Python 來管理Data store 和發布服務的,是對 ArcGIS REST API 在服務端管理員操作的一個補充。
在ArcGIS Notebooks 中,也可以使用ArcPy來做一些地理數據分析、轉換和管理的任務。
關于 ArcGIS Python 庫,除了 ArcPy,還包括 ArcGIS API for Python,具體可以參考 https://www.esri.com/en-us/arcgis/products/arcgis-python-libraries/overview
2. ArcPy 的使用
首先,ArcGIS Desktop主要是包含兩部分,經典的ArcMap 和 2015 年新推出的 ArcGIS Pro。這兩者使用的 Python 版本是不一樣的,ArcMap還是使用的Python 2版本,而ArcGIS Pro是基于Python 3版本的。雖然兩者提供的基礎功能基本一致,但針對 Python 2 和 Python 3 版本的區別,在使用時,尤其是涉及到字符編碼等方面還是會有區別的。
要使用 ArcPy,你必須要有些許的 Python 使用經驗,在 ArcGIS 產品中,可以在內置的 Python 窗口中直接運行,也可以在 IDE 中編寫腳本并運行。具體的內容可以參考Python in ArcGIS Pro—ArcGIS Pro | Documentation,里面對Python的學習資源,包管理器Conda,如何運行Python腳本,Python的IDE等等做了介紹。
ArcPy是一個包,在使用前需要導入,在導入 ArcPy 之后,可以運行隨 ArcGIS 安裝的標準工具箱中的所有 地理處理工具 。
ArcPy有自動填充功能,輸入 ArcPy. 后會提示并自動補全相應的模塊。
簡單的例子
下面舉一個簡單的例子,比如說我們想對某一要素做緩沖區分析,需要做的就是導入ArcPy,然后調用緩沖區分析的工具。
import arcpy arcpy.Buffer_analysis("C:\test\roads.shp", "C:\test\roadsBuffered.shp", "100 Meter")ArcGIS 對各個工具都有非常詳細的說明和參考代碼,很容易上手。
3. 有針對性的學習ArcPy
除了 ArcGIS 提供的豐富的幫助文檔和示例,如果想集中了解一些關于 ArcPy 的知識,可以參考 Esri 出版的兩本書:
- Python Scripting for ArcGIS Pro
- Advanced Python Scripting for ArcGIS Pro
有的時候對于陌生的內容,看視頻可能可以讓你更快的上手,此時你可以參考:
- Esri 的學習課程 ArcPy Essentials
- Fran Polignano 的 YouTube 系列教程
總結
以上是生活随笔為你收集整理的简单了解一下ArcPy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器imm口加载硬盘,ibm x325
- 下一篇: leetcode 701 二叉搜索树的插