tft每日頭條

 > 生活

 > arcgis可以用python開發嗎

arcgis可以用python開發嗎

生活 更新时间:2024-11-27 21:37:26
ArcGIS為什麼學習Python

學習Python原因如下:

  1. 數據分析、人工智能、機器學習使用語言是Python
  2. Python易于學習,入門快,簡練,高效,變量不用預定義,并且随時可以改變類型
  3. Python擁有最成熟的程序包資源庫之一arcpy,後面直接說ArcGIS python開發直接簡稱arcpy,arcpy主要模塊,如表1-1所示。

表1-1 arcpy主要模塊

模塊名稱

功能

arcpy.da

數據訪問模塊。提供了增、删、査、改等數據記錄操作的類和函數。

arcpy.mapping

地圖制圖模塊。提供了操作mxd文檔、地圖渲染、地圖打印輸出、地圖服務發布等功能。

arcpy.na

網絡分析擴展模塊。用于訪問網絡分析地理處理工具。

arcpy.sa

栅格分析模塊。用于訪問空間分析地理處理工具

arcpy.time

處理時間增量和時區時會用到的類、方法以及屬性。

  1. 在ArcGIS中python,界面和代碼分離,Python負責寫代碼,arcgis負責定制界面。
  2. 在各種開發語言中多年排名第一
  3. 在ArcGIS中Python是開源的,不用安裝其他軟件,還内置命令行。
  4. Python缺點,不擅長界面。
  5. 在ArcGIS,Python主要是處理數據,每個工具調用基本都是一行代碼,非常簡練。不過在ArcMap 10.7中Python版本是2.7,而在ArcGIS Pro 2.5中使用版本3.6.8,ArcGIS Pro 2.6中是python 3.6.10版本。
ArcGIS怎麼學習Python
  1. 看幫助,看每個工具幫助,每個工具箱的工具都有python調用代碼,需要搜素工具箱的工具:中文搜索加空格,英文搜素加*,也可以輸入文件擴展名。
  2. 運行工具,就有python代碼,在地理處理主菜單→結果,界面右鍵菜單,如圖1-1所示。本人認為主要的問題是開發和解決問題思路,會手工操作,基本就有代碼。

arcgis可以用python開發嗎(ArcGISPython基礎)1

圖1-1 地理處理結果中獲得python代碼

  1. 加入模型中,可以導出python代碼,如圖1-2所示,但不是導出的腳本,都能用,個别需要修改,主要python2.x不支持漢字變量,還有以下幾點。
  2. 如果需要覆蓋數據,可将 arcpy.env.overwriteOutput 屬性設置為 True。
  3. 如果模型使用的圖層或表視圖不是在原始模型中創建,則必須使用創建要素圖層(MakeFeatureLayer)和創建表視圖(MakeTableView)等工具在腳本中創建這些圖層或表視圖。
  4. 模型的數據元素會直接轉換為導出腳本中的變量。避免命名 Python 中不兼容的數據元素(例如 class、global 和 return)。
  5. 如果模型使用了任何行内變量替換(如 %workspace%、%scratchworkspace%、%n%、%i% 或 %variable name%),則必須使用正确的值來替換這些變量。
  6. 如果模型使用了叠代器,則叠代邏輯将不會被導出,而必須在 Python 中替換為循環語句。
  7. 隻有列表變量中的第一個值将被導出。
  8. 如果模型使用了“僅模型”工具(如合并分支、收集值或計算值),則這些工具不會在 Python 中運行。需要實現與這些工具所提供的等效的 Python 功能。例如,需要使用 if/else 邏輯在腳本中執行分支。
  9. 如果模型包括子模型,則不會導出這些子模型中的内容。而是必須引用工具箱并需要在腳本内調用模型工具。

arcgis可以用python開發嗎(ArcGISPython基礎)2

圖1-2 模型導出python腳本

  1. 有一定python語言基礎,嚴格區分大小寫,靠:縮進實現語法,漢字(在Python3中,可以是漢字)不能做變量(也不能數字開頭)。
ArcGIS執行Python 幾種方式和注意事項
  1. Python窗口
  2. 獨立運行腳本

ArcGIS 10.X中使用python2.7,默認是ASCII碼,務必修改為編碼utf8(是針對Unicode的一種可變長度字符編碼) ,方法是編寫sitecustomize.py,内容如下

#coding=utf8import sysreload(sys)sys.setdefaultencoding('utf8')

拷貝到C:\Python27\ArcGIS10.X\Lib\site-packages\,10.X是ArcGIS的版本,如果是ArcGIS 10.7,就是10.7。

函數的多參數調用方法

以“要素轉點”,“要素轉線”等工具為列,有以下方式:

  1. arcpy.FeatureToPoint_management("jfb", "parcels_center", "CENTROID") #每個參數都填值
  2. arcpy.FeatureToPoint_management("jfb", "parcels_center") #可選參數不填
  3. arcpy.FeatureToPoint_management("jfb", "parcels_center", point_location="CENTROID") #可選參數填寫參數名
  4. arcpy.FeatureToLine_management(in_features=“JFB”,out_feature_class=“C:/Users/dell/Documents/ArcGIS/Default.gdb/JFB_FeatureToLine”,cluster_tolerance=“#”,attributes=“ATTRIBUTES”) #每個參數填寫參數名,空值為。

總結:所有的按順序填寫,可選參數,可以填,也可以不填,多個可選把參數名填寫上,不需要就不填寫,空值使用"#"。

Python 編輯器設置和調式1.5.1 Python編輯器
  1. PyScripter,對應文件:PyScripter-v3.4.2-Setup.exe,在第一章資料下,安裝之後他自動獲得ArcMap中Python的路徑,在主菜單的Tools→Python Path,如圖1-3所示。

arcgis可以用python開發嗎(ArcGISPython基礎)3

圖1-3 PyScripter中Python Path的路徑

由于ArcMap是32位程序,所以使用PyScripter是32位,不是64位的,在主菜單的Tools→Options→File Templates,下加入# -*- coding: UTF-8 -*-,設置變為UTF。如圖1-4所示。

arcgis可以用python開發嗎(ArcGISPython基礎)4

圖1-4 PyScripter中文件模闆的設置

  1. pythonw.exe,對應執行文件idle.bat,一般的電腦在

C:\Python27\ArcGIS10.7\Lib\idlelib\idle.bat,10.7是ArcGIS軟件的版本,如圖1-5所示。

arcgis可以用python開發嗎(ArcGISPython基礎)5

圖1-5 pythonw軟件的主界面

打開文件,如圖1-6所示。

arcgis可以用python開發嗎(ArcGISPython基礎)6

圖1-6 pythonw打開文件後界面

  1. PyCharm,是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業Web開發,如圖1-7所示

專業版是收費的,Professional,教育版是免費,社區版是免費的 Free Community,教育版是教學式的,更适合學生。

社區版,就是簡化的專業版,除了一些功能沒有以外,他是用來解決工作問題的。部分功能沒法用(例如:Web開發,Python Web框架,Python的探查,遠程開發能力,數據庫和SQL支持),安裝後就可以使用,在前言二維碼中下載。

專業版,功能豐富。對開發者來說十分專業的開發工具。PyCharm中Python路徑的設置,如圖1-7所示,在File菜單→Settings→Project→Project InterPreter下,分别如圖1-8和圖1-9所示,選Python路徑,ArcMap中Python是2.7,ArcGIS Pro 2.5中是Python3.6.8,如果沒有,點擊最右邊的

arcgis可以用python開發嗎(ArcGISPython基礎)7

,如圖1-10所示,自己添加Python路徑,如圖1-11所示。

arcgis可以用python開發嗎(ArcGISPython基礎)8

圖1-7 PyCharm的界面

arcgis可以用python開發嗎(ArcGISPython基礎)9

圖1-8 PyCharm中Python中設置

arcgis可以用python開發嗎(ArcGISPython基礎)10

圖1-9 PyCharm中工程中設置

arcgis可以用python開發嗎(ArcGISPython基礎)11

圖1-10 PyCharm中Python以後路徑

arcgis可以用python開發嗎(ArcGISPython基礎)12

圖1-11 PyCharm中自己添加Python路徑

1.5.2 ArcGIS Python編輯器設置

在主菜單的地理處理→地理處理選擇菜單中,如圖1-12所示。

arcgis可以用python開發嗎(ArcGISPython基礎)13

圖1-12 地理處理選項的位置

在編輯器和調試程序中設置exe或bat(含路徑),如圖1-13所示。

arcgis可以用python開發嗎(ArcGISPython基礎)14

圖1-13 地理處理選項的中Python中編輯器和調試程序設置

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved