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
    }
  ],
}

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)

caviargjson.zip

notes/net/tq/caviar.txt · Last modified: 2016/05/02 14:08 by vlado
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki