,欢迎也在微信公众号查看。

Python脚本使ArcGIS Pro中的工作流自动化成为可能。ArcGIS pro中采用的是Python3。在本例中,将首先介绍Python 语法的一些基础知识,然后编写代码来确定工作空间中的所有矢量图层的记录数量,最后可以将代码导出到 Python 脚本,该脚本可以在 ArcGIS Pro 外部打开、修改和运行。

一、设置工程和查看数据集

1.下载数据,并解压。

https://www.arcgis.com/home/item.html?id=b2a7ac0eba3344cc9d143e08bd9299f4

2.创建一个新工程,名为PythonStart,点击Map选项卡下的Add Data, 加载解压后的数据。

3. 右键单击 ambulances图层,单击属性表,在打开的表下面可看到有48 条记录。关闭属性表。

4.在Geoprocessing窗格中搜索并打开Get Count工具,设置参数。Input Rows: ambulances。该功能返回图层记录数量。

5.利用Python实现计数功能。在view选项卡下单击Python window. 在出现的窗口中输入以下代码,并按Enter键。

arcpy.management.GetCount("ambulances")

ArcPy 是 Python 包,它具有 Python 中的大部分可用 ArcGIS Pro 功能。GetCount() 是 ArcPy 的功能,可运行数据管理工具工具箱中的获取计数地理处理工具。

6.鼠标定位在有代码的任意位置,右键单击清除脚本。

二、在 Python 窗口中运行代码

1.在Python窗口中输入以下语句print("GIS is cool"),并按下enter键。需要注意Python 使用单引号和双引号来标识字符串,两者用法相同。print("GIS is cool") 和 print('GISis cool') 均正确,但是 print("GIS is cool') 会导致错误。Python 中的引号始终是直引号(而不是弯引号)。当您在 Python 窗口或其他编码环境输入编码时,其将被自动格式化。有时,如果您复制已在文字处理软件中格式化或编写的代码,则直引号可能被会替换为弯引号。例如,print(“GIS is cool”) 会导致错误。:

2. 输入以下代码行:

x = 37,然后按 Enter 键y = 73x * y

在代码行中,x 是一个变量。变量就像用于存储值的容器。在此示例中,该值为整数 37,但它也可以是其他数字、文本或数据集名称。由于该变量被分配了一个值,因此代码行被称为赋值。在变量赋值中使用单个等号表示变量被设置为等于该值。已分配变量,稍后这些变量可以用于代码。

Python 区分大小写,因此 X 与 x 不同。

当在 Python 窗口中继续运行代码行时,先前运行的所有代码及其结果将显示在脚本中。可以清除脚本,但这不会清除已分配的任何变量的值,重新启动您的 ArcGIS Pro 会话可将其清除。

3. 右键单击脚本,然后单击清除脚本。

4.编写华氏温度 (F) 和摄氏温度 (C) 之间的转换代码。公式为:F = 9/5 * C + 32。

Python window中输入:

temp_c = 17temp_f = temp_c * 9 / 5 + 32print(temp_f)

代码的第一行将数字值分配给变量 temp_c。第二行使用变量 temp_c 执行计算,并将结果分配给新变量 temp_f。第三行打印变量 temp_f 的值。第三行也可以写成 temp_f,但通常会使用 print() 函数,因为它提供了更好的格式化选项。

5.清除脚本。

三、获取在 Python 窗口中编写代码的帮助

1.在英文输入状态下,在python窗口中输入pri,会出现带有字母 F 的蓝色图标,这称为自动完成或代码完成。将光标悬停在 print() 弹出窗口上方,将显示该函数的语法帮助。单击 print() 弹出窗口。在 print() 函数的括号中输入一个引号,将自动添加第二个引号。

2.输入arc, 随即显示包含 ArcPy 包的弹出窗口,使用带有字母 P 的红色图标表示。单击 arcpy 弹出窗口。在 arcpy. 后,输入get. 在选项列表中单击 GetCount()management。GetCount() 后的单词 management表示 GetCount() 为 management 工具组的一部分。

arcpy.management.GetCount()

3. 将光标放在括号之间时,将显示两个弹出窗口。下方的弹出窗口显示“获取计数”工具的语法。语法显示唯一参数名为 in_rows,它由输入表视图或栅格图层组成。上方的弹出窗口显示活动地图中ambulances 图层的名称。这是“获取计数”工具 in_rows 参数的代码完成提示。换句话说,Python 窗口可以识别出活动地图中的图层是工具的有效参数。您可以选择使用此图层或输入其他内容。单击 ambulances 弹出窗口。

四、使用 for 循环进行迭代

接下来,将尝试迭代,即多次重复相同的步骤。您将创建一个值列表,并对列表的每个元素执行相同的计算。

1. 清除脚本。

2. 输入以下代码行并按 Enter 键:

templist_c = [17, 19, 24, 21, 16]

此代码将创建一个 Python 列表,其中包含五个相同类型的元素。在本例中,它们是摄氏温度值。列表是Python 中非常常见的数据类型。列表由一系列由括号 [] 包围的元素组成,这些括号有时称为方括号,并且这些元素之间使用逗号分隔。

3. 输入以下代码行并按 Enter 键:

for temp_c in templist_c:

请注意,当在代码行末尾按 Enter 键时,该代码不会运行,但提示符将移至下一行。代码行以冒号结尾,这表示将要跟随更多代码,并且代码行本身不能单独运行。

代码行是for 循环的起点,具有以下一般结构:

for <element> in <list>:

<execute one or more lines of code>

for 循环允许您遍历现有列表的元素,并对每个元素重复相同的步骤。包含 for 关键字的代码行以冒号结尾。下一行代码将缩进,并且后续同样缩进的所有代码行将在每次迭代中运行。重复的代码块可以通过缩进来识别。由于使用冒号,Python 窗口可以识别 for 循环,因此下一代码行将缩进。

4.输入以下代码行并按 Enter 键:

temp_f= temp_c * 9 / 5 + 32

此代码应缩进。如果不慎删除了缩进,则可以在开始出添加四个空格来缩进此行。四个空格是代码块的默认缩进级别。

5. 输入以下代码行并按 Enter 键:

print(temp_f)

6. 将光标停留在代码的空行上,按 Enter 键。结果将会被打印出来。

7. 清除脚本。

五、创建并遍历要素类列表

1. 运行以下代码行:

count = arcpy.management.GetCount("ambulances")print(count)

2. 运行以下代码行:

count =arcpy.management.GetCount("F:/ArcGIS/data/PythonStart/ambulances.shp")print(count)

步骤1和2的结果是相同的。关于路径的使用,有一些注意事项。首先,如果将数据提取到另一个文件夹,则需要修改此路径。其次,由于该路径为字符串,将在两侧使用引号。另请注意,路径中使用正斜杠 (/) 代替常规反斜杠 (\)。Python中的反斜杠用作转义字符,这可能会改变其后的字符含义。在字符串中使用反斜杠时,可能会导致意外的结果。第三,由于.shp 文件扩展名为名称的一部分,因此要素类名为 ambulances.shp。仅使用 ambulances 会返回错误,因为文件夹中没有名为 ambulances 的要素类。可以设置工作空间,而不是指定完整路径。工作空间是影响地理处理操作的几种环境设置之一。除了工作空间之外,环境还包括默认的输出坐标系、用于栅格数据处理的默认像元大小等。

3. 运行以下代码行:

arcpy.env.workspace = "F:/ArcGIS/data/PythonStart"count = arcpy.management.GetCount("ambulances.shp")print(count)

打印相同的结果。

尽管设置工作空间需要一个额外的代码行,但是使用工作空间通常是有效的,因为所有随后的 ArcPy 代码行都会自动使用它。第二行代码不再需要完整路径。如果代码中未设置工作控件,则将使用工程的默认工作控件。

完成确定文件夹中每个要素类的要素数量的原始任务的最后一步是:添加代码以在工作空间中创建 shapefile 列表,然后在该列表的每个元素上运行“获取计数”工具。设置工作空间后,您可以使用 ArcPy 函数在此工作空间中创建要素类列表。

4. 输入以下代码行并按 Enter 键:

fc_list = arcpy.ListFeatureClasses()

ListFeatureClasses() 函数将创建要素类列表。通过将其分配给变量,可以在其他任务中使用该列表。要检查列表的内容,可以打印其值。

运行以下代码行:

print(fc_list)

5. 输入以下代码行并按 Enter 键

for fc in fc_list:    count =arcpy.management.GetCount(fc)    print(count)

结果将打印工作空间中每个 shapefile 的要素数量。

6. 右键单击 Python 窗口脚本中的代码,然后单击保存脚本,名为count_features.py。

六、在 Python 编辑器中运行脚本

在ArcGIS Pro 外部运行 Python 代码需要Python 代码编辑器,也称为集成开发环境 (IDE)。在本部分中,将使用一个名为 IDLE 的 IDE,它代表 IntegratedDeveLopment Environment(请注意大写 L)。IDLE 将随 Python一起安装,因此如果你的计算机装有 Python,则它也具有 IDLE。还有许多其他 Python IDE(包括 PyCharm 和 Spyder),但是 IDLE 是一个不错的起点。类似 PyCharm 和 Spyder 的IDE 需要通过其他步骤进行下载、安装和配置,而 IDLE 是任何 Python 安装的一部分并可以使用。

1.找到刚才保存的count_features.py 文件并单击Edit with IDLE (ArcGIS Pro)。

2.在 IDLE 的顶部菜单中,单击run,然后单击 Python Shell。可在里面进行代码输入。

3.返回到 count_features.py 脚本的脚本窗口。删除代码,只留下如下代码,并保存。

4. 单击运行,然后单击run model。出现以下错误:NameError: name 'arcpy' is not defined。发生错误的原因是您使用的是 ArcPy 包,但是正在 ArcGIS Pro 外部运行代码。要使用包,需要将其导入脚本的顶部。

5.在顶部插入一行代码import arcpy,保存并重新运行。结果与在 ArcGIS Pro 中运行代码的结果相同,但是 ArcGIS Pro 无需打开即可运行脚本

七、运行 Python 代码的方法比较

方法

优点

缺点

ArcGIS Pro 中的 Python 窗口

  • 容易入门

  • 与 ArcGIS Pro 内部的数据和地图进行交互

  • 提供直观的代码完成帮助

  • 仅限于较短的代码段

  • 缺少 Python 编辑器中常见的许多功能

  • 并非旨在保存和组织脚本

  • 仅能用于ArcGIS Pro

Python 编辑器 (IDE)

  • 无需打开ArcGIS Pro,即可运行代码

  • 包括许多功能,可帮助编写和测试更复杂的代码

  • 作业另存为 .py 文件来组织更复杂的代码工程

  • 不同 IDE 可以满足不同的用户类型和技能水平

  • 某些 IDE 可以用于多种编程语言

  • 功能因所使用的特定 IDE 而有所不同

  • 根据 IDE,可能缺少代码完成提示

  • 一些 IDE 需要先进行自定义配置,然后才能与 ArcGIS Pro 配合使用

  • 对于初学者而言,某些 IDE 可能会很复杂

ArcGIS Pro 中的 Python 入门相关推荐

  1. 【ArcGIS Pro微课1000例】0020:ArcGIS Pro中河流(曲线)、湖泊(水体色)图例制作案例教程

    相关阅读:[ArcGIS微课1000例]0032:ArcGIS中河流(曲线).湖泊(水体色)图例制作案例教程 河流.湖泊的样式设置功能在ArcGIS Pro得到了延续,本文讲解ArcGIS Pro中河 ...

  2. 【ArcGIS Pro微课1000例】0015:ArcGIS Pro中属性字段分式标注案例教程

    文章目录 1. 符号化 2. 属性字段分式标注 在ArcGIS及Pro中很容易实现格式化标签的,本文讲解在ArcGIS Pro中实现属性字段分式标注,结果如下图所示: 1. 符号化 右键数据图层→符号 ...

  3. 加载osgb数据转换不能用_在ArcGIS Pro中OSGB数据转换及发布服务流程

    随着倾斜摄影技术的发展,大家在工作中经常接触到各种类型的倾斜摄影模型,比如OSGB.dae.obj.slpk(Esri)等. Esri采用的spk i3s标准(Indexed 3D Scene),是E ...

  4. osgb转obj工具_在ArcGIS Pro中OSGB数据转换及发布服务流程

    随着倾斜摄影技术的发展,大家在工作中经常接触到各种类型的倾斜摄影模型,比如OSGB.dae.obj.slpk(Esri)等. Esri采用的spk i3s标准(Indexed 3D Scene),是E ...

  5. ArcGIS Pro 中的编辑器

    ArcGIS Pro 中的编辑器 Pro 中的属性表和编辑器可以直接进行更改,无需开启编辑.这是一个很方便的操作逻辑,尤其是对于我们测绘这个基本只用ArcGIS编辑器工具的人来说 编辑要素 毫无疑问, ...

  6. 研究区域制图 | 在 ArcGIS Pro中创建地图布局

    研究区域制图 | 在 ArcGIS Pro中创建地图布局 数据准备 首先需要两个图层,一个是市区图层,一个是省行政区划图层,我这里以吉林省以及吉林省长春市为例 新建布局 选择横向A5即可 添加参考线 ...

  7. 在ArcGIS Pro中进行拓扑编辑和错误处理

    在ArcGIS Pro中进行拓扑编辑和错误处理 第一步:创建一个新的工程文件,命名为topology 打开练习数据两个水系的数据集hydrologic drainage basins:包含河流的线要素 ...

  8. ArcGIS Pro中的回归分析浅析(上)回归的概念探索性回归工具使用

    2022年,M姐的小伙伴想研究一下空间分析应用,一不小心,小伙伴有点"走火入魔",在回归分析这条路上,走出了花火,于是,写了一篇学习总结.阅后十分激动,决定分享出来,本内容将分为四 ...

  9. VS Code中的Python入门

    VS代码中的Python入门 在本教程中,您将使用Python 3在Visual Studio Code中创建最简单的Python"Hello World"应用程序. 通过使用Py ...

最新文章

  1. 从智能交通到智能能源:智慧城市在7个方面的应用实践
  2. 装了Ubuntu后将默认启动项修改为windows
  3. react 中使用import()实现按需加载报错 解决方法 --‘import’ and ‘export’ may only appear at the top level
  4. 5大主流主链排行版出炉; 以太坊新生合约数持续3周下跌; 各大榜单均现“黑马”冲榜!| 数据周榜...
  5. Python入门--for循环
  6. Python使用---面向对象OOP(类和对象)--完善中
  7. Keil破解过程中注册机被识别为病毒文件
  8. android x5 webview 第一次,android:X5WebView 首次初始化 X5 内核耗时, 会产生卡顿现象的解决办法...
  9. 光电耦合器简介以及作用
  10. vmware mac os 10.11.6 安装xcode 8
  11. Kata Container是什么?
  12. 重启服务器:docker重启,docker内部mysql怎么重启启动
  13. i7服务器cpu型号推荐,Intel七款主流CPU,推荐指南(建议收藏)
  14. 限制p元素之显示2行文字,同时出现省略号。
  15. 区块链学习笔记15——ETH状态树
  16. Keras和TensorFlow的安装配置
  17. tophat 原理_Tophat2比对原理及命令
  18. 任命额外的项目经理时要谨慎行事(转)
  19. aion单机服务器维护中,永恒之塔(AION)单机版架设图文教程
  20. python五子棋实验报告_Python 五子棋

热门文章

  1. 数字化坚鹏:金融数据治理、数据安全政策解读及银行数字化转型
  2. 鸿蒙笔记本双系统,浅谈鸿蒙OS发展模式 华为P50系列推行双系统版本+双芯片策略...
  3. 计算机基础图表知识,计算机基础知识课件(图表部份).ppt
  4. HashSet要重写equals方法和hashCode方法
  5. 我的新西兰打工旅行签证(Working Holiday Visa)申请之路
  6. Hbase备份与恢复工具Snapshot的基本概念与工作原理
  7. 【文献阅读】Actor-Attention-Critic for Multi-Agent Reinforcement Learning
  8. 创建一个大数据平台的正确姿态
  9. 【学习笔记】Unreal Engine 4 虚幻引擎蓝图中级教程物理碰撞教程
  10. 马格南摄影师谈抓拍(ZT)