4.3.3. InternalSaddleNetwork

class pyprom.lib.logic.internal_saddle_network.InternalSaddleNetwork(saddle, datamap)[source]

InternalSaddleNetwork object for computing internal saddle networks. This is used for finding the center point of a saddle, and for breaking saddles with > 2 high edges into 2 high edge pyprom.lib.locations.saddle.Saddle

__init__(saddle, datamap)[source]
Parameters
__weakref__

list of weak references to the object (if defined)

build_internal_tree()[source]

This function builds an unordered list of links which connect all highShores (nodes) together. Stored in self.shortest_links

find_shortest_paths_between_high_shores()[source]

find_shortest_paths_between_high_shores iterates through all highShores of self and returns an ordered list of pyprom.lib.containers.feature_verticies.Feature_Verticies which corresponds to the ordering of the highShores. These pyprom.lib.containers.feature_verticies.Feature_Verticies contain pyprom.lib.locations.vertex_link.Vertex_Link which link the shortest points between each highShore.

Returns

ordered list of Feature_Verticies

Return type

list(pyprom.lib.containers.feature_verticies.Feature_Verticies)

generate_child_saddles()[source]

generate_child_saddles produces a list of saddles derived from saddle(self). This produces (N-1) saddles where N is the number of highShores in self.saddles These saddles. have their highShores consolidated as well as produce a centered mid point which is important for multipoint blobs, as well as multipoints with N > 2 highShores. In the case of this Saddle having an EdgeEffect we need to preserve The original Saddle for its eventual joining with another datamap. In that case the new Saddles are marked as Children of the original saddle. And all Children mark the Original Saddle as their parent. The Parent Saddle is then disqualified from further analysis, but saved.

Returns

list of Saddles

Return type

list(pyprom.lib.locations.saddle.Saddle)

treeExploration(toBeExplored, toBeExploredIndex, explored_nodes_index, first)[source]

Loop until toBeExplored is exhausted. This continues until all conventionally accessible high shores are connected via Vertex Links. This loop works by looking at all remote_container`s (a node) that are linked to the `node under exploration. Whatever unexplored remote node has the node under exploration as it’s shortest link is added to the toBeExplored queue and that pyprom.lib.locations.vertex_link.Vertex_Link is added to the unordered shortest_path list.

Parameters
  • toBeExplored (list(pyprom.lib.locations.vertex_link.Vertex_Link)) – list of Vertex Linkers to be explored

  • toBeExploredIndex (dict(idx: bool)) – index of Vertex Linkers to be explored.

  • explored_nodes_index (dict(idx: bool)) – index of explored Vertex Linkers..

  • first (bool) – boolean value of if this is the first explored tree.