Assign Streets To Points (Geocoding)

Summary

Finds the best street feature candidate for a point using address information, such as house numbers and street names, as well as distance. 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.

  • 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.

  • 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 the Assign Streets To Points tool to get optimized street assignments.

  • For fully optimized matching, ensure that the city, state, country code, and language code fields are mapped for the Point Field Mapping and Street Field Mapping parameter values. For partially optimized matching, ensure that the country code and language code fields are mapped or specify the country in the Country or Region parameter and the language in the Language Code parameter.

  • For improved quality, ensure that the house number and street name fields in the input point and street feature classes are specified for the Point Field Mapping and Street Field Mapping parameter values.

  • To help with routing workflows, the output provides an indicator of the side of the street where the point is located. 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 for 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 parameter values were linked or matched to the Street Features parameter 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_Enhanced_AddNum—All street address components and the house number 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.

    • Street_Distance—The distance in meters from the input point to the closest location on the linked street.

  • 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.
  • City—The city associated with an address, such as Redlands in 380 New York St., Redlands, Ca.
  • State—The state associated with an address, such as Ca in 380 New York St., Redlands, Ca.
  • Country Code—The three-character code for country, such as CAN for Canada.
  • Language Code—The three-character language code representing the language of the address, such as ENG for English.
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, city, state, country code, and language code 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.
  • Left City—A value representing the city associated with the address on the left side of the street.
  • Right City—A value representing the city associated with the address on the right side of the street.
  • Left State—A value representing the state associated with the address on the left side of the street.
  • Right State—A value representing the state associated with the address on the right side of the street.
  • Country Code—A value representing the three-character code for country, such as CAN for Canada.
  • Language Code—A value representing the three-character language code of the address, such as ENG for English.
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 100 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
Country or Region
(Optional)

Specifies where country-specific logic will be applied to the input data for assigning street segment attributes to point features.

The default is the regional setting of the operating system. It can be specified using the <As defined in data> option and mapping a value from the Input Point Features and Street Features parameters in both the Point Field Mapping and Street Field Mapping parameters, or it can be applied to the entire dataset by specifying a country option.

  • <As defined in data>The three-character country code value defined in the reference data for each feature will be used.
  • American SamoaAmerican Samoa
  • AustraliaAustralia
  • AustriaAustria
  • BelgiumBelgium
  • CanadaCanada
  • Switzerland Switzerland
  • CzechiaCzechia
  • GermanyGermany
  • SpainSpain
  • EstoniaEstonia
  • FranceFrance
  • Great BritainGreat Britain
  • GuamGuam
  • IndiaIndia
  • IsraelIsrael
  • ItalyItaly
  • JapanJapan
  • South KoreaSouth Korea
  • Lithuania Lithuania
  • LatviaLatvia
  • Northern Mariana IslandsNorthern Mariana Islands
  • Netherlands Netherlands
  • NorwayNorway
  • Puerto RicoPuerto Rico
  • SwedenSweden
  • U.S. Virgin IslandsU.S. Virgin Islands
  • United StatesUnited States
  • Minor Outlying Islands of the United States Minor Outlying Islands of the United States
  • South AfricaSouth Africa
String
Language Code
(Optional)

Specifies where language-specific logic will be applied to the input data for assigning street segment attributes to point features.

The default is the regional setting of the operating system. It can be specified using the <As defined in data> option and mapping a value from the Input Point Features and Street Features parameters in the Point Field Mapping and Street Field Mapping parameters, or it can be applied to the entire dataset by specifying a language option.

  • <As defined in data>The three-character language code value defined in the reference data for each feature will be used.
  • BasqueBasque
  • CatalanCatalan
  • CzechCzech
  • Dutch Dutch
  • EnglishEnglish
  • EstonianEstonian
  • FrenchFrench
  • GermanGerman
  • GalicianGalician
  • HebrewHebrew
  • Italian Italian
  • Japanese Japanese
  • Korean Korean
  • LatvianLatvian
  • Lithuanian Lithuanian
  • NorwegianNorwegian
  • SpanishSpanish
  • SwedishSwedish
String

arcpy.geocoding.AssignStreetsToPoints(in_point_features, point_field_mapping, in_street_features, street_field_mapping, out_points, {street_fields}, {distance}, {output_geometry}, {country_code}, {language_code})
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.
  • CITY—The city associated with an address, such as Redlands in 380 New York St., Redlands, Ca.
  • STATE—The state associated with an address, such as Ca in 380 New York St., Redlands, Ca.
  • COUNTRY_CODE—The three-character code for country, such as CAN for Canada.
  • LANGUAGE_CODE—The three-character language code representing the language of the address, such as ENG for English.

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.
  • LEFT_CITY—A value representing the city associated with the address on the left side of the street.
  • RIGHT_CITY—A value representing the city associated with the address on the right side of the street.
  • LEFT_STATE—A value representing the state associated with the address on the left side of the street.
  • RIGHT_STATE—A value representing the state associated with the address on the right side of the street.
  • COUNTRY_CODE—A value representing the three-character code for country, such as CAN for Canada.
  • LANGUAGE_CODE—A value representing the three-character language code of the address, such as ENG for English.
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 100 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
country_code
(Optional)

Specifies where country-specific logic will be applied to the input data for assigning street segment attributes to point features.

It can be specified using the AS_DEFINED_IN_DATA option and mapping a value from in_point_features and in_street_features parameters in both point_field_mapping and street_field_mapping parameters, or it can be applied to the entire dataset by specifying the three-character country code name.

  • AS_DEFINED_IN_DATAThe three-character country code value defined in the reference data for each feature will be used.
  • ASMAmerican Samoa
  • AUSAustralia
  • AUTAustria
  • BELBelgium
  • CANCanada
  • CHE Switzerland
  • CZECzechia
  • DEUGermany
  • ESPSpain
  • ESTEstonia
  • FRAFrance
  • GBRGreat Britain
  • GUMGuam
  • INDIndia
  • ISR Israel
  • ITAItaly
  • JPNJapan
  • KORSouth Korea
  • LTU Lithuania
  • LVALatvia
  • MNPNorthern Mariana Islands
  • NLDNetherlands
  • NORNorway
  • PRIPuerto Rico
  • SWESweden
  • VIRU.S. Virgin Islands
  • USAUnited States
  • UMI Minor Outlying Islands of the United States
  • ZAFSouth Africa
String
language_code
(Optional)

Specifies where language-specific logic will be applied to the input data for assigning street segment attributes to point features.

It can be specified using the AS_DEFINED_IN_DATA option and mapping a value from in_point_features and in_street_features parameters in both the point_field_mapping and street_field_mapping parameters, or it can be applied to the entire dataset by specifying a language using the three-character language code.

  • AS_DEFINED_IN_DATAThe three-character language code value defined in the reference data for each feature will be used.
  • BAQBasque
  • CATCatalan
  • CZECzech
  • DUT Dutch
  • ENGEnglish
  • ESTEstonian
  • FREFrench
  • GERGerman
  • GLGGalician
  • HEBHebrew
  • ITA Italian
  • JPN Japanese
  • KOR Korean
  • LIT Lithuanian
  • LAVLatvian
  • NORNorwegian
  • SPASpanish
  • SWESwedish
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"
)