ArcGIS Python基础

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所示。本人认为主要的问题是开发和解决问题思路,会手工操作,基本就有代码。

图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. 如果模型包括子模型,则不会导出这些子模型中的内容。而是必须引用工具箱并需要在脚本内调用模型工具。

图1-2 模型导出python脚本

  1. 有一定python语言基础,严格区分大小写,靠:缩进实现语法,汉字(在Python3中,可以是汉字)不能做变量(也不能数字开头)。

ArcGIS执行Python 几种方式和注意事项

  1. Python窗口
  2. 独立运行脚本

ArcGIS 10.X中使用python2.7,默认是ASCII码,务必修改为编码utf8(是针对Unicode的一种可变长度字符编码) ,方法是编写sitecustomize.py,内容如下

#coding=utf8
import sys
reload(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所示。

图1-3 PyScripter中Python Path的路径

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

图1-4 PyScripter中文件模板的设置

  1. pythonw.exe,对应执行文件idle.bat,一般的电脑在

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

图1-5 pythonw软件的主界面

打开文件,如图1-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,如果没有,点击最右边的

,如图1-10所示,自己添加Python路径,如图1-11所示。

图1-7 PyCharm的界面

图1-8 PyCharm中Python中设置

图1-9 PyCharm中工程中设置

图1-10 PyCharm中Python以后路径

图1-11 PyCharm中自己添加Python路径

1.5.2 ArcGIS Python编辑器设置

在主菜单的地理处理→地理处理选择菜单中,如图1-12所示。

图1-12 地理处理选项的位置

在编辑器和调试程序中设置exe或bat(含路径),如图1-13所示。

图1-13 地理处理选项的中Python中编辑器和调试程序设置

举报
评论 0