summaryrefslogtreecommitdiff
path: root/stsci/sphere/graph.py
diff options
context:
space:
mode:
authorbsimon <bsimon@stsci.edu>2015-04-09 15:38:55 -0400
committerbsimon <bsimon@stsci.edu>2015-04-09 15:38:55 -0400
commit0a03767000dcb29e998d55c120e21f892e2288c3 (patch)
tree8482dc2de72c0d43ea834caf9b3167a8b49ecd68 /stsci/sphere/graph.py
parent457db3570a50cf2d88fa5ac00d1ba1d5b119ea7a (diff)
downloadstsci.sphere-0a03767000dcb29e998d55c120e21f892e2288c3.tar.gz
adding some backport changes I missed on the first time around
git-svn-id: http://svn.stsci.edu/svn/ssb/stsci_python/stsci.sphere/trunk@38912 fe389314-cf27-0410-b35b-8c050e845b92 Former-commit-id: 5f708691fc28a7c2846cf110e5fe656cfeda8ee3
Diffstat (limited to 'stsci/sphere/graph.py')
-rw-r--r--stsci/sphere/graph.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/stsci/sphere/graph.py b/stsci/sphere/graph.py
index 55d5835..c6062d1 100644
--- a/stsci/sphere/graph.py
+++ b/stsci/sphere/graph.py
@@ -410,10 +410,15 @@ class Graph:
if not DEBUG:
return
+ log = open("/tmp/sanity.log", 'a')
+ log.write("\n" + title + "\n")
try:
unique_edges = set()
+ log.write("list of edges\n")
for edge in self._edges:
+ log.write("edge: " + str(edge) + "\n")
for node in edge._nodes:
+ log.write("node: " + str(node) + "\n")
assert edge in node._edges
assert node in self._nodes
edge_repr = [tuple(x._point) for x in edge._nodes]
@@ -422,19 +427,24 @@ class Graph:
# assert edge_repr not in unique_edges
unique_edges.add(edge_repr)
+ log.write("list of nodes\n")
for node in self._nodes:
+ log.write("node: " + str(node) + "\n")
if node_is_2:
- assert len(node._edges) == 2
+ assert len(node._edges) % 2 == 0
else:
assert len(node._edges) >= 2
for edge in node._edges:
+ log.write("edge: " + str(edge) + "\n")
assert node in edge._nodes
assert edge in self._edges
except AssertionError as e:
+ log.close()
import traceback
traceback.print_exc()
self._dump_graph(title=title)
raise
+ log.close()
def _dump_graph(self, title=None, lon_0=0, lat_0=90,
projection='vandg', func=lambda x: len(x._edges),
@@ -822,6 +832,9 @@ class Graph:
polygons = []
edges = set(self._edges) # copy
+ for edge in self._edges:
+ edge._followed = False
+
while len(edges):
points = []
edge = edges.pop()
@@ -833,7 +846,12 @@ class Graph:
points.append(node._point)
else:
points.append(node._point)
- edge = node.follow(edge)
+ for edge in node._edges:
+ if edge._followed is False:
+ break
+ else:
+ raise ValueError("No more edges to follow")
+ edge._followed = True
edges.discard(edge)
node = edge.follow(node)
if node is start_node: