描述
对表或要素类中的地址信息进行标准化。
将参考数据中的地址组件标准化为多个地址字段,是在 ArcGIS Desktop 10.0 之前版本中构建地址定位器之前的必要步骤。现在我们不再需要此步骤,因为标准化过程会在构建地址定位器时发生,无论地址组件是存储在单个字段中还是分割到多个字段中均是如此。在 ArcGIS Desktop 10.0 和更高版本中不推荐对参考数据进行标准化和对缩写和时间段进行归一化,原因是现在地理编码过程中已完成了上述操作,并且上述操作不会使地理编码的性能或质量再有任何提升。
地址通常显示为不同的形式,可能包含各种单词缩写,例如,W 是 WEST 的缩写,而 ST 是 STREET 的缩写。根据所选的地址样式,可将地址拆分为多个部分,例如门牌号、前缀方向、前缀类型、街道名称、后缀类型、单元类型和单元编号。地址样式用于指定地址的组成部分并确定如何对这些组成部分进行排序和标准化;然而,我们无法保证要如何基于地址定位器样式和输入数据中的逻辑对数据进行标准化。某些地址样式可能使用整个单词,而不使用单词的缩写,具体取决于应用程序。
要进行标准化的输入地址可以存储在单个字段中。如果地址信息已被分开存储在输入要素类或表的多个字段中,则可使用此工具将这些字段动态串连在一起并对该信息进行标准化处理。
插图
使用方法
输入地址数据可以是表或要素类,这些表或要素类包含可根据地址定位器样式进行标准化的各种地址属性。
要进行标准化的输入地址可以存储在单个字段(例如,自定义地址表中的地址字段)中。然后,可选择该字段作为此工具中的输入地址字段。
如果地址信息已被分开存储在输入要素类或表的多个字段(可在常见的参考街道或点地址数据中找到)中,则在标准化过程中,会将这些字段动态串连在一起并对该信息进行标准化处理。按照完整地址的构成顺序来指定这些字段。
注:
使用处理街道地址的地址定位器样式时,您可能需要指定一个门牌号字段或任意类型的数值字段作为输入地址字段并指定一些其他地址属性,这样,便可正确地对串连的地址进行标准化。以输入字符串 17 Mile Road 为例,如果没有给出门牌号,Mile(而不是 17 Mile)可能被解释为一个街道名。如果输入地址为 101 17 Mile Road,则可避免发生这种混淆。ObjectID 字段是可用于此目的的数值字段,如上图所示。
可将标准化结果保存在以下两个输出选项中:
- 包含输入表中行副本或要素副本以及标准化地址字段的输出表或要素类。这是默认设置。
- 只包含标准化地址字段和一个用于连接输入表或要素类的关系类的输出表。
语法
arcpy.geocoding.StandardizeAddresses(in_address_data, in_input_address_fields, in_address_locator_style, in_output_address_fields, out_address_data, {in_relationship_type})
参数 | 说明 | 数据类型 |
in_address_data | 包含要进行标准化的地址信息的表或要素类。 | Table View |
in_input_address_fields [in_input_address_field,...] | 输入表或要素类中的一组字段,这些字段串连起来便可构成要进行标准化的地址。 | String |
in_address_locator_style | 要用于对输入表或要素类中的地址信息进行标准化的地址定位器样式。 | Address Locator Style |
in_output_address_fields [in_output_address_fields,...] | 要包含在输出表或要素类中的一组标准化地址字段。 | String |
out_address_data | 创建要用来包含标准化地址字段的输出表或要素类。 | Dataset |
in_relationship_type (可选) | 指示是创建静态输出数据集还是动态输出数据集。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 StandardizeAddresses 函数。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/geocoding/atlanta.gdb"
# Set local variables:
input_feature_class = "streets"
address_fields = "ID;FULL_STREET_NAME"
locator_style = "US Address - Dual Ranges"
standardized_fields = "PreDir;PreType;StreetName;SufType;SufDir"
standardized_feature_class = "StandardizedStreet"
arcpy.StandardizeAddresses_geocoding(input_feature_class, address_fields, locator_style, standardized_fields, standardized_feature_class, "Static")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是