Assign Streets To Points (Geocoding)

Summary

Uses address information, such as house numbers and street names, as well as distance, to find the best street feature candidate for a point. Address information is prioritized over distance.

This tool can be used to link point addresses to street data. The link is established by comparing address information of the point and street features as well as the distance between them. The best candidate has the most similarity between the names but is also expected to be in close proximity. Once the link is established, the street object ID, side of street, and a new point near the street can be produced for the point address. Additional attributes can also be transferred from the street to the point address. Use cases for this tool include appending attributes from streets to point addresses or vice versa; generating points that are next to the same named street, which can then be used as a routing location; or producing fishbone diagrams illustrating the relationship between point addresses and their associated street feature.

For more information, see Assign streets to points based on street names and proximity.

Illustration

Assign Streets To Points tool illustration
The Assign Streets To Points tool links point addresses to street features by comparing the street names of the point and street features, as well as the distance between them.

Usage

  • This tool will accept singlepart point and line feature classes as input.

  • This tool can help assign a join ID for alternate names from the streets reference data to the point reference data so that both datasets have the same join ID to link to the alternate street name table.

  • This tool performs best when the input point and line feature classes are stored in a geodatabase and the output is saved to a geodatabase.

  • For the Point Field Mapping and Street Field Mapping parameter values, use the Split Address Into Components tool on both datasets, and use the output results from that tool for the Input Point Features and Street Features parameter values for Assign Streets To Points.

  • For improved quality, ensure that the street names and street address components are spelled and formatted consistently across the input point and street feature classes.

  • Use this tool to save the coordinates of the corresponding point on the street to work with the Preferred Location property for the locator when the input point feature geometry is on the rooftop or parcel centroid.

  • To help with routing workflows, the output provides an indicator of the side of the street the point is located on. Using this indicator when building a locator will enable the locator to display results on the correct side of the street.

  • The output is a copy of all features and attributes from the input point features with attributes from the fields specified with the Street Field(s) parameter value appended to the point from the linked street. This can include a street ID field from the input streets feature class.

  • The output will include the following fields by default:

    • Street_ObjectID—The object ID of the street segment from the Street Features parameter value linked to the input points.
      Note:

      If the input streets feature class contains a field with a street ID, select this field as a Street Field(s) parameter value that can be used when reviewing the results.

    • InputPoint_X—The x-coordinate of the Input Point Features parameter value in the spatial reference of the point feature class.
    • InputPoint_Y—The y-coordinate of the Input Point Features parameter value in the spatial reference of the point feature class.
    • Street_X—The x-coordinate of the input point location on the linked street for the Street Features parameter value in the spatial reference of the point feature class.
    • Street_Y—The y-coordinate of the input point location on the linked street for the Street Features parameter value in the spatial reference of the point feature class.
    • Street_Side—The side of the street where the input point resides relative to the direction of feature digitization. This value is not relative to the direction of travel along the street. This attribute will have one of the following values:
      • L—The point is linked to the left side of the street.
      • R—The point is linked to the right side of the street.
      • NULL—The point is not linked to a street.
    • Street_MatchReason—Indicates how the Input Point Features values were linked or matched to the Street Features values after running the tool. The attribute can have one of the following values:
      • Match_FullStAddr_AddNum—All street address components were used to match the point to the street, and the house number was within the house number range of the linked street.
      • Match_FullStAddr—All street address components were used to match the point to the street.
      • Match_StName_AddNum—Only the street name component was used to link the point to the street, and the house number was within the house number range of the linked street.
      • Match_StName—Only the street name component was used to link the point to the street.
      • Match_Distance_AddNum—Distance was used to link the point to the street because the street name components between the points and streets did not match, but the house number was within the house number range of the linked street.
      • Match_Distance—Distance was used to link the point to the street because the street name values between the points and streets did not match.
      • Unmatched—The point was not matched to the street based on distance or street address components.
        Note:

        When the point is not matched to the street, the default output fields and selected street fields will have NULL attributes, but the InputPoint_X and InputPoint_Y fields will be populated with the coordinates of the input point feature class.

  • Review the results from the Output Points parameter value when the value for the Street_MatchReason field is Match_Distance_AddNum, Match_Distance, or Unmatched. Visualizing how the points are linked to the street in the map makes reviewing the results easier.

  • This tool supports parallel processing. When the Parallel Processing Factor environment is not set (the default), parallel processing is scaled based on the size of the table and number of logical cores. Only one process will be used for datasets with fewer than 50 rows.

Parameters

LabelExplanationData Type
Input Point Features

The input point feature class or layer.

Feature Layer
Point Field Mapping

The mapping of street address component fields from the point features that will be used to compare the full street name to the full street name in the Street Features parameter value to calculate the street segment that the point is linked to.

To select address components from the Input Point Features parameter value that will be used to link the point to the street, do the following:

  • Select the address component from the drop-down list in the Field Name column.
  • Under the Data Field column, select the field from the point feature class that contains the corresponding address component from the drop-down list.

The available address component fields are as follows:

  • Street Prefix Direction—A direction that precedes the street name, such as the W in W. Redlands Blvd.
  • Street Prefix Type—A street type that precedes the street name, such as Avenue in Avenue B.
  • Street Name—The name of the street, such as Cherry in Cherry Rd.
  • Street Type—A street type that follows the street name, such as St. in New York St.
  • Street Direction—A direction that follows the street name, such as NW in Bridge St. NW.
  • Street Full Name—The full street name of the address, such as S. Orange St.
  • House Number—The house number associated with an address, such as 380 in 380 New York St.
Value Table
Street Features

The input street feature class or layer from which attributes will be assigned to the Input Point Features parameter value.

Feature Layer
Street Field Mapping

The mapping of street address component fields from the street features that will be used to compare the full street name to the full street name in the Input Point Features parameter value to calculate the street segment that point is linked to.

To select address components from the Street Features parameter value that will be used to link the point to the street, do the following :

  • Select the address component from the drop-down list in the Field Name column.
  • Under the Data Field column, select the field from the street feature class that contains the corresponding address component from the drop-down list.

Select fields from the street feature class in the Data Field drop-down list that correspond to the street address component listed in the Field Name column. The available address component fields are as follows:

  • Street Prefix Direction—A direction that precedes the street name, such as the W in W. Redlands Blvd.
  • Street Prefix Type—A street type that precedes the street name, such as Avenue in Avenue B.
  • Street Name—The name of the street, such as Cherry in Cherry Rd.
  • Street Type—A street type that follows the street name, such as St. in New York St.
  • Street Direction—A direction that follows the street name, such as NW in Bridge St. NW.
  • Street Full Name—The full street name of the address, such as S. Orange St.
  • Left House Number From—A value representing the beginning number of a house number range on the left side of the street.
  • Left House Number To—A value representing the ending number of a house number range on the left side of the street.
  • Right House Number From—A value representing the beginning number of a house number range on the right side of the street.
  • Right House Number To—A value representing the ending number of a house number range on the right side of the street.
Value Table
Output Points

The output point feature class containing the street fields assigned to the point.

Feature Class
Street Field(s)
(Optional)

The fields from the Street Features parameter value that will be assigned to the Output Points parameter value. Select fields from the input street features that contain attributes to assign to the linked point features, for example, a field that contains a street ID value. The selected fields will be added to the Output Points parameter value.

Field
Distance
(Optional)

The distance that will be used to find the nearest street feature to the point feature. The higher the distance limit, the more time it will take the tool to run, but the quality of the matches improves. The default value is 70 meters.

Double
Output Geometry
(Optional)

Specifies the geometry that will be included in the output point feature class.

  • Input Point GeometryGeometry for the original input point feature class will be included in the output point feature class.
  • Street Point GeometryGeometry for the street location of the linked point will be included in the output point feature class.
String

arcpy.geocoding.AssignStreetsToPoints(in_point_features, point_field_mapping, in_street_features, street_field_mapping, out_points, {street_fields}, {distance}, {output_geometry})
NameExplanationData Type
in_point_features

The input point feature class or layer.

Feature Layer
point_field_mapping
[point_field_mapping,...]

The mapping of street address component fields from the point features that will be used to compare the full street name to the full street name in the in_street_features parameter value to calculate the street segment that the point is linked to.

Provide the street address component field names and data field names from the in_point_features parameter value using the available address components as follows:

  • STREET_PREFIX_DIR—A direction that precedes the street name, such as the W in W. Redlands Blvd.
  • STREET_PREFIX_TYPE—A street type that precedes the street name, such as Avenue in Avenue B.
  • STREET_NAME—The name of the street, such as Cherry in Cherry Rd.
  • STREET_SUFFIX_TYPE—A street type that follows the street name, such as St. in New York St.
  • STREET_SUFFIX_DIR—A direction that follows the street name, such as NW in Bridge St. NW.
  • STREET_FULL_NAME—The full street name of the address, such as S. Orange St.
  • HOUSE_NUMBER—The house number associated with an address, such as 380 in 380 New York St.

Value Table
in_street_features

The input street feature class or layer from which attributes will be assigned to the in_point_features parameter value.

Feature Layer
street_field_mapping
[street_field_mapping,...]

The mapping of street address component fields from the street features that will be used to compare the full street name to the full street name in the in_point_features parameter value to calculate the street segment that point is linked to.

Provide the street address component field names and data field names from the in_street_features parameter value using the available address components as follows:

  • STREET_PREFIX_DIR—A direction that precedes the street name, such as the W in W. Redlands Blvd.
  • STREET_PREFIX_TYPE—A street type that precedes the street name, such as Avenue in Avenue B.
  • STREET_NAME—The name of the street, such as Cherry in Cherry Rd.
  • STREET_SUFFIX_TYPE—A street type that follows the street name, such as St. in New York St.
  • STREET_SUFFIX_DIR—A direction that follows the street name, such as NW in Bridge St. NW.
  • STREET_FULL_NAME—The full street name of the address, such as S. Orange St.
  • HOUSE_NUMBER_FROM_LEFT—A value representing the beginning number of a house number range on the left side of the street.
  • HOUSE_NUMBER_TO_LEFT—A value representing the ending number of a house number range on the left side of the street.
  • HOUSE_NUMBER_FROM_RIGHT—A value representing the beginning number of a house number range on the right side of the street.
  • HOUSE_NUMBER_TO_RIGHT—A value representing the ending number of a house number range on the right side of the street.
Value Table
out_points

The output point feature class containing the street fields assigned to the point.

Feature Class
street_fields
[street_fields,...]
(Optional)

The fields from the in_street_features parameter value that will be assigned to the out_points parameter value. Specify fields from the input street features that contain attributes to assign to the linked point features, for example, a field that contains a street ID value. The fields will be added to the out_points parameter value.

Field
distance
(Optional)

The distance that will be used to find the nearest street feature to the point feature. The higher the distance limit, the more time it will take the tool to run, but the quality of the matches improves. The default value is 70 meters.

Double
output_geometry
(Optional)

Specifies the geometry that will be included in the output point feature class.

  • INPUT_POINT_GEOMETRYGeometry for the original input point feature class will be included in the output point feature class.
  • STREET_POINT_GEOMETRYGeometry for the street location of the linked point will be included in the output point feature class.
String

Code sample

AssignStreetsToPoints example (stand-alone script)

The following Python script demonstrates how to use the AssignStreetsToPoints function.

import arcpy

# Point Address Data from Tutorial Data
in_point_features = r"C:\Data\SanMarcos.gdb\Address_Points"
point_field_mapping = "STREET_FULL_NAME ADDRESS"

# Street Address Data from Tutorial Data
in_street_features = r"C:\Data\SanMarcos.gdb\Address_Lines"
street_field_mapping = "HOUSE_NUMBER_FROM_LEFT L_ADDNUM_FROM;HOUSE_NUMBER_TO_LEFT L_ADDNUM_TO;HOUSE_NUMBER_FROM_RIGHT R_ADDNUM_FROM;HOUSE_NUMBER_TO_RIGHT R_ADDNUM_TO;STREET_PREFIX_DIR STPREDIR;STREET_NAME STNAME;STREET_SUFFIX_TYPE STSUFFIX;STREET_SUFFIX_DIR STPOSTDIR"

output_data_path = r"C:\Data\SanMarcos.gdb\Street_Points"

arcpy.geocoding.AssignStreetsToPoints(
    in_point_features,
    point_field_mapping,
    in_street_features,
    street_field_mapping,
    output_data_path,
    street_fields=None,
    distance=70,
    output_geometry="STREET_POINT_GEOMETRY"
)

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics