summaryrefslogtreecommitdiffstats
path: root/experiments/build_network.py
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2015-06-07 22:23:39 -0700
committerThibaut Horel <thibaut.horel@gmail.com>2015-06-07 22:23:39 -0700
commite5dada202c34521618bf82a086093c342841e5e8 (patch)
treedd7c640ed2bd77ce5e6b0ae050e6662c21cc3b43 /experiments/build_network.py
parenta29d738721db46b0ca3b7b5b3ffd282ad3f25909 (diff)
downloadcriminal_cascades-e5dada202c34521618bf82a086093c342841e5e8.tar.gz
Project cleanup before handing it to Ben
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"))