Closed Marchowes closed 6 years ago
-This issue of "Ponds" still has not been addressed yet. -Some Walks fail, need to figure out what. -Linker objects need to keep track of if it was disqualified, and why.
1/4/2017: -Walk seems to be working properly, but I am still not sure what to do about ponds. -Fixed a bug for when a walk gets "cornered" which seems to have fixed all dead-end walks. This can be done by way of lookbacks. -Possibly fixed a saddle related bug by iterating diagonally instead of orthogonally. this reduces the number of saddles by about 25% Most of which are bogus saddles. 81k -> 61k This is fantastic news.
This is done, tho, it might be worth my time to write a better multipoint blob analysis. Instead of just backtracking. The trade off here is backtracking might actually be faster.
At some point forking walks will need to be figured out -- That is walks that reach a multipoint and branch out.
How this is going to need to work:
-For every high region, walk to the next highest neighbor starting with the highest one. keep doing this until all high edge points are exhausted. Keep a lookup table of all points traversed and abort as soon as any walks visit them. -If an intermediary multipoint blob is encountered, explore it, and fan out along all high edges. if multiple summits are found, this becomes a new independent linker.
I'll bet this will be harder than I think.
In a nutshell: -Create lookup hash for summits -Iterate through high edges of saddles. -Start with the highest neighbor. -iterate over neighbors, going to the highest of the set -keep track of points (or not?) -Do this until no higher neighbors. This by law is a summit. -Look at hash lookup, find what summit it is. -Add to Saddle Linker
-If two points meet at the same summit and only two high edges, then Saddle is disqualified.
Might become complicated with ponds.