====== Caviar ====== [[pajek:data:temp:caviar]] ===== Caviar / ten ===== import os, re, pickle, json, datetime os.chdir('C:/Users/batagelj/Documents/papers/2014/theHague/data') from TQ import * def tq(S): S.append(13); left = prev = S[0]; P = '' for s in S[1:]: if (s-prev)>1: if len(P)>0: P += ',' P += '('+str(left)+','+str(prev+1)+',1)'; left = s prev = s return '['+P+']' n = 110 W = [[ [] for i in range(n)] for j in range(n)] x = [0]*n; y = [0]*n; lab = ['']*n; T = [[]]*n net = open('./caviar/caviar.net','r') for i in range(4): line = net.readline() for i in range(n): line = net.readline() L = re.split('\s+',line.strip()) # ['1', '"N1"', '0.3281', '0.7776', '0.5', '[1,2,3,4,5,6,7,8,9,10,11]'] x[i] = float(L[2]); y[i] = float(L[3]) lab[i] = L[1][1:-1]; T[i] = tq(eval(L[5])) line = net.readline() # 1 3 23 [ 7 ] while True: line = net.readline() if not line: break L = re.split('\s+',line.strip(),3) u = eval(L[0])-1; v = eval(L[1])-1 w = eval(L[2]); t = eval(L[3][1:-1]) W[u][v] = TQ.sum(W[u][v],[(t,t+1,w)]) net.close() caviar = {} caviar['tit'] = 'The Caviar Network / temporal network with 11 phases' caviar['num'] = n caviar['nam'] = lab caviar['tim'] = [1,12] caviar['mat'] = W caviar['dim'] = [n,n,1,12] caviar['met'] = 'Carlo Morselli: Inside Criminal Networks. Springer, New York, 2009, p. 177-186'+\ '\nConversion into Pajek format: Vladimir Batagelj, 29. November 2014' caviar['typ'] = ['simple', 'directed', 'onemode'] caviar['tin'] = T caviar['til'] = [ (i+1,str(i+1)) for i in range(12) ] with open("caviar.p","wb") as p: pickle.dump(caviar,p) TQ.MatSave(caviar,'caviar.ten') ===== Caviar / basic ===== f = [0]*n; year = [0]*n; l = [0]*n fun = open('./caviar/caviarFunction.clu','r') for i in range(7): line = fun.readline() for i in range(n): f[i] = int(fun.readline().strip()) fun.close() lev = open('./caviar/caviarLevel.clu','r') for i in range(9): line = lev.readline() for i in range(n): l[i] = int(lev.readline().strip()) lev.close() yea = open('./caviar/caviarYears.vec','r') for i in range(8): line = yea.readline() for i in range(n): year[i] = float(yea.readline().strip()) yea.close() C = {} C["network"] = "Caviar" C["mode"] = "basic" C["info"] = {} C["info"]["title"] = "The Caviar Network / temporal network with 11 phases" C["info"]["org"] = 1 C["info"]["nNodes"] = 110 C["info"]["legend"] = {} C["info"]["legend"]["lev"] = { 0:"Participant",1:"Arrested",2:"Accused",3:"Informant",4:"Guilty" } C["info"]["legend"]["fun"] = { 1:"Trafficker",2:"Non-financial",3:"Financial" } C["meta"] = [] C["meta"].append({"desc":"Carlo Morselli: Inside Criminal Networks. Springer, New York, 2009, p. 177-186"}) C["meta"].append({"desc":"Carlo Morselli, Cynthia Giguere: Legitimate strengths in criminal networks. Crime, Law & Social Change (2006) 45: 185–200"}) C["meta"].append({"date":"29. November 2014","author":"Vladimir Batagelj","desc":"Conversion into Pajek format"}) ct = datetime.datetime.now() C["meta"].append({"date":str(ct.date())+" {:%H:%M}".format(ct),"desc":"Conversion into netJSON format"}) C["nodes"] = [[]]*n for i in range(n): C["nodes"][i] = \ {"id":i+1,"name":lab[i],"x":x[i],"y":y[i],"fun":f[i],"lev":l[i],"years":year[i],"act":eval(T[i])} C["links"] = [] m = 0 for i in range(n): for j in range(n): if W[i][j]!=[]: m = m+1 C["links"].append({"id":m,"lType":"arc","n1":i+1,"n2":j+1,"w":W[i][j]}) C["info"]["nArcs"] = m with open('./caviar/caviar.json',mode='w',encoding='utf-8') as JSON: json.dump(C,JSON,indent=2) { "network": "Caviar", "mode": "basic", "info": { "title": "The Caviar Network / temporal network with 11 phases", "org": 1, "nNodes": 110, "nArcs": 305, "legend": { "lev": { "0": "Participant", "1": "Arrested", "2": "Accused", "3": "Informant", "4": "Guilty" }, "fun": { "1": "Trafficker", "2": "Non-financial", "3": "Financial" } } }, "meta": [ { "desc": "Carlo Morselli: Inside Criminal Networks. Springer, New York, 2009, p. 177-186" }, { "desc": "Carlo Morselli, Cynthia Giguere: Legitimate strengths in criminal networks. Crime, Law & Social Change (2006) 45: 185\u2013200" }, { "author": "Vladimir Batagelj", "date": "29. November 2014", "desc": "Conversion into Pajek format" }, { "date": "2016-05-01 14:37", "desc": "Conversion into netJSON format" } ], "nodes": [ { "y": 0.7776, "name": "N1", "id": 1, "lev": 4, "years": 11.0, "x": 0.3281, "act": [ [ 1, 12, 1 ] ], "fun": 1 }, { "y": 0.5909, "name": "N2", "id": 2, "lev": 0, "years": 0.0, "x": 0.635, "act": [ [ 1, 10, 1 ] ], "fun": 1 }, ... ], "links": [ { "n1": 1, "n2": 2, "lType": "arc", "w": [ [ 1, 2, 2 ], [ 2, 3, 7 ], [ 3, 4, 8 ], [ 4, 5, 16 ], [ 5, 6, 3 ], [ 6, 7, 8 ], [ 7, 8, 5 ], [ 8, 9, 4 ] ], "id": 1 }, { "n1": 1, "n2": 3, "lType": "arc", ... { "n1": 108, "n2": 6, "lType": "arc", "w": [ [ 5, 6, 1 ] ], "id": 305 } ], } {{tq:pub:caviarjson.zip}} ===== Caviar / general ===== # === CaviarG.JSON / general ============================================ G = {} G["network"] = "Caviar" G["mode"] = "general" G["info"] = {} G["info"]["title"] = "The Caviar Network / temporal network with 11 phases" G["meta"] = [] G["meta"].append({"desc":"Carlo Morselli: Inside Criminal Networks. Springer, New York, 2009, p. 177-186"}) G["meta"].append({"desc":"Carlo Morselli, Cynthia Giguere: Legitimate strengths in criminal networks. Crime, Law & Social Change (2006) 45: 185–200"}) G["meta"].append({"date":"29. November 2014","author":"Vladimir Batagelj","desc":"Conversion into Pajek format"}) ct = datetime.datetime.now() G["meta"].append({"date":str(ct.date())+" {:%H:%M}".format(ct),"desc":"Conversion into netJSON format"}) G["default"] = {} G["default"]["style"] = {"nodes":{"shape":"circle","r":1,"color":"red"}} G["default"]["style"]["links"] = {"line":"solid","lw":2,"color":"blue"} G["V"] = {} G["V"]["type"] = "nodes" G["V"]["info"] = {"org":1,"size":110} G["V"]["data"] = [[]]*n for i in range(n): G["V"]["data"][i] = {"id":i+1,"name":lab[i],"act":eval(T[i])} G["x"] = {} G["x"]["type"] = "vector" G["x"]["nodes"] = "V" G["x"]["info"] = {"org":1,"size":110,"vType":"real"} G["x"]["data"] = x G["y"] = {} G["y"]["type"] = "vector" G["y"]["nodes"] = "V" G["y"]["info"] = {"org":1,"size":110,"vType":"real"} G["y"]["data"] = y G["years"] = {} G["years"]["type"] = "vector" G["years"]["nodes"] = "V" G["years"]["info"] = {"org":1,"size":110,"vType":"real"} G["years"]["data"] = year G["fun"] = {} G["fun"]["type"] = "partition" G["fun"]["nodes"] = "V" G["fun"]["info"] = {"org":1,"size":110} G["fun"]["info"]["legend"] = { 1:"Trafficker",2:"Non-financial",3:"Financial" } G["fun"]["data"] = f G["lev"] = {} G["lev"]["type"] = "partition" G["lev"]["nodes"] = "V" G["lev"]["info"] = {"org":1,"size":110} G["lev"]["info"]["legend"] = { 0:"Participant",1:"Arrested",2:"Accused",3:"Informant",4:"Guilty" } G["lev"]["data"] = l G["A"] = {} G["A"]["type"] = "links" G["A"]["info"] = {"gType":["onemode", "simple"]} G["A"]["nodes"] = "V" G["A"]["default"] = {"lType":"arc"} G["A"]["data"] = [] m = 0 for i in range(n): for j in range(n): if W[i][j]!=[]: m = m+1 G["A"]["data"].append({"id":m,"lType":"arc","n1":i+1,"n2":j+1,"w":W[i][j]}) G["A"]["info"]["nArcs"] = m with open('./caviar/caviarG.json',mode='w',encoding='utf-8') as JSON: json.dump(G,JSON,indent=2) {{tq:pub:caviarGjson.zip}}