Locate Features Along Routes (Linear Referencing)

Summary

Computes the intersection of input features (point, line, or polygon) and route features and writes the route and measure information to a new event table.

Usage

  • The output table can be a dBASE file or a geodatabase table.

  • The event type must be Point when the Input Features are points and must be Line when the input features are lines or polygons.

  • The best results will be achieved when the input features and the target routes closely overlay.

    Caution:

    Using a large search radius or cluster tolerance to overcome discrepancies between the input features and target routes can produce unexpected results.

  • To reduce the number of input features that will be processed by this tool, you can input layers that have selections.

  • The output table can be displayed in a map using the Make Route Event Layer tool.

Syntax

arcpy.lr.LocateFeaturesAlongRoutes(in_features, in_routes, route_id_field, radius_or_tolerance, out_table, out_event_properties, {route_locations}, {distance_field}, {zero_length_events}, {in_fields}, {m_direction_offsetting})
ParameterExplanationData Type
in_features

The input point, line, or polygon features.

Feature Layer
in_routes

The routes with which the input features will be intersected.

Feature Layer
route_id_field

The field containing values that uniquely identify each route. This field can be numeric or character.

Field
radius_or_tolerance

If the input features are points, the search radius is a numeric value defining how far around each point a search will be done to find a target route.

If the input features are lines, the search tolerance is really a cluster tolerance, which is a numeric value representing the maximum tolerated distance between the input lines and the target routes.

If the input features are polygons, this parameter is ignored and no search radius is used.

Linear Unit
out_table

The table to be created.

Table
out_event_properties

Parameter consisting of the route location fields and the type of events that will be written to the output event table.

  • Route Identifier Field—The field that will contain values that indicate the route on which each event is located.
  • Event Type—The type of events the output event table will contain (POINT or LINE).
    • POINT—Point events occur at a precise location along a route. Only a single measure field must be specified.
    • LINE—Line events define a portion of a route. Both from- and to-measure fields must be specified.
  • From-Measure Field—A field that will contain measure values. Required when the event type is POINT or LINE. Note when the Event Type is POINT, the label for this parameter becomes Measure Field.
  • To-Measure Field—A field that will contain measure values. Required when the event type is LINE.
Route Measure Event Properties
route_locations
(Optional)

When locating points along routes, it is possible that more than one route may be within the search radius of any given point. This parameter is ignored when locating lines or polygons along routes.

  • FIRSTOnly the closest route location will be written to the output event table. This is the default.
  • ALLEvery route location (within the search radius) will be written to the output event table.
Boolean
distance_field
(Optional)

Specifies whether a field named DISTANCE will be added to the output event table. The values in this field are in the units of the specified search radius. This parameter is ignored when locating lines or polygons along routes.

  • DISTANCEA field containing the point-to-route distance will be added to the output event table. This is the default.
  • NO_DISTANCEA field containing the point-to-route distance will not be added to the output event table.
Boolean
zero_length_events
(Optional)

When locating polygons along routes, it is possible that events can be created where the from-measure is equal to the to-measure. This parameter is ignored when locating points or lines along routes.

  • ZEROZero-length line events will be written to the output event table. This is the default.
  • NO_ZEROZero-length line events will not be written to the output event table.
Boolean
in_fields
(Optional)

Specifies whether the output event table will contain route location fields plus all the attributes from the input features.

  • FIELDSThe output event table will contain route location fields plus all the attributes from the input features. This is the default.
  • NO_FIELDSThe output event table will only contain route location fields plus the ObjectID field from the input features.
Boolean
m_direction_offsetting
(Optional)

Specifies whether the offset distance calculated should be based on the M direction or the digitized direction. Distances are included in the output event table if distance_field="DISTANCE".

  • M_DIRECTONThe distance values in the output event table will be calculated based on the routes' M direction. Input features to the left of the M direction of the route will be assigned a positive offset (+), and features to the right of the M direction will be assigned a negative offset value (-). This is the default.
  • NO_M_DIRECTIONThe distance values in the output event table will be calculated based on the routes' digitized direction. Input features to the left of the digitized direction of the route will be assigned a negative (-), offset and features to the right of the digitized direction will be assigned a positive offset value (+).
Boolean

Code sample

LocateFeaturesAlongRoutes example 1 (Python window)

The following Python script demonstrates how to use the LocateFeaturesAlongRoutes function in the Python window

import arcpy
arcpy.env.workspace = "C:/Data"
arcpy.LocateFeaturesAlongRoutes_lr("rail_segments.shp", "rail_routes.shp", 
                                   "rkey", "0.5 Feet", "locate_lines", 
                                   "rkey LINE fmp tmp")
LocateFeaturesAlongRoutes example 2 (stand-alone script)

The following Python script demonstrates how to use the LocateFeaturesAlongRoutes function in a stand-alone Python script.

# Name: LocateFeaturesAlongRoutes_Example2.py
# Description: Locate shapefile lines along shapefile routes.

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = "C:/Data"

# Set local variables
feats = "rail_segments.shp"
rts = "rail_routes.shp"
rid = "rkey"
tol = "0.5 Feet"
tbl = "locate_lines"
props = "rkey LINE fmp tmp" 

# Execute LocateFeaturesAlongRoutes
arcpy.LocateFeaturesAlongRoutes_lr(feats, rts, rid, tol, tbl, props)
LocateFeaturesAlongRoutes example 3 (stand-alone script)

The following Python script demonstrates how to use the LocateFeaturesAlongRoutes function in a stand-alone Python script using file geodatabase data.

# Name: LocateFeaturesAlongRoutes_Example3.py
# Description: Locate personal geodatabase points along file geodatabase routes.

# Import system modules 
import arcpy

# Set workspace
arcpy.env.workspace = "C:/Data/Pitt.gdb"

# Set local variables
feats = "rail/crossings"  # crossings is in the rail feature dataset 
rts = "rail/routes"  # routes is in the rail feature dataset
rid = "rkey"
rad = "10 Feet"
tbl = "locate_points"
props = "rkey POINT mp" 

# Execute LocateFeaturesAlongRoutes
arcpy.LocateFeaturesAlongRoutes_lr(feats, rts, rid, rad, tbl, props)
LocateFeaturesAlongRoutes example 4 (stand-alone script)

The following Python script demonstrates how to use the LocateFeaturesAlongRoutes function in a stand-alone Python script using enterprise geodatabase data.

# Name: LocateFeaturesAlongRoutes_Example4.py
# Description:  Locate enterprise geodatabase polygons along enterprise geodatabase routes.

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = "C:/MyProject/myConn.sde"

# Set local variables
feats = arcpy.ValidateTableName("counties", wkspc)  # standalone feature class
rts = arcpy.ValidateTableName("rail_routes", wkspc)  # standalone feature class
rid = "rkey"
tbl = "locate_polys"
props = "rkey LINE fmp tmp" 

# Execute LocateFeaturesAlongRoutes
arcpy.LocateFeaturesAlongRoutes_lr(feats, rts, rid, "#", tbl, props, "#", "#", 
                                   "NO_ZERO", "M_DIRECTON")

Licensing information

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

Related topics