Skip to main content
Question

Rivers and weirs network analysis

  • August 18, 2026
  • 4 replies
  • 94 views

fme_flo
Participant
Forum|alt.badge.img+1

I want to calculate upstream and downstream distances along river polylines between barrier points.

 

I’ve got as far as generating a topologically correct river network divided at barrier locations, river intersections and junctions complete with network_id.

 

I’m stuck on the next steps! The main challenge is what to do upstream when a river branches out.

 

Any help would be greatly appreciated!

 

Process so far

 

4 replies

vadis
Contributor
Forum|alt.badge.img+14
  • Contributor
  • August 18, 2026

Hej!
It would be helpful with some more visual context and at which exact places you are struggling to achieve your task. I think you are on a good path to establish the principle, though! Just make sure you check linear integrity of dataset for topological breaks/faults before splits and ID setting for analysis.


fme_flo
Participant
Forum|alt.badge.img+1
  • Author
  • Participant
  • August 18, 2026

Hej :) ​@vadis 

Basically I am not sure what the next step is to calculate the distances between barriers up and down stream! I need a way of grouping together river sections between barrier points and calculating the total length. I want to include the total length of river between barriers, even where the river divides.

I think my process so far is successful in ensuring the network dataset is clean for analysis…!


vadis
Contributor
Forum|alt.badge.img+14
  • Contributor
  • August 18, 2026

Got it. 

There are a couple of approaches here:

I would begin with LengthCalculator of each individual distance between break points. If you need a total length of all segments, then just use StatisticsCalculator/Aggregator(Attributes to Sum:) and get one feature with total length.


But If you are after total accumulated branch lenghts, then you would need to establish flow direction (NetworkFlowOrientor) and aggregate lengths upstrem from the outlet by creating a logic of IDs to accummulate paths from the outlet all the way to last branches - sounds kind of complex task depending on dataset.

Another alternative is to use ShortestPathFinder or alternativly depending on dataset and given attributes you already established - NetworkCostCalculator. In this way you just feed outlet point and first point/line of each branch. Depending on FME version, you could hook this logic to loop through dataset and get the those wished aggregated lengths.

Hope that helps a bit to get going!

 


fme_flo
Participant
Forum|alt.badge.img+1
  • Author
  • Participant
  • August 18, 2026

@vadis thank you!

 

I think I’m trying to do what you describe as the ‘complex task’...!

 

Firstly I cannot get the NetworkFlowOrientor to work correctly. I have also tried ShortestPathFinder and NetworkCostCalculator but I just can’t seem to get them quite right.

 

I’m using FME 2026.1!