视频
本教程也以视频方式提供。
计算新数值字段
您有一个包含加拿大马尼托巴省尼帕瓦镇税收评估值的图层。 您想使用它来显示每英亩的评估值。 该图层包含进行此计算所需的数据,但其存储为文本,而不是数字。
首先,您将重新格式化评估值。
- 下载 Neepawa 工程包。
名为 Neepawa.ppkx 的文件即会下载到您的计算机。 .ppkx 文件是一个 ArcGIS Pro 工程包,可能包含可以在 ArcGIS Pro 中打开的地图、数据和其他文件。
- 在计算机上找到已下载的文件。 双击 Neepawa.ppkx 以在 ArcGIS Pro 中将其打开。 如果出现提示,请使用 ArcGIS 帐户登录。
注:
如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项。
随即出现一张地图,显示尼帕瓦的房产宗地。
注:
此地图中的数据是曼尼托巴省政府提供的 Manitoba Property Assessment Information 图层的子集。
- 在内容窗格中,右键单击 NeepawaPropertyAssessment 图层并选择属性表。
- 检查该属性表。
Total Value 字段包含评估值。 但是,它看起来可能被格式化为文本而不是数字,因为每个像元均包含一个 $ 字符。
- 在属性表中,指向 Total Value 字段标题。
随即出现一个弹出窗口,将字段类型列为文本 (20)。 数字 20 表示允许的字符数。
提示:
字段格式还有助于确定其类型。 文本字段具有左对齐的值。 数值字段具有右对齐的值。
您需要将此字段中的数据存储为数值格式而不是文本,但不能更改字段类型。 相反,您将创建一个新字段并使用 Total Value 字段中的数字进行填充。
- 在属性表工具栏中,单击计算。
计算字段窗口随即显示。 此工具将计算现有字段或新字段的值。
- 对于字段名称(现有或新建),检入 Assessed Value,然后按 Tab 键。
由于您命名了一个尚不存在的字段,因此还必须选择一个字段类型。 字段类型用于确定可以在字段中存储的数据种类。
- 指向字段类型参数并指向信息按钮。
随即显示一个窗口,其中描述了字段类型选项。 存在 5 种数值字段类型:短整型、长整型、大整型、浮点型和双精度型。
要选择最佳类型,请考虑以下两个问题:
- 您是否需要存储十进制值? 否。 Total Value 字段中的数值没有小数位,因此您可以使用其中一种整型数据类型:短整型、长整型或大整型。
- 您的数据范围如何? 最昂贵宗地评估值为 3400 万美元。 此数值过大,短整型字段类型无法存储,但是又不够大,不需要大整型字段类型,因此您将选择长整型。
选择字段类型时,请尽量选择大小足以满足您需求的最小类型。
注:
在 ArcGIS 字段数据类型中阅读有关数值数据类型的详细信息。
- 对于字段类型,选择长整型(32 位整型)。
在这种情况下,您所选的表达式类型并不重要。
- 在字段列表中滚动,同时双击 Total Value。
Assessed Value 框将填充文本 !Total_Value!。
注:
如果将表达式类型更改为 Arcade,则 Assessed Value 框将更改为 $feature.Total_Value。 两个选项均可运行。
如果您的计算机使用美国英语以外的区域设置,则该表达式可能会由于不同的货币或千位分隔符而失败。 要避免此问题,请将表达式类型设置为 Arcade 并粘贴以下表达式:
var numberOnly=Replace($feature.Total_Value, '$', '') // Remove dollar signs. Replace(numberOnly, ',', '') // Remove commas.
将计算新 Assessed Value 字段以包含来自 Total Value 字段的值,但它们将被格式化为长整型字段类型,而不是文本。
- 单击确定。
消息窗口随即显示。 它包括一条警告,指示新字段已从 Assessed Value 重命名为 Assessed_Value。 该字段已重命名,因为字段名称不能包含空格。 该字段的别名仍然包含空格,即显示在属性表中的别名。
- 关闭消息窗口。
- 在属性表中,查看新 Assessed Value 字段以确认它包含您的期待值。
Assessed Value 字段中的值应与 Total Value 字段中的值相同,但没有 $ 符号或逗号。
使用 Arcade 表达式计算新字段
接下来,您将重新格式化面积值。 您将创建另一个数值字段并使用 Frontage/Area 字段中的值对其进行填充。 这一次,您需要编写一个 Arcade 表达式来正确复制数据。
- 查看包含面积值的字段的属性表。
Frontage/Area 字段包含所需信息。 但是,该字段同时包含单词和数字,这意味着其字段类型必须是文本。 您将创建一个数值字段来仅存储数字。
- 在属性表工具栏中,单击计算。
- 在计算字段窗口中,对于字段名称(现有或新建),键入 Area Acres,然后并按 Tab 键。
接下来,您需要选择一个字段类型。
- 您是否需要存储十进制值? 是。 Frontage/Area 字段值均包含两位小数,因此您需要选择支持小数值的字段类型之一:浮点型或双精度型。
- 您的数据范围如何? 最大宗地的面积为 185 英亩,因此较小的数据类型浮点型的大小可以满足需求。
- 对于字段类型,选择浮点型(32 位浮点型)。
- 对于表达式类型,选择 Arcade。
您可以使用表达式类型的任意选项来完成此字段计算。 对于本教程,您将使用 Arcade。
- 在 Area Acres = 框中,删除所有现有文本。
您要从 Frontage/Area 字段复制数字信息并留下文本信息。 可以通过多种方法实现这一点,但在本教程中,您将使用分割函数。
- 单击助手类型按钮。 在显示的菜单中,单击文本。
助手列表可以过滤与文本数据相关的函数。
- 在助手列表中,双击 Split()。
- 在 Area Acres = 框中,将光标放在括号内。 在字段列表中,双击 Frontage/Area。
该表达式现在显示为 Split($feature.Frontage_or_Area)。
分割函数在指定字符处分割文本值并返回一个文本值数组。 Frontage/Area 字段中的值均包含一个数字,后跟一个空格,再跟一个单词(例如,0.15 ACRES)。 您可以在空格处分割这些值以将数字与单词分开。
- 在 Area Acres = 框中,将光标放在右括号前并键入 ,' '。
确保在两个引号之间包含一个空格,因为此部分表达式表示分割位置。
- 在表达式的末尾,输入 [0]。
这部分表达式指示数组中需要返回的项目。 例如,如果要返回拆分后的文本,则可以改为 [1]。
最终的表达式为 Split($feature.Frontage_or_Area,' ')[0]。 只要有空间,即可转换为分割 Frontage/Area 字段。 返回第一次分割前的文本。
注:
分割函数还有其他可选参数。 有关这些参数的信息,您可以访问 ArcGIS Arcade 函数参考页面。
要使用 Python 3 编写相同的表达式,请键入 !Frontage_or_Area!.split( )[0]。
如果您的计算机使用以逗号作为小数分隔符的区域设置,请改用以下表达式:
var frontageArea=Replace($feature.Frontage_or_Area, '.', ',') Split(frontageArea,' ')[0]
- 单击确定。
随即显示一个消息窗口,其中显示了与以前相同的警告。
- 关闭消息窗口。
- 在属性表中,查看新 Area Acres 字段并确认它包含您的期待值。
Area Acres 值应与 Frontage/Area 字段中的数字匹配。
计算几何
您可能已经注意到 Frontage/Area 字段存储了两种值。 带有单词 ACRES 的行存储面积,带有单词 FEET 的行存储临街线,即宗地沿街道的长度。
这意味着 Area Acres 字段中的许多值是错误的,因为它们不表示面积,且单位也不是英亩。 您无法将英尺值转换为英亩,因为两个单位分别测量距离和面积。 但是,您可以根据要素形状计算这些缺失值的面积。
首先,您将选择所有具有临街测量值的宗地。
- 在属性表中的工具条上,单击按属性选择。
- 在按属性选择窗口中,使用菜单构建子句 Where Frontage/Area contains the text FEET。
提示:
在第三个菜单中,键入单词 FEET。
- 单击确定。
- 查看属性表,确认已选择所有 FEET 值,且未选择任何 ACRES 值。
接下来,您将对 Area Acres 字段执行计算。 由于选择处于活动状态,因此计算将仅应用于所选行。
- 右键单击 Area Acres 字段标题,然后选择计算几何。
计算几何窗口随即显示。 此工具能够测量要素形状的长度、面积、周长以及其他几何属性。
- 对于属性,选择面积(测地线)。
测地线测量值考虑了地球的曲率。
- 对于面积单位,选择国际英亩。
将坐标系字段留空。 由于进行测地线测量,因此所选坐标系并不重要。
- 单击确定。
在属性表中,查看 Area Acres 字段以确认所选值已被编辑。
已为所选行计算出新的面积值。 这些值是直接从地图上测量得出的,而不是通过其他属性计算而来的。 所有已选择的行均包含六位小数,而未选的行仅包含两位。
- 在属性表的工具栏上,单击清除按钮以清除选择。
- 关闭属性表。
使用新字段对地图进行符号化
最后,您将使用创建的新字段对地图进行符号化。
- 在内容窗格中,右键单击 NeepawaPropertyAssessment 并选择符号系统。
随即显示符号系统窗格。
- 对于主符号系统,选择分级色彩。
使用分级色彩对数量进行符号化,它仅适用于数值字段。
- 对于字段,选择 Assessed Value。 对于归一化,选择 Area Acres。
这些字段选择使用其价值除以面积来符号化每个宗地。
- 对于配色方案,选择黄色到红色。
在地图上,红色宗地的每英亩价值最高。
- 在快速访问工具栏中,单击保存工程按钮。
- 关闭符号系统窗格,然后关闭 ArcGIS Pro。
在 ArcGIS Pro 中不能转换字段类型,但是可以从现有字段中创建和计算具有新类型的新字段。 在本教程中,您学习了如何识别和选择字段类型,如何计算字段和几何,以及如何构建 Arcade 表达式以隔离部分字段值。 您创建了两个数值字段来替换两个文本字段。
您可以在教程库中找到更多教程。