In [8]:
import numpy as np
In [ ]:
In [9]:
# place ipynb in same folder as
file_name = "AgencyPairs.txt"
pairs = np.genfromtxt(file_name, dtype="S64,S64,S64,S64,S64,S64,S64,i,S64")
In [10]:
# have a peek at the data
pairs[:5]
Out[10]:
In [11]:
# parse the data and look at sets
agencies1 = [pair[1][1:-1].replace('_','') for pair in pairs]
mags1 = [pair[2][:-1].upper() for pair in pairs]
agencies2 = [pair[4][1:-1].replace('_','') for pair in pairs]
mags2 = [pair[5][:-1].upper() for pair in pairs]
nums_shared = [pair[7] for pair in pairs]
print set(mags1)
print set(mags2)
print list(set(mags1) - set(mags2))
print list(set(mags2) - set(mags1))
print set(agencies1)
print set(agencies2)
print list(set(agencies1) - set(agencies2))
print list(set(agencies2) - set(agencies1))
In [20]:
# prioritize magnitudes and print pairs in order of size of overlap
mag_priority = ['MW','MS','MD']
#conn_format = '%s%s/"%s, %s"[input] -> [edge label={%d}] %s%s/"%s, %s"[input];'
conn_format = '%s%s[input] -> [edge label={%d}] %s%s[input];'
data = zip(agencies1, mags1, agencies2, mags2, nums_shared)
data = list(set(data))
data = sorted(data, key=lambda pair: pair[4], reverse=True)
for agency in set(agencies1 + agencies2):
string = "{ [same layer] "
for mag in mag_priority:
string = string + ("%s%s, " % (agency, mag) )
string = string[:-2] + " };"
print string
print
for i, m1 in enumerate(mag_priority):
for m2 in mag_priority[i:]:
for agency1, mag1, agency2, mag2, n_shared in data:
if (mag1 == m1 and mag2 == m2) or (mag1 == m2 and mag2 == m1):
if mag_priority.index(m1) >= mag_priority.index(m2):
print conn_format % (agency1, mag1, n_shared, agency2, mag2)
else:
print conn_format % (agency2, mag2, n_shared, agency1, mag1)
In [1]:
G = {'s':{'u':10, 'x':5},
'u':{'v':1, 'x':2},
'v':{'y':4},
'x':{'u':3, 'v':9, 'y':2},
'y':{'s':7, 'v':6}}
f = open('dotgraph.txt','w')
f.writelines('digraph G {\nnode [width=.3,height=.3,shape=octagon,style=filled,color=skyblue];\noverlap="false";\nrankdir="LR";\n')
f.writelines
for i in G:
for j in G[i]:
s= ' '+ i
s += ' -> ' + j + ' [label="' + str(G[i][j]) + '"]'
s+=';\n'
f.writelines(s)
f.writelines('}')
f.close()
print "done!"
In [ ]: