[GIS] Finding distance of point along polyline using ArcGIS Desktop

arcgis-desktopdistancelinear-referencingpoint

We need to find the distance of a series of point along a given polyline.

We have a polyline dataset repsenting rivers in a catchment, broken up into river reaches (FID 1 through 35 for example).

We also have a point dataset of abstraction licenses within this catchment, some of which are situated along rivers – we can tell from the attribute table which these are as they are defined as groundwater or surface water licenses.

The two are not related – i.e. one has not been derived from the other.
Therefore not all the surface water licenses lie exactly over the river polylines, despite in 'reality' being on these rivers.

We need to be able to see which points are "upstream/downstream" of each other, and so wanted to have a list of which river reach the point is on, followed by the distance downstream from the start of this reach. We can then compare the downstream distances of two point to see which is upstream and which is downstream – the desired outcome!

To solve the problem of finding points on/very close to the rivers we were told to use a (small) buffer around each river reach and then to query the buffer to find the points within it.

This is fine but we are then left with an area (buffer), not a line, so we can't measure a distance along/within this.

Can we use a buffer as described to find out the points on/near the river reach in question and then, somehow (?!) query these points for distance along the river reach (polyline segment)?

Best Answer

This is a perfect task for the linear referencing capabilities in ArcGIS. See the help for Locating Features Along Routes and probe from there. The tools include the ability to turn a layer of points near a route (the river reaches) into "point event" descriptors, which name the route (the reach) and the distance from the beginning of the route. That's exactly what you want. Moreover, these tools allow for a user-settable "tolerance": the points do not have to lie exactly on the routes.

The workflow is:

  1. Make the river reaches "measurable." This sets up the ability to find distances along each reach.

  2. Represent the points as a point layer.

  3. Use the tool to create an "event table" for the points relative to the routes.

  4. Check your work, because you may need to reverse the directions of some of the river reaches, depending on how consistently they were digitized.

Related Question