Marchowes / pyProm

Surface Network Analyzer.
BSD 3-Clause "New" or "Revised" License
6 stars 2 forks source link

[Idea] loop detect algorithm (scratchpad) #123

Closed Marchowes closed 5 years ago

Marchowes commented 6 years ago

Instead of leveraging a recursive function we can do a bredth search. used deque() in collections to manage the queue.

might be prudent to set a max depth -- but maybe not.

?runoffs? ?edge saddles?

Marchowes commented 5 years ago

I've got a working beta of this feature which looks very promising.

TODO: -Write Unit Tests --Basically Make up scenarios --Edge? -Test if this can effectively eliminate the need for the redundancy checkers. This should work just fine without them, tho it might be more performant to keep them. -Mark Saddles as "Basin" rather than "toolow" -Mark the other type of Saddle (same summit) as such, and delete entirely. These are useless -Mark alternate basin saddles. -Clean up and Lint code -Write tests for supporting functions (like the linker neighbor ones) -Commit KML changes seperately.

Marchowes commented 5 years ago

The story so far:

Most of this algorithm works, however I'm getting more accurate results when using it in conjunction with redundant linker checks. I am not entirely sure why.