I have radio-tracking locations of semi-aquatic mammals. Now, I would like to calculate the distance between the consecutive locations using the river as the animals would swim (opposite to as the crow flies).

I have two different files: a) Polypoint layer with all the tracking locations b) Polygon layer with the rivers, streams and ponds (and some buffer around it)

These approaches seem not to work for me: Network analyst (which seems to be most likely the easiest way): no license to create layer The linear referencing tool to locate features on a route: My animals move once in a while a bit off the beaten water track, thus I added a buffer to the water bodies = polygon layer

I'm using ArcGIS Desktop 10.0.

2 Answers 2


You'll need river centreline and linear referencing to achieve this enter image description here If you have to repeat task multiple time, I'll post a script that fascilitate chainage computation without linear referencing

  • Thank you very much for your fast and quick answer. Unfortunately, the centreline does not seem to do the job properly as the rivers are getting large sometimes or pass through a lake where the animals move "horizontally" or the animals moved to a pond in the vicinity of the rivers. Thus I am not entirely happy with reducing the area (as polygon) to a line.
    – Irene
    Jul 17, 2014 at 8:55

I just would like you to know how I finally got around my problem: with the Network Analyst.

I first had all rivers and streams as polylines (just as one would do with the linear referencing). For lakes, where the rivers run through, I added horizontal lines so that the whole lake then was covered in a grid, connected with the river-polylines. For ponds or other waterbodies outside the river, I connected them also with polylines to the river. I then set up a Network Analyst layer, with distance as the only parameter.

I then took my radio tracking location excel file, copied the locations (x, y) at the end of the table (new colums: "End x" and "End y") and deleted the first of the "End x" and "End y" (move whole rows up). Thus I had the coordinates of a location and the consecutive location for each individual in one row. I then added the table twice to ArcGIS: Start.shp = with the original x and y. And End.shp with the coordinates "End x" and "End y". With that, I could create a new Route. I used the "Start.shp" as first stops and the "End.shp" as second stop. I then let it run in the NA and it seems to have worked rather nice. There are few locations behaving weird, so I might snap all locations to the network using the "NEAR" tool, but I guess it is fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.