Question

Assign incremental ID to a network based on connectivity


Hello,

I have two layer of networks, one is base (red line) and another is candidate (black lines). Want to populate ID in candidate layer as per connectivity with base. All first intersect of candidate layer should get ID 1 then remaining lines should follow the order. Any help? Thanks in advance.


5 replies

Userlevel 4
Badge +30

Hi @chandan

Your case is similar with this interesting Link

As you can see, the transformer StreamOrderCalculator is responsible to do this calculator.

 

Thanks,

Danilo

 

Hi @chandan

Your case is similar with this interesting Link

As you can see, the transformer StreamOrderCalculator is responsible to do this calculator.

 

Thanks,

Danilo

 

Hi @danilo_fme,

Thanks, I tried with StreamOrderCalculator, but it was not giving output the way I'm expecting.

Badge +22

Unfortunately neither the Horton nor the Strahler method for calcualting stream order is going to give you what you want, so the StreamOrderCalculator will not help.

 

 

What you are interested in is called Topological Stream Ordering. In FME, I would do this with a topologyBuilder and then in a PythonCaller calculate the stream order via a breadth first search (BFS).

 

As an aside, my FME UC 2020 presentation was going to be on graph theory (which includes topological sorting). Would you be willing to discuss your use case with me, I'm always looking for real life examples.

Thanks @jdh, @danilo_fme for your suggestions.

Finally I solve this problem using ArcPy. Using SystemCaller to execute this standalone script.incremaental_id.py

Userlevel 4
Badge +30

Thanks @jdh, @danilo_fme for your suggestions.

Finally I solve this problem using ArcPy. Using SystemCaller to execute this standalone script.incremaental_id.py

Excellent news @chandan

Reply