diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2015-06-07 22:23:39 -0700 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2015-06-07 22:23:39 -0700 |
| commit | e5dada202c34521618bf82a086093c342841e5e8 (patch) | |
| tree | dd7c640ed2bd77ce5e6b0ae050e6662c21cc3b43 /experiments/build_network.py | |
| parent | a29d738721db46b0ca3b7b5b3ffd282ad3f25909 (diff) | |
| download | criminal_cascades-e5dada202c34521618bf82a086093c342841e5e8.tar.gz | |
Project cleanup before handing it to Ben
Diffstat (limited to 'experiments/build_network.py')
| -rw-r--r-- | experiments/build_network.py | 52 |
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")) |
