将地址分割为组件 (地理编码)

摘要

将街道地址信息分割为地址组件,并创建一个表或要素类,将其他组件添加为唯一的字段。

插图

将地址分割为组件工具图示

使用情况

  • 输入地址数据可以是包含街道地址属性的表或要素类,这些属性可以被解析或分割为单独的街道地址组件。

  • 可以将要分割的输入街道地址存储在单个字段中,例如 StreetNameAddress,您将在工具中选择该字段作为输入地址字段。

  • 输入街道地址也可以存储在多个字段中,例如门牌号和单元信息可以在单独的字段中。 在这种情况下,这些字段按照它们被选择的顺序动态连接起来,然后,街道地址将被分割为组件。

  • 请勿在输入街道地址中包含区域信息,例如城市、社区、子区域和邮政编码。 这些组件在处理过程中不会进行解析,如果将其包含在内,可能导致错误的结果。

  • 确保异常文件参数值对于将具有自定义解析模式的每条记录都包含一行。 设置文件的格式以使其包含输入地址字段(如果有多个字段,将这些值连接成单个字符串),后跟预期的分割地址组件。 分割地址组件的字段名称必须与以下内容匹配:

    • AddNum
    • StPreDir
    • StPreType
    • StName
    • StType
    • StDir
    • UnitType
    • UnitName
    • BuildingType
    • BuildingUnit
    • LevelType
    • LevelName
    注:

    并非所有字段都是必填字段;仅在分割为组件时基于自定义地址所必需的字段才是必填字段。

    注:

    有关详细信息,请下载例外情况文件的示例

    文件中的第一个地址 123 South Beach Avenue 通常会分割为以下字段:

    AddNumStPreDirStNameStType

    123

    South

    Beach

    Avenue

    但是,例外情况文件将创建以下自定义分割:

    AddNumStNameStType

    123

    South Beach

    Avenue

  • 该工具支持并行处理。 如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,尤其是在较大数据集中分割地址时。 如果未设置并行处理因子环境(默认设置),则并行处理会根据表的大小和逻辑核心的数量进行缩放。 对于仅使用一个进程的少于 50 行的表,该工具可将使用的进程数扩展到计算机上的逻辑处理器数,从而可以处理多行的表。 将环境设置为 0 将禁用并行处理。 在 1 到 99 之间指定一个因子时,工具将通过应用公式(并行处理因子 / 100 * 逻辑内核数)确定要使用的逻辑内核的百分比,其结果将四舍五入到最近的整数值。 如果此公式的结果是 0 或 1,则将不启用并行处理。

  • 您可以在分割地址审查窗格中查看和更新此工具生成的输出文件。 此过程还允许您生成或添加更新的异常文件,将来使用此工具拆分数据时可在异常文件参数中使用该文件。

参数

标注说明数据类型
国家/地区

指定用于将地址分割为组件的国家/地区地址结构。

默认值为操作系统的区域设置。

  • 澳大利亚将使用澳大利亚的地址结构。
  • 奥地利将使用奥地利的地址结构。
  • 比利时将使用比利时的地址结构。
  • 加拿大将使用加拿大的地址结构。
  • 瑞士将使用瑞士的地址结构。
  • 捷克将使用捷克的地址结构。
  • 德国将使用德国的地址结构。
  • 西班牙将使用西班牙的地址结构。
  • 爱沙尼亚将使用爱沙尼亚的地址结构。
  • 法国将使用法国的地址结构。
  • 大不列颠将使用大不列颠的地址结构。
  • 以色列将使用以色列的地址结构。
  • 意大利将使用意大利的地址结构。
  • 立陶宛将使用立陶宛的地址结构。
  • 拉脱维亚将使用拉脱维亚的地址结构。
  • 荷兰将使用荷兰的地址结构。
  • 波多黎各将使用波多黎各的地址结构。
  • 瑞典将使用瑞典的地址结构。
  • 美国将使用美国的地址结构。
  • 南非将使用南非的地址结构。
String
输入地址数据

包含街道地址信息的表或要素类,这些信息将被分割为单独的地址组件。

不支持区域信息,例如城市、社区、子区域和邮政编码。

Table View
输入地址字段

输入表或要素类中的一个或多个字段,连接后将组成要分割的街道地址。 不支持区域信息,例如城市、社区、子区域和邮政编码。

字段的选择顺序即是字段的连接顺序。

String
输出地址数据

将包含已分割街道地址数据的输出要素类或表。

Dataset
例外情况文件
(可选)

包含街道解析例外情况的表。

该表可以采用任何受支持的表格式。

Table View

arcpy.geocoding.SplitAddressIntoComponents(country_code, in_address_data, in_address_fields, out_address_data, {in_exceptions})
名称说明数据类型
country_code

指定用于将地址分割为组件的国家/地区地址结构。

默认值为操作系统的区域设置。

  • AUS将使用澳大利亚的地址结构。
  • AUT将使用奥地利的地址结构。
  • BEL将使用比利时的地址结构。
  • CAN将使用加拿大的地址结构。
  • CHE将使用瑞士的地址结构。
  • CZE将使用捷克的地址结构。
  • DEU将使用德国的地址结构。
  • ESP将使用西班牙的地址结构。
  • EST将使用爱沙尼亚的地址结构。
  • FRA将使用法国的地址结构。
  • GBR将使用大不列颠的地址结构。
  • ISR将使用以色列的地址结构。
  • ITA将使用意大利的地址结构。
  • LTU将使用立陶宛的地址结构。
  • LVA将使用拉脱维亚的地址结构。
  • NLD将使用荷兰的地址结构。
  • PRI将使用波多黎各的地址结构。
  • SWE将使用瑞典的地址结构。
  • USA将使用美国的地址结构。
  • ZAF将使用南非的地址结构。
String
in_address_data

包含街道地址信息的表或要素类,这些信息将被分割为单独的地址组件。

不支持区域信息,例如城市、社区、子区域和邮政编码。

Table View
in_address_fields
[in_address_fields,...]

输入表或要素类中的一个或多个字段,连接后将组成要分割的街道地址。 不支持区域信息,例如城市、社区、子区域和邮政编码。

字段的选择顺序即是字段的连接顺序。

String
out_address_data

将包含已分割街道地址数据的输出要素类或表。

Dataset
in_exceptions
(可选)

包含街道解析例外情况的表。

该表可以采用任何受支持的表格式。

Table View

代码示例

SplitAddressIntoComponents 示例 1(Python 窗口)

将具有单字段地址字符串的表分割为单独的组件。

import arcpy

atlanta_addresses = r"C:\AtlantaAddresses.csv"
arcpy.geocoding.SplitAddressIntoComponents("USA", atlanta_addresses, "Address", 
                                           r"C:\MySplitAddresses.csv", 
                                           "ExceptionsFile.csv")