summaryrefslogtreecommitdiffstats
path: root/experiments/build_network.py
diff options
context:
space:
mode:
Diffstat (limited to 'experiments/build_network.py')
-rw-r--r--experiments/build_network.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/experiments/build_network.py b/experiments/build_network.py
new file mode 100644
index 0000000..aae90db
--- /dev/null
+++ b/experiments/build_network.py
@@ -0,0 +1,52 @@
+from csv import DictReader
+import sys
+from cPickle import dump
+from os.path import splitext
+
+
+def build_network(filename):
+ victims = {}
+ non_victims = {}
+ age = 0.
+ with open(filename) as fh:
+ reader = DictReader(fh)
+ for row in reader:
+ from_, to = int(float(row["from"])), int(float(row["to"]))
+ if int(float(row["dist"])) > 2:
+ continue
+ if row["t2"] != "NA":
+ dt = int(row["t2"]) - int(row["t1"])
+ parent = (int(row["dist"]), dt)
+ if to not in victims:
+ age += int(row["t2"])
+ victims[to] = []
+ victims[to].append(parent)
+ if from_ not in victims:
+ age += int(row["t1"])
+ victims[from_] = []
+ else:
+ from_, to = int(float(row["from"])), int(float(row["to"]))
+ parent = (int(row["dist"]), 3012 - int(row["t1"]))
+ if to not in victims:
+ age += 3012
+ non_victims[to] = []
+ non_victims[to].append(parent)
+ if from_ not in victims:
+ age += int(row["t1"])
+ victims[from_] = []
+ root_victims = {}
+ for victim in victims.keys():
+ if not victims[victim]:
+ del victims[victim]
+ root_victims[victim] = []
+ return root_victims, victims, non_victims, age
+
+
+if __name__ == "__main__":
+ if len(sys.argv) < 2:
+ sys.exit("usage: {0} <file>".format(sys.argv[0]))
+
+ filename = sys.argv[1]
+ root, _ = splitext(filename)
+ root_victims, victims, non_victims, age = build_network(filename)
+ dump((root_victims, victims, non_victims, age), open(root + ".pickle", "w"))