25

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)?

3
  • do you have a field on your polyline featureclass containing the downstream reach FID? Feb 23, 2011 at 22:33
  • do you have to do this in arcmap or can you use arcobjects?
    – Steve
    Feb 23, 2011 at 23:26
  • RivEX can generate this type of output, look at the tools for snapping and linking.
    – Hornbydd
    Oct 23, 2013 at 23:23

5 Answers 5

23

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.

5
  • +1. They should also look at making the rivers into a geometric network to use tools that will get upstream /downstream features, paths etc. Feb 24, 2011 at 12:17
  • Ditto. ArcGIS can do all the heavy lifting of this interpolation problem en.wikipedia.org/wiki/Interpolation Oct 18, 2011 at 1:07
  • 1
    It should be noted that you need to have the point dataset and your route dataset in the same coordinate system. The Locate Features Along Routes tool would not work properly for me until I had done a re-project of my line feature to the same coord system as my point file, and then I created a route event out of said re-projected line feature.
    – giski
    Oct 23, 2013 at 21:05
  • 1
    @Matiss Thank you for that reminder. Despite "on-the-fly" reprojection capabilities in today's GISes, it is still the case that the only reliable way to conduct your analyses is to make sure all the input datasets are physically stored in a common (and appropriate) coordinate system.
    – whuber
    Oct 23, 2013 at 21:46
  • @whuber you always help.
    – Learner
    Aug 27, 2015 at 6:25
3

I've never tried this but you might consider treating this as a reverse geocoding problem. You would do this by to creating an address locator for you rivers, treating the measure as the From and To address.

1

Use Near (Analysis)

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00080000001q000000.htm

enter image description here

1
  • 3
    I don't think this will give the distance downstream/upstream along the reach. Feb 23, 2011 at 22:27
1

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/QueryPointAndDistance_Method/002m00000116000000/

The attribute DistanceAlongCurve will give you what you search. But only for one of the river.

1

http://resources.arcgis.com/en/help/main/10.1/index.html#//004800000006000000

This tool takes in network ( You have to have Network Analyst) and points. After applying tool you end up having t value (value between 0 and 1 ) as PosAlong. Values are stored in input point table. Since 0 is start point of the polyline and 1 is end point you need to multiply it with polyline length. You also have SourceOID which is polyline id in same table.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.