Skip to main content
Solved

How to assign values to my points based on the network topology and stream direction?

  • December 5, 2023
  • 3 replies
  • 36 views

In my network I have multiple closures (Green Circles). Downstream from these closures I have risers (Blue Circles). I also have multiple boundaries (Red Polygons) which contain an x number of risers.

 

 

I need to calculate within each boundary which is the first riser that the cable hits after the closure. I need to mark these risers as value = 1 in each boundary as shown in illustration.

 

Ive got as far as using a shortest path finder to try navigate to each of my Risers from each of my Closures but without much success

 

Does anyone has any guidance on what method I can use to determine this?

Best answer by daveatsafe

Hi @jordan​,

I think the NetworkCostCalculator will be the key transformer for a solution. It can calculate the distances from a Closure point to each vertex on the lines and store these as measures on the lines. We can then overlay the Risers on the lines to transfer the distance to each Riser. Next, we overlay the Risers on the Boundaries to transfer the Boundary IDs. Finally, we Sort the Risers by distance, then Sample to keep only the closest Riser to each Closure in each Boundary.

I am attaching a partial workspace illustrating the process:

Screen Shot 2023-12-05 at 2.16.28 PM

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

3 replies

daveatsafe
Safer
Forum|alt.badge.img+19
  • Safer
  • Best Answer
  • December 5, 2023

Hi @jordan​,

I think the NetworkCostCalculator will be the key transformer for a solution. It can calculate the distances from a Closure point to each vertex on the lines and store these as measures on the lines. We can then overlay the Risers on the lines to transfer the distance to each Riser. Next, we overlay the Risers on the Boundaries to transfer the Boundary IDs. Finally, we Sort the Risers by distance, then Sample to keep only the closest Riser to each Closure in each Boundary.

I am attaching a partial workspace illustrating the process:

Screen Shot 2023-12-05 at 2.16.28 PM


  • Author
  • December 7, 2023

Hi @jordan​,

I think the NetworkCostCalculator will be the key transformer for a solution. It can calculate the distances from a Closure point to each vertex on the lines and store these as measures on the lines. We can then overlay the Risers on the lines to transfer the distance to each Riser. Next, we overlay the Risers on the Boundaries to transfer the Boundary IDs. Finally, we Sort the Risers by distance, then Sample to keep only the closest Riser to each Closure in each Boundary.

I am attaching a partial workspace illustrating the process:

Screen Shot 2023-12-05 at 2.16.28 PM

Hey Dave,

 

Thanks for this, its absolutely amazing!

 

With the guidance of your explanation and Template I've been able to stuck much further along in the process 🙂 Hoping you can also help me out here again.

 

In the attached diagram Ive outlined a few different possibilities present in my dataset. The one I'm stuck on is when we have multiple Taps within the same boundary, along different branches (Left boundary on diagram). Using the sorter on the _distance is only yielding me a single feature in these branching scenarios.

 

Any tips would be greatly appreciated!

 

 Edit: For clarification, Taps as per this diagram is referring to the Risers from the above example, same things.


daveatsafe
Safer
Forum|alt.badge.img+19
  • Safer
  • December 7, 2023

Hey Dave,

 

Thanks for this, its absolutely amazing!

 

With the guidance of your explanation and Template I've been able to stuck much further along in the process 🙂 Hoping you can also help me out here again.

 

In the attached diagram Ive outlined a few different possibilities present in my dataset. The one I'm stuck on is when we have multiple Taps within the same boundary, along different branches (Left boundary on diagram). Using the sorter on the _distance is only yielding me a single feature in these branching scenarios.

 

Any tips would be greatly appreciated!

 

 Edit: For clarification, Taps as per this diagram is referring to the Risers from the above example, same things.

I added some modifications to the workspace to clip out a small section of the lines at the closures to turn them into separate networks, then use a NetworkTopologyCalculator to assign a network id to each. The Sampler then groups by the network id as well.