Python 的计算字段工具和 Python 来操作现有的属性字段值并创建新的属性字段值

17 篇文章 1 订阅
5 篇文章 1 订阅
本文介绍了如何在ArcGISPro中结合Python的计算字段工具来操作和创建属性字段值。通过示例展示了如何四舍五入字段值、根据条件重新分类数据以及填充随机整数。教程详细解释了每个步骤,包括设置新字段、选择适当的数据类型和编写Python表达式。
摘要由CSDN通过智能技术生成

ArcGIS Pro 的字段计算器与 Python 结合使用

③种使用方式

在本教程中,我们将结合使用 Python 的计算字段工具和 Python 来操作现有的属性字段值并创建新的属性字段值。

 使用属性数据时,您可能希望更改现有字段值或创建新字段值。Pro 提供使用 Python3 和 Arcade 函数,通过其字段计算器工具快速操作字段值。在本教程中,我们将提供一些示例,说明如何使用 Pro 的辅助函数和内置 Python 函数来操作现有字段值。

我们将使用 ArcGIS Online 中名为“伦敦自治市镇”的托管要素图层的属性表,其中包含一些有用的示例数据。为了能够在 Pro 中操作数据,我们必须将托管要素图层添加到 ArcGIS Pro 的地图界面,并首先使用复制要素地理处理工具制作要素副本。这是图层属性表的一个小示例:

 

示例 1:将 Area 字段值四舍五入为两位小数

在此示例中,我们将使用 Python 的内置 round() 函数将“Area (km2)”列值四舍五入为两位小数而不是三位小数。为此,我们将右键单击列名称(位于 HECTARES 列旁边)并选择“计算字段”以打开字段计算器工具。保持输入表字段不变,因为它会在打开工具时自动更新。我们不会覆盖我们现有的列值,而是为我们的圆形区域值创建一个新字段,因此在字段名称(现有或新)下选择一个新字段名称。

因为您正在创建新字段,所以您需要输入字段类型。这将是“Double”,因为我们需要两个十进制值而不是三个(当前值)。对于表达式类型,保持输入字段不变(它应该设置为“Python 3”)。接下来,双击“Area (km2)”字段,该字段将作为“!AREA!”添加到正下方的空白输入字段中。该字段位于输入“输入值”字段下方和“代码块”的正上方。接下来,更改 !AREA! 表达式为“round(!AREA!, 2)”,如下图:

 

接下来,单击空代码块下方的验证。该表达式应被评估为有效。最后,单击应用并忽略警告并在属性表的最右侧找到新填充的列。

示例 2:使用 Python 根据条件对现有列值进行重新分类

我们将知道将所有人口值重新分类为四个数值类别。这个想法是使用 Python if-else 语句,以便 Pro 自动对所有人口值进行重新分类。我们将使用以下值:所有低于 100,000 的值将被归类为“1”,所有介于 100,000 和 200,000 之间的值将被归类为“2”,所有介于 200,000 和 300,000 之间的值将被归类为“3”,所有高于 300,000 的值将被归类为“4”。右键单击属性表中的 Population 列名称,然后选择计算字段工具。在“Field Name (Existing or New)”下,填写新的字段名称,例如“Population Reclassify”。对于字段类型,选择短(小整数)。保持 Expression Type 字段不变 (Python 3),然后双击 Helpers 列表中的 Reclassify 辅助函数。这会自动使用以下文本填充表达式字段:Reclass(! 场地!)。如下图所示更改此字段的输入,并使用上面列出的有关类别和人口值的信息编辑代码字段。整个代码如下图所示。单击“确定”运行该工具并在最右侧的属性表中查找新字段。

 

示例 3:使用随机整数值填充新的空字段

Python 提供了多个用于生成随机值的库。您可以将它们用作表达式来填充字段计算器中的新空字段。因为我们没有像上面的示例那样使用现有的输入数据,而是即时创建新值,所以最好创建一个新的空字段,我们将使用 Python 创建的随机值填充该字段。通过单击属性表左上角的“添加”按钮在属性表中创建一个新字段。然后您可以选择字段名称和关联的数据类型。短整数类型在这里可以正常工作。要保存新添加的字段,请右键单击字段名称并选择“保存”。

接下来,在属性表中找到新字段并打开计算字段工具。确保在字段名称(现有或新)下选择了新的空字段名称。在表达式字段中,添加用于生成随机值的 Python 代码片段(见下图)。在代码块字段中,导入随机模块。单击“确定”,新字段将填充随机值。除了使用 random 模块,您还可以使用 numpy.random.random() 函数来返回随机数。此函数返回 0.0 和 1.0 之间的值。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS 数据栈

谢谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值