Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Richard-Mathie/f46da24ed4f3511cd38d to your computer and use it in GitHub Desktop.
Save Richard-Mathie/f46da24ed4f3511cd38d to your computer and use it in GitHub Desktop.
39 Subjects of Asset Management, Dependency Matrix
INPUTS
AM Policy AM Strategy & Objectives Demand Analysis Strategic Planning AM Planning Capital investment decision making Ops & maintenance decision making Lifecycle value realisation Resourcing strategy Shutdowns and outage strategy Technical Standards & legislation Asset creation & acquisition Systems engineering Configuration management Maintenance delivery Reliability engineering Asset operations Resource management Shutdown & outage management Fault & incident response Asset decomissioning & disposal Asset Information Strategy Asset information standards Asset information systems Data & information management Procurement & supply chain management Asset management leadership Organisational structure Organisational culture Competence management Risk assessment & management Contingency planning & resilience analysis Sustainable development Management of change Asset performance & health monitoring Asset management system monitoring "management review, audit and assurance" Asset costing & valuation Stakeholder engagement
AM Strategy & Planning AM Policy I I I I
AM Strategy & Objectives I I I I I I I I I I
Demand Analysis I I I I I
Strategic Planning I I I
AM Planning I I I I I I I I I I I I I I I I I I
AM Decision Making Capital investment decision making I I I I I I I
Ops & maintenance decision making I I I I I I I I I I I I I I I
Lifecycle value realisation I I I
Resourcing strategy I I I I I I I
Shutdowns and outage strategy I I I I I I
Lifecycle Delivery Technical Standards & legislation I I
Asset creation & acquisition I I I I I I I I I I I I I I I
Systems engineering I I I I I
Configuration management I I I I I I
Maintenance delivery I I I I I I I I I I I I I I I I
Reliability engineering I I I
Asset operations I I I I I I I I I I I I I I I I
Resource management I I I I I
Shutdown & outage management I I I I I I I I I I I I I
Fault & incident response I I I I I I I I
Asset decomissioning & disposal I I
Asset Information Asset Information Strategy I I I I I
Asset information standards I I
Asset information systems I I I I
Data & information management I I I I I I
Organisation & People Procurement & supply chain management I I I I I I I I I I I I I I I I
Asset management leadership I I I I I
Organisational structure I I I I I
Organisational culture I
Competence management I I I I I I
Risk & Review Risk assessment & management I I I I I I I I I I I I I I I
Contingency planning & resilience analysis I I I I I I I
Sustainable development I I I I I I I
Management of change I I I
Asset performance & health monitoring I I I I I I I I I
Asset management system monitoring I I I I I I I
"management review, audit and assurance" I I I I I I I I I I
Asset costing & valuation I I I I I I I I
Stakeholder engagement I I I I I I I I I I I
<!DOCTYPE html>
<meta charset="utf-8">
<title>39 Subjects of Asset Management Co‑dependence</title>
<style>
@import url(style.css);
.background {
fill: #eee;
}
line {
stroke: #fff;
}
text.active {
fill: red;
font-size: 120%;
}
rect.highlight {
fill: none;
stroke: red;
stroke-width: 2;
}
</style>
<script src="http://jdfekete.github.io/reorder.js/lib/d3.v3.js"></script>
<script src="http://jdfekete.github.io/reorder.js/lib/d3.parcoords.js"></script>
<script src="http://jdfekete.github.io/reorder.js/lib/science.v1.js"></script>
<script src="http://jdfekete.github.io/reorder.js/lib/tiny-queue.js"></script>
<script src="http://jdfekete.github.io/reorder.js/reorder.v1.js"></script>
<script src="matrix.js"></script>
<header>
<aside>September 3, 2015</aside>
<a href="http://theIAM.org">the IAM</a>
</header>
<h1><i>39 Subjects of Asset Management</i> Co&#8209dependence</h1>
<aside id="info" style="margin-top:80px;">
<p>Order: <select id="order">
<option value="group">by Group</option>
<option value="name">by Name</option>
<option value="count">by Frequency</option>
<option value="leafOrder">by Leaf Order</option>
<option value="leafOrderDist">by Leaf Order over Distance Matrix</option>
<option value="leafOrderLink">by Leaf Order by link</option>
<option value="barycenter">by Crossing Reduction</option>
<option value="rcm">by Bandwidth Reduction (RCM)</option>
<option value="pca">by Principal Component (PCA)</option>
<option value="spectral">Spectral</option>
</select>
<p>Distance: <select id="distance">
<option value="manhattan" selected="true">Manhattan</option>
<option value="euclidean">Euclidean</option>
<option value="chebyshev">Chebyshev</option>
<option value="hamming">Hamming</option>
<option value="jaccard">Jaccard</option>
<option value="braycurtis">Braycurtis</option>
</select>
<p>This matrix diagram visualizes the co-dependence of the 39 subjects of asset management as defined by <i><a href="http://theIAM.org">the IAM</a></i>.
<p>Each coloured cell represents two subject that appeared in the same subject group; darker cells indicate subjects that co-occurred more frequently.
<p>Use the drop-down menu to reorder the matrix and explore the data.
<p>Built with <a href="http://d3js.org/">d3.js</a>. Based on the work of <a href="http://www.aviz.fr/~fekete">Jean-Daniel Fekete</a>. Modified by <a href="https://github.com/Richard-Mathie">Richard Mathie</a> to investigate the relationship between the subjects of asset managment.
</aside>
<script>
var margin = {top: 200, right: 0, bottom: 10, left: 200},
width = 720,
height = 720;
var x = d3.scale.ordinal().rangeBands([0, width]),
z = d3.scale.linear().domain([0, 2]).clamp(true),
c = d3.scale
.ordinal()
.domain(d3.range(10))
.range(
['#ffc000', '#92d050', '#00b0f0', '#cc3399', '#ff0000', '#ff6600']
);
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.style("margin-left", -margin.left + "px")
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
d3.json("subjects.json", loadJson);
svg.append('g')
.attr('class','axtitle')
.attr('transform','translate('+(width)/2+','+(-margin.top)+')')
.append('text').attr("dy", "1em").attr("font-size", "20px").text('Inputs')
svg.append('g')
.attr('class','axtitle')
.attr('transform','translate('+(-margin.left)+','+(height/2)+')rotate(-90)')
.append('text').attr("dy", "1em").attr("font-size", "20px").text('Subjects')
</script>
<footer>
<aside>September 3, 2015</aside>
<a href="http://bost.ocks.org/mike/" rel="author">Mike Bostock</a>
<a href="http://www.aviz.fr/~fekete" rel="author">Jean-Daniel Fekete</a>
<a href="https://github.com/Richard-Mathie">Richard Mathie</a>
</footer>
// var margin = {top: 80, right: 0, bottom: 10, left: 80},
// width = 720,
// height = 720;
// var x = d3.scale.ordinal().rangeBands([0, width]),
// z = d3.scale.linear().domain([0, 4]).clamp(true),
// c = d3.scale.category10().domain(d3.range(10));
// var svg = d3.select("body").append("svg")
// .attr("width", width + margin.left + margin.right)
// .attr("height", height + margin.top + margin.bottom)
// .style("margin-left", -margin.left + "px")
// .append("g")
// .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
function matrix(json) {
var matrix = [],
nodes = json.nodes,
n = nodes.length;
// Compute index per node.
nodes.forEach(function(node, i) {
node.index = i;
node.count = 0;
matrix[i] = d3.range(n).map(function(j) { return {x: j, y: i, z: 0}; });
});
// Convert links to matrix; count character occurrences.
json.links.forEach(function(link) {
matrix[link.target][link.source].z += link.value;
//matrix[link.target][link.source].z += link.value;
//matrix[link.source][link.source].z += link.value;
//matrix[link.target][link.target].z += link.value;
nodes[link.source].count += link.value;
nodes[link.target].count += link.value;
});
var adjacency = matrix.map(function(row) {
return row.map(function(c) { return c.z; });
});
var graph = reorder.graph()
.nodes(json.nodes)
.links(json.links)
.init();
var dist_adjacency;
var leafOrder = reorder.optimal_leaf_order()
.distance(science.stats.distance.manhattan);
function computeLeaforder() {
var order = leafOrder(adjacency);
order.forEach(function(lo, i) {
nodes[i].leafOrder = lo;
});
return nodes.map(function(n) { return n.leafOrder; });
}
function computeLeaforderDist() {
if (! dist_adjacency)
dist_adjacency = reorder.graph2valuemats(graph);
var order = reorder.valuemats_reorder(dist_adjacency,
leafOrder);
order.forEach(function(lo, i) {
nodes[i].leafOrderDist = lo;
});
return nodes.map(function(n) { return n.leafOrderDist; });
}
function computeLeaforderLink() {
var order = reorder.optimal_leaf_order()(adjacency);
order.forEach(function(lo, i) {
nodes[i].leafOrderLink = lo;
});
return nodes.map(function(n) { return n.leafOrderLink; });
}
function computeBarycenter() {
var barycenter = reorder.barycenter_order(graph),
improved = reorder.adjacent_exchange(graph,
barycenter[0],
barycenter[1]);
improved[0].forEach(function(lo, i) {
nodes[i].barycenter = lo;
});
return nodes.map(function(n) { return n.barycenter; });
}
function computeRCM() {
var rcm = reorder.reverse_cuthill_mckee_order(graph);
rcm.forEach(function(lo, i) {
nodes[i].rcm = lo;
});
return nodes.map(function(n) { return n.rcm; });
}
function computePCA() {
var pca = reorder.sort_order(reorder.pca1d(adjacency));
pca.forEach(function(lo, i) {
nodes[i].pca = lo;
});
return nodes.map(function(n) { return n.pca; });
}
function computeSpectral() {
var spectral = reorder.spectral_order(graph);
spectral.forEach(function(lo, i) {
nodes[i].spectral = lo;
});
return nodes.map(function(n) { return n.spectral; });
}
// Precompute the orders.
var orders = {
name: d3.range(n).sort(function(a, b) { return d3.ascending(nodes[a].name, nodes[b].name); }),
count: d3.range(n).sort(function(a, b) { return nodes[b].count - nodes[a].count; }),
group: d3.range(n).sort(function(a, b) {
var x = - nodes[b].group + nodes[a].group;
return (x != 0) ? x : d3.ascending(nodes[a].name, nodes[b].name);
}),
leafOrder: computeLeaforder,
leafOrderDist: computeLeaforderDist,
leafOrderLink: computeLeaforderLink,
barycenter: computeBarycenter,
rcm: computeRCM,
pca: computePCA,
spectral: computeSpectral
};
// The default sort order.
x.domain(orders.group);
svg.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height);
var row = svg.selectAll(".row")
.data(matrix)
.enter().append("g")
.attr("id", function(d, i) { return "row"+i; })
.attr("class", "row")
.attr("transform", function(d, i) { return "translate(0," + x(i) + ")"; })
.each(row);
row.append("line")
.attr("x2", width);
row.append("text")
.attr("x", -6)
.attr("y", x.rangeBand() / 2)
.attr("dy", ".32em")
.attr("text-anchor", "end")
.text(function(d, i) { return nodes[i].name; });
var column = svg.selectAll(".column")
.data(matrix)
.enter().append("g")
.attr("id", function(d, i) { return "col"+i; })
.attr("class", "column")
.attr("transform", function(d, i) { return "translate(" + x(i) + ")rotate(-90)"; });
column.append("line")
.attr("x1", -width);
column.append("text")
.attr("x", 6)
.attr("y", x.rangeBand() / 2)
.attr("dy", ".32em")
.attr("text-anchor", "start")
.text(function(d, i) { return nodes[i].name; });
function row(row) {
var cell = d3.select(this).selectAll(".cell")
.data(row.filter(function(d) { return d.z; }))
.enter().append("rect")
.attr("class", "cell")
.attr("x", function(d) { return x(d.x); })
.attr("width", x.rangeBand())
.attr("height", x.rangeBand())
.style("fill-opacity", function(d) { return z(d.z); })
.style("fill", function(d) { return nodes[d.x].group == nodes[d.y].group ? c(nodes[d.x].group) : null; })
.on("mouseover", mouseover)
.on("mouseout", mouseout);
}
function mouseover(p) {
d3.selectAll(".row text").classed("active", function(d, i) { return i == p.y; });
d3.selectAll(".column text").classed("active", function(d, i) { return i == p.x; });
d3.select(this).insert("title").text(nodes[p.y].name + "--" + nodes[p.x].name);
d3.select(this.parentElement)
.append("rect")
.attr("class", "highlight")
.attr("width", width)
.attr("height", x.rangeBand());
d3.select("#col"+p.x)
.append("rect")
.attr("class", "highlight")
.attr("x", -width)
.attr("width", width)
.attr("height", x.rangeBand());
}
function mouseout(p) {
d3.selectAll("text").classed("active", false);
d3.select(this).select("title").remove();
d3.selectAll(".highlight").remove();
}
var currentOrder = 'group';
function order(value) {
var o = orders[value];
currentOrder = value;
if (typeof o === "function") {
orders[value] = o.call();
}
x.domain(orders[value]);
var t = svg.transition().duration(1500);
t.selectAll(".row")
.delay(function(d, i) { return x(i) * 4; })
.attr("transform", function(d, i) { return "translate(0," + x(i) + ")"; })
.selectAll(".cell")
.delay(function(d) { return x(d.x) * 4; })
.attr("x", function(d) { return x(d.x); });
t.selectAll(".column")
.delay(function(d, i) { return x(i) * 4; })
.attr("transform", function(d, i) { return "translate(" + x(i) + ")rotate(-90)"; });
}
function distance(value) {
leafOrder.distance(science.stats.distance[value]);
if (currentOrder == 'leafOrder') {
orders.leafOrder = computeLeaforder;
order("leafOrder");
//d3.select("#order").property("selectedIndex", 3);
}
else if (currentOrder == 'leafOrderDist') {
orders.leafOrderDist = computeLeaforderDist;
order("leafOrderDist");
//d3.select("#order").property("selectedIndex", 4);
}
// leafOrder.forEach(function(lo, i) {
// nodes[lo].leafOrder = i;
// });
// orders.leafOrder = d3.range(n).sort(function(a, b) {
// return nodes[b].leafOrder - nodes[a].leafOrder; });
}
matrix.order = order;
matrix.distance = distance;
var timeout = setTimeout(function() {}, 1000);
matrix.timeout = timeout;
return matrix;
}
function loadJson(json) {
var mat = matrix(json);
// mat.timeout = setTimeout(function() {
// mat.order("group");
// d3.select("#order").property("selectedIndex", 2).node().focus();
// }, 5000);
d3.select("#order").on("change", function() {
// clearTimeout(mat.timeout);
mat.order(this.value);
});
d3.select("#distance").on("change", function() {
// clearTimeout(mat.timeout);
mat.distance(this.value);
});
d3.select('aside#info')
.append('div')
.classed('legend',true)
.append('div')
.classed('legend_title',true)
.text('Groups')
.selectAll('div.item').data(json.groups).enter()
.append('div').classed('item',true)
.style('background-color',function(d,i){return c(i);})
.text(function(d){return d;})
}
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', '-g', 'http-server' ]
2 info using [email protected]
3 info using [email protected]
4 verbose node symlink /usr/bin/node
5 verbose cache add [ 'http-server', null ]
6 verbose cache add name=undefined spec="http-server" args=["http-server",null]
7 verbose parsed url { protocol: null,
7 verbose parsed url slashes: null,
7 verbose parsed url auth: null,
7 verbose parsed url host: null,
7 verbose parsed url port: null,
7 verbose parsed url hostname: null,
7 verbose parsed url hash: null,
7 verbose parsed url search: null,
7 verbose parsed url query: null,
7 verbose parsed url pathname: 'http-server',
7 verbose parsed url path: 'http-server',
7 verbose parsed url href: 'http-server' }
8 silly lockFile ed608307-http-server http-server
9 verbose lock http-server /home/admin2/.npm/ed608307-http-server.lock
10 silly lockFile ed608307-http-server http-server
11 silly lockFile ed608307-http-server http-server
12 verbose addNamed [ 'http-server', '' ]
13 verbose addNamed [ null, '*' ]
14 silly lockFile 550353c6-http-server http-server@
15 verbose lock http-server@ /home/admin2/.npm/550353c6-http-server.lock
16 silly addNameRange { name: 'http-server', range: '*', hasData: false }
17 verbose request where is /http-server
18 verbose request registry https://registry.npmjs.org/
19 verbose request id 1b02adfa83441d36
20 verbose url raw /http-server
21 verbose url resolving [ 'https://registry.npmjs.org/', './http-server' ]
22 verbose url resolved https://registry.npmjs.org/http-server
23 verbose request where is https://registry.npmjs.org/http-server
24 info trying registry request attempt 1 at 15:22:58
25 http GET https://registry.npmjs.org/http-server
26 http 200 https://registry.npmjs.org/http-server
27 silly registry.get cb [ 200,
27 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)',
27 silly registry.get etag: '"2YYHE29Z5MSQX09FOBI6J5URR"',
27 silly registry.get 'content-type': 'application/json',
27 silly registry.get 'cache-control': 'max-age=60',
27 silly registry.get 'content-length': '45236',
27 silly registry.get 'accept-ranges': 'bytes',
27 silly registry.get date: 'Wed, 02 Sep 2015 14:22:58 GMT',
27 silly registry.get via: '1.1 varnish',
27 silly registry.get age: '12',
27 silly registry.get connection: 'keep-alive',
27 silly registry.get 'x-served-by': 'cache-fra1239-FRA',
27 silly registry.get 'x-cache': 'HIT',
27 silly registry.get 'x-cache-hits': '1',
27 silly registry.get 'x-timer': 'S1441203778.163847,VS0,VE0',
27 silly registry.get vary: 'Accept' } ]
28 silly addNameRange number 2 { name: 'http-server', range: '*', hasData: true }
29 silly addNameRange versions [ 'http-server',
29 silly addNameRange [ '0.1.0',
29 silly addNameRange '0.1.1',
29 silly addNameRange '0.1.3',
29 silly addNameRange '0.2.1',
29 silly addNameRange '0.2.2',
29 silly addNameRange '0.2.3',
29 silly addNameRange '0.2.4',
29 silly addNameRange '0.2.5',
29 silly addNameRange '0.2.6',
29 silly addNameRange '0.2.9',
29 silly addNameRange '0.3.0',
29 silly addNameRange '0.4.0',
29 silly addNameRange '0.4.1',
29 silly addNameRange '0.5.0',
29 silly addNameRange '0.5.1',
29 silly addNameRange '0.5.2',
29 silly addNameRange '0.5.3',
29 silly addNameRange '0.5.5',
29 silly addNameRange '0.6.0',
29 silly addNameRange '0.6.1',
29 silly addNameRange '0.7.0',
29 silly addNameRange '0.7.1',
29 silly addNameRange '0.7.2',
29 silly addNameRange '0.7.3',
29 silly addNameRange '0.7.4',
29 silly addNameRange '0.7.5',
29 silly addNameRange '0.8.0' ] ]
30 verbose addNamed [ 'http-server', '0.8.0' ]
31 verbose addNamed [ '0.8.0', '0.8.0' ]
32 silly lockFile d5e3e4a2-http-server-0-8-0 [email protected]
33 verbose lock [email protected] /home/admin2/.npm/d5e3e4a2-http-server-0-8-0.lock
34 silly lockFile a0b6e4df-ttp-server-http-server-0-8-0-tgz https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
35 verbose lock https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz /home/admin2/.npm/a0b6e4df-ttp-server-http-server-0-8-0-tgz.lock
36 verbose addRemoteTarball [ 'https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz',
36 verbose addRemoteTarball 'd4b671781ec6bf9fa6a311cd1df683b0b37b1491' ]
37 info retry fetch attempt 1 at 15:22:58
38 verbose fetch to= /tmp/npm-22936-RvTBerUX/registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
39 http GET https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
40 http 200 https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
41 silly lockFile a0b6e4df-ttp-server-http-server-0-8-0-tgz https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
42 silly lockFile a0b6e4df-ttp-server-http-server-0-8-0-tgz https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz
43 silly lockFile d5e3e4a2-http-server-0-8-0 [email protected]
44 silly lockFile d5e3e4a2-http-server-0-8-0 [email protected]
45 silly lockFile 550353c6-http-server http-server@
46 silly lockFile 550353c6-http-server http-server@
47 silly resolved [ { name: 'http-server',
47 silly resolved version: '0.8.0',
47 silly resolved description: 'A simple zero-configuration command-line http server',
47 silly resolved main: './lib/http-server',
47 silly resolved repository:
47 silly resolved { type: 'git',
47 silly resolved url: 'git://github.com/indexzero/http-server.git' },
47 silly resolved keywords: [ 'cli', 'command' ],
47 silly resolved scripts:
47 silly resolved { start: 'node ./bin/http-server',
47 silly resolved pretest: 'stylezero bin/ lib/ test',
47 silly resolved test: 'vows --spec --isolate' },
47 silly resolved contributors:
47 silly resolved [ [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object],
47 silly resolved [Object] ],
47 silly resolved dependencies:
47 silly resolved { colors: '1.0.3',
47 silly resolved optimist: '0.6.x',
47 silly resolved union: '~0.4.3',
47 silly resolved ecstatic: '~0.7.0',
47 silly resolved 'http-proxy': '^1.8.1',
47 silly resolved portfinder: '0.4.x',
47 silly resolved opener: '~1.4.0',
47 silly resolved corser: '~2.0.0' },
47 silly resolved devDependencies: { vows: '0.7.x', request: '2.49.x', stylezero: '2.2.0' },
47 silly resolved bugs: { url: 'https://github.com/nodeapps/http-server/issues' },
47 silly resolved licenses: [ [Object] ],
47 silly resolved preferGlobal: 'true',
47 silly resolved bin: { 'http-server': './bin/http-server', hs: './bin/http-server' },
47 silly resolved gitHead: 'ac38a041c954c863fd695b0f70ba251399856812',
47 silly resolved homepage: 'https://github.com/indexzero/http-server',
47 silly resolved _id: '[email protected]',
47 silly resolved _shasum: 'd4b671781ec6bf9fa6a311cd1df683b0b37b1491',
47 silly resolved _from: 'http-server@',
47 silly resolved _npmVersion: '2.2.0',
47 silly resolved _nodeVersion: '0.10.33',
47 silly resolved _npmUser: { name: 'indexzero', email: '[email protected]' },
47 silly resolved maintainers: [ [Object] ],
47 silly resolved dist:
47 silly resolved { shasum: 'd4b671781ec6bf9fa6a311cd1df683b0b37b1491',
47 silly resolved tarball: 'http://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz' },
47 silly resolved directories: {},
47 silly resolved _resolved: 'https://registry.npmjs.org/http-server/-/http-server-0.8.0.tgz' } ]
48 info install [email protected] into /usr/lib
49 info installOne [email protected]
50 verbose lib/node_modules/http-server unbuild
51 verbose tar unpack /home/admin2/.npm/http-server/0.8.0/package.tgz
52 silly lockFile c4aa20d2-usr-lib-node-modules-http-server tar:///usr/lib/node_modules/http-server
53 verbose lock tar:///usr/lib/node_modules/http-server /home/admin2/.npm/c4aa20d2-usr-lib-node-modules-http-server.lock
54 silly lockFile 1d67fbbe-pm-http-server-0-8-0-package-tgz tar:///home/admin2/.npm/http-server/0.8.0/package.tgz
55 verbose lock tar:///home/admin2/.npm/http-server/0.8.0/package.tgz /home/admin2/.npm/1d67fbbe-pm-http-server-0-8-0-package-tgz.lock
56 silly gunzTarPerm modes [ '755', '644' ]
57 error Error: EACCES, mkdir '/usr/lib/node_modules/http-server'
57 error { [Error: EACCES, mkdir '/usr/lib/node_modules/http-server']
57 error errno: 3,
57 error code: 'EACCES',
57 error path: '/usr/lib/node_modules/http-server',
57 error fstream_type: 'Directory',
57 error fstream_path: '/usr/lib/node_modules/http-server',
57 error fstream_class: 'DirWriter',
57 error fstream_stack:
57 error [ '/usr/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
57 error '/usr/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53',
57 error 'Object.oncomplete (fs.js:108:15)' ] }
58 error Please try running this command again as root/Administrator.
59 error System Linux 3.13.0-24-generic
60 error command "/usr/bin/node" "/usr/bin/npm" "install" "-g" "http-server"
61 error cwd /home/admin2/src/39_subjects
62 error node -v v0.10.37
63 error npm -v 1.4.28
64 error path /usr/lib/node_modules/http-server
65 error fstream_path /usr/lib/node_modules/http-server
66 error fstream_type Directory
67 error fstream_class DirWriter
68 error code EACCES
69 error errno 3
70 error stack Error: EACCES, mkdir '/usr/lib/node_modules/http-server'
71 error fstream_stack /usr/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
71 error fstream_stack /usr/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53
71 error fstream_stack Object.oncomplete (fs.js:108:15)
72 verbose exit [ 3, true ]
@import url(http://fonts.googleapis.com/css?family=PT+Serif|PT+Serif:b|PT+Serif:i|PT+Sans|PT+Sans:b);
html {
min-width: 1040px;
}
body {
background: #fcfcfa;
color: #333;
font-family: "PT Serif", serif;
margin: 1em auto 4em auto;
position: relative;
width: 960px;
}
header,
footer,
h1,
h2,
h3,
h4,
aside {
color: #000;
font-family: "PT Sans", sans-serif;
}
h1 {
font-size: 64px;
font-weight: 300;
letter-spacing: -2px;
margin: .3em 0 .1em 0;
}
h2 {
margin-top: 2em;
}
h1, h2 {
text-rendering: optimizeLegibility;
}
h2 a {
color: #ccc;
left: -20px;
position: absolute;
width: 740px;
}
footer {
font-size: small;
margin-top: 8em;
}
header aside {
margin-top: 120px;
}
header aside,
footer aside {
color: #636363;
text-align: right;
}
aside {
font-size: small;
right: 0;
position: absolute;
width: 180px;
}
.attribution {
font-size: small;
margin-bottom: 2em;
}
body > p, li > p {
line-height: 1.5em;
}
body > p {
width: 720px;
}
body > blockquote {
width: 640px;
}
blockquote q {
display: block;
font-style: oblique;
}
li {
width: 680px;
}
a {
color: steelblue;
}
a:not(:hover) {
text-decoration: none;
}
pre, code, textarea {
font-family: "Menlo", monospace;
}
code {
line-height: 1em;
}
textarea {
font-size: 100%;
}
body > pre {
border-left: solid 2px #ccc;
padding-left: 18px;
margin: 2em 0 2em -20px;
}
.html .value,
.javascript .string,
.javascript .regexp {
color: #756bb1;
}
.html .tag,
.css .tag,
.javascript .keyword {
color: #3182bd;
}
.comment {
color: #636363;
}
.html .doctype,
.javascript .number {
color: #31a354;
}
.html .attribute,
.css .attribute,
.javascript .class,
.javascript .special {
color: #e6550d;
}
svg {
font: 10px sans-serif;
}
.axis path, .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
sup, sub {
line-height: 0;
}
q:before {
content: "“";
}
q:after {
content: "”";
}
blockquote:before {
position: absolute;
left: 2em;
}
blockquote:after {
position: absolute;
}
{
"groups": [
"AM Strategy & Planning",
"AM Decision Making",
"Lifecycle Delivery",
"Asset Information",
"Organisation & People",
"Risk & Review"
],
"links": [
{
"source": 26,
"target": 0,
"value": 1
},
{
"source": 27,
"target": 0,
"value": 1
},
{
"source": 28,
"target": 0,
"value": 1
},
{
"source": 38,
"target": 0,
"value": 1
},
{
"source": 0,
"target": 1,
"value": 1
},
{
"source": 2,
"target": 1,
"value": 1
},
{
"source": 10,
"target": 1,
"value": 1
},
{
"source": 26,
"target": 1,
"value": 1
},
{
"source": 27,
"target": 1,
"value": 1
},
{
"source": 30,
"target": 1,
"value": 1
},
{
"source": 34,
"target": 1,
"value": 1
},
{
"source": 35,
"target": 1,
"value": 1
},
{
"source": 36,
"target": 1,
"value": 1
},
{
"source": 38,
"target": 1,
"value": 1
},
{
"source": 22,
"target": 2,
"value": 1
},
{
"source": 23,
"target": 2,
"value": 1
},
{
"source": 24,
"target": 2,
"value": 1
},
{
"source": 34,
"target": 2,
"value": 1
},
{
"source": 38,
"target": 2,
"value": 1
},
{
"source": 1,
"target": 3,
"value": 1
},
{
"source": 5,
"target": 3,
"value": 1
},
{
"source": 10,
"target": 3,
"value": 1
},
{
"source": 3,
"target": 4,
"value": 1
},
{
"source": 5,
"target": 4,
"value": 1
},
{
"source": 6,
"target": 4,
"value": 1
},
{
"source": 7,
"target": 4,
"value": 1
},
{
"source": 8,
"target": 4,
"value": 1
},
{
"source": 9,
"target": 4,
"value": 1
},
{
"source": 10,
"target": 4,
"value": 1
},
{
"source": 15,
"target": 4,
"value": 1
},
{
"source": 23,
"target": 4,
"value": 1
},
{
"source": 24,
"target": 4,
"value": 1
},
{
"source": 27,
"target": 4,
"value": 1
},
{
"source": 29,
"target": 4,
"value": 1
},
{
"source": 30,
"target": 4,
"value": 1
},
{
"source": 31,
"target": 4,
"value": 1
},
{
"source": 32,
"target": 4,
"value": 1
},
{
"source": 34,
"target": 4,
"value": 1
},
{
"source": 37,
"target": 4,
"value": 1
},
{
"source": 38,
"target": 4,
"value": 1
},
{
"source": 0,
"target": 5,
"value": 1
},
{
"source": 1,
"target": 5,
"value": 1
},
{
"source": 7,
"target": 5,
"value": 1
},
{
"source": 10,
"target": 5,
"value": 1
},
{
"source": 22,
"target": 5,
"value": 1
},
{
"source": 23,
"target": 5,
"value": 1
},
{
"source": 24,
"target": 5,
"value": 1
},
{
"source": 5,
"target": 6,
"value": 1
},
{
"source": 8,
"target": 6,
"value": 1
},
{
"source": 9,
"target": 6,
"value": 1
},
{
"source": 15,
"target": 6,
"value": 1
},
{
"source": 16,
"target": 6,
"value": 1
},
{
"source": 24,
"target": 6,
"value": 1
},
{
"source": 25,
"target": 6,
"value": 1
},
{
"source": 27,
"target": 6,
"value": 1
},
{
"source": 28,
"target": 6,
"value": 1
},
{
"source": 29,
"target": 6,
"value": 1
},
{
"source": 30,
"target": 6,
"value": 1
},
{
"source": 31,
"target": 6,
"value": 1
},
{
"source": 34,
"target": 6,
"value": 1
},
{
"source": 37,
"target": 6,
"value": 1
},
{
"source": 38,
"target": 6,
"value": 1
},
{
"source": 1,
"target": 7,
"value": 1
},
{
"source": 5,
"target": 7,
"value": 1
},
{
"source": 6,
"target": 7,
"value": 1
},
{
"source": 0,
"target": 8,
"value": 1
},
{
"source": 1,
"target": 8,
"value": 1
},
{
"source": 2,
"target": 8,
"value": 1
},
{
"source": 4,
"target": 8,
"value": 1
},
{
"source": 24,
"target": 8,
"value": 1
},
{
"source": 25,
"target": 8,
"value": 1
},
{
"source": 29,
"target": 8,
"value": 1
},
{
"source": 1,
"target": 9,
"value": 1
},
{
"source": 27,
"target": 9,
"value": 1
},
{
"source": 29,
"target": 9,
"value": 1
},
{
"source": 30,
"target": 9,
"value": 1
},
{
"source": 31,
"target": 9,
"value": 1
},
{
"source": 33,
"target": 9,
"value": 1
},
{
"source": 4,
"target": 10,
"value": 1
},
{
"source": 38,
"target": 10,
"value": 1
},
{
"source": 1,
"target": 11,
"value": 1
},
{
"source": 3,
"target": 11,
"value": 1
},
{
"source": 4,
"target": 11,
"value": 1
},
{
"source": 5,
"target": 11,
"value": 1
},
{
"source": 6,
"target": 11,
"value": 1
},
{
"source": 7,
"target": 11,
"value": 1
},
{
"source": 12,
"target": 11,
"value": 1
},
{
"source": 15,
"target": 11,
"value": 1
},
{
"source": 23,
"target": 11,
"value": 1
},
{
"source": 24,
"target": 11,
"value": 1
},
{
"source": 25,
"target": 11,
"value": 1
},
{
"source": 30,
"target": 11,
"value": 1
},
{
"source": 32,
"target": 11,
"value": 1
},
{
"source": 33,
"target": 11,
"value": 1
},
{
"source": 37,
"target": 11,
"value": 1
},
{
"source": 4,
"target": 12,
"value": 1
},
{
"source": 8,
"target": 12,
"value": 1
},
{
"source": 10,
"target": 12,
"value": 1
},
{
"source": 24,
"target": 12,
"value": 1
},
{
"source": 29,
"target": 12,
"value": 1
},
{
"source": 4,
"target": 13,
"value": 1
},
{
"source": 21,
"target": 13,
"value": 1
},
{
"source": 22,
"target": 13,
"value": 1
},
{
"source": 24,
"target": 13,
"value": 1
},
{
"source": 33,
"target": 13,
"value": 1
},
{
"source": 36,
"target": 13,
"value": 1
},
{
"source": 1,
"target": 14,
"value": 1
},
{
"source": 4,
"target": 14,
"value": 1
},
{
"source": 6,
"target": 14,
"value": 1
},
{
"source": 10,
"target": 14,
"value": 1
},
{
"source": 16,
"target": 14,
"value": 1
},
{
"source": 17,
"target": 14,
"value": 1
},
{
"source": 18,
"target": 14,
"value": 1
},
{
"source": 23,
"target": 14,
"value": 1
},
{
"source": 24,
"target": 14,
"value": 1
},
{
"source": 25,
"target": 14,
"value": 1
},
{
"source": 27,
"target": 14,
"value": 1
},
{
"source": 28,
"target": 14,
"value": 1
},
{
"source": 29,
"target": 14,
"value": 1
},
{
"source": 30,
"target": 14,
"value": 1
},
{
"source": 31,
"target": 14,
"value": 1
},
{
"source": 34,
"target": 14,
"value": 1
},
{
"source": 10,
"target": 15,
"value": 1
},
{
"source": 12,
"target": 15,
"value": 1
},
{
"source": 30,
"target": 15,
"value": 1
},
{
"source": 1,
"target": 16,
"value": 1
},
{
"source": 2,
"target": 16,
"value": 1
},
{
"source": 4,
"target": 16,
"value": 1
},
{
"source": 6,
"target": 16,
"value": 1
},
{
"source": 14,
"target": 16,
"value": 1
},
{
"source": 17,
"target": 16,
"value": 1
},
{
"source": 18,
"target": 16,
"value": 1
},
{
"source": 19,
"target": 16,
"value": 1
},
{
"source": 23,
"target": 16,
"value": 1
},
{
"source": 24,
"target": 16,
"value": 1
},
{
"source": 25,
"target": 16,
"value": 1
},
{
"source": 27,
"target": 16,
"value": 1
},
{
"source": 28,
"target": 16,
"value": 1
},
{
"source": 29,
"target": 16,
"value": 1
},
{
"source": 30,
"target": 16,
"value": 1
},
{
"source": 31,
"target": 16,
"value": 1
},
{
"source": 4,
"target": 17,
"value": 1
},
{
"source": 25,
"target": 17,
"value": 1
},
{
"source": 27,
"target": 17,
"value": 1
},
{
"source": 29,
"target": 17,
"value": 1
},
{
"source": 30,
"target": 17,
"value": 1
},
{
"source": 4,
"target": 18,
"value": 1
},
{
"source": 6,
"target": 18,
"value": 1
},
{
"source": 10,
"target": 18,
"value": 1
},
{
"source": 13,
"target": 18,
"value": 1
},
{
"source": 17,
"target": 18,
"value": 1
},
{
"source": 23,
"target": 18,
"value": 1
},
{
"source": 24,
"target": 18,
"value": 1
},
{
"source": 25,
"target": 18,
"value": 1
},
{
"source": 29,
"target": 18,
"value": 1
},
{
"source": 30,
"target": 18,
"value": 1
},
{
"source": 31,
"target": 18,
"value": 1
},
{
"source": 33,
"target": 18,
"value": 1
},
{
"source": 34,
"target": 18,
"value": 1
},
{
"source": 17,
"target": 19,
"value": 1
},
{
"source": 24,
"target": 19,
"value": 1
},
{
"source": 27,
"target": 19,
"value": 1
},
{
"source": 30,
"target": 19,
"value": 1
},
{
"source": 31,
"target": 19,
"value": 1
},
{
"source": 34,
"target": 19,
"value": 1
},
{
"source": 36,
"target": 19,
"value": 1
},
{
"source": 37,
"target": 19,
"value": 1
},
{
"source": 4,
"target": 20,
"value": 1
},
{
"source": 24,
"target": 20,
"value": 1
},
{
"source": 1,
"target": 21,
"value": 1
},
{
"source": 10,
"target": 21,
"value": 1
},
{
"source": 27,
"target": 21,
"value": 1
},
{
"source": 28,
"target": 21,
"value": 1
},
{
"source": 29,
"target": 21,
"value": 1
},
{
"source": 10,
"target": 22,
"value": 1
},
{
"source": 21,
"target": 22,
"value": 1
},
{
"source": 1,
"target": 23,
"value": 1
},
{
"source": 21,
"target": 23,
"value": 1
},
{
"source": 22,
"target": 23,
"value": 1
},
{
"source": 36,
"target": 23,
"value": 1
},
{
"source": 12,
"target": 24,
"value": 1
},
{
"source": 13,
"target": 24,
"value": 1
},
{
"source": 19,
"target": 24,
"value": 1
},
{
"source": 34,
"target": 24,
"value": 1
},
{
"source": 35,
"target": 24,
"value": 1
},
{
"source": 36,
"target": 24,
"value": 1
},
{
"source": 1,
"target": 25,
"value": 1
},
{
"source": 3,
"target": 25,
"value": 1
},
{
"source": 4,
"target": 25,
"value": 1
},
{
"source": 8,
"target": 25,
"value": 1
},
{
"source": 9,
"target": 25,
"value": 1
},
{
"source": 12,
"target": 25,
"value": 1
},
{
"source": 17,
"target": 25,
"value": 1
},
{
"source": 18,
"target": 25,
"value": 1
},
{
"source": 19,
"target": 25,
"value": 1
},
{
"source": 20,
"target": 25,
"value": 1
},
{
"source": 24,
"target": 25,
"value": 1
},
{
"source": 27,
"target": 25,
"value": 1
},
{
"source": 28,
"target": 25,
"value": 1
},
{
"source": 29,
"target": 25,
"value": 1
},
{
"source": 30,
"target": 25,
"value": 1
},
{
"source": 35,
"target": 25,
"value": 1
},
{
"source": 0,
"target": 26,
"value": 1
},
{
"source": 1,
"target": 26,
"value": 1
},
{
"source": 27,
"target": 26,
"value": 1
},
{
"source": 28,
"target": 26,
"value": 1
},
{
"source": 38,
"target": 26,
"value": 1
},
{
"source": 0,
"target": 27,
"value": 1
},
{
"source": 1,
"target": 27,
"value": 1
},
{
"source": 26,
"target": 27,
"value": 1
},
{
"source": 28,
"target": 27,
"value": 1
},
{
"source": 38,
"target": 27,
"value": 1
},
{
"source": 26,
"target": 28,
"value": 1
},
{
"source": 0,
"target": 29,
"value": 1
},
{
"source": 1,
"target": 29,
"value": 1
},
{
"source": 8,
"target": 29,
"value": 1
},
{
"source": 25,
"target": 29,
"value": 1
},
{
"source": 30,
"target": 29,
"value": 1
},
{
"source": 37,
"target": 29,
"value": 1
},
{
"source": 1,
"target": 30,
"value": 1
},
{
"source": 5,
"target": 30,
"value": 1
},
{
"source": 6,
"target": 30,
"value": 1
},
{
"source": 10,
"target": 30,
"value": 1
},
{
"source": 12,
"target": 30,
"value": 1
},
{
"source": 15,
"target": 30,
"value": 1
},
{
"source": 19,
"target": 30,
"value": 1
},
{
"source": 24,
"target": 30,
"value": 1
},
{
"source": 31,
"target": 30,
"value": 1
},
{
"source": 32,
"target": 30,
"value": 1
},
{
"source": 33,
"target": 30,
"value": 1
},
{
"source": 34,
"target": 30,
"value": 1
},
{
"source": 35,
"target": 30,
"value": 1
},
{
"source": 36,
"target": 30,
"value": 1
},
{
"source": 37,
"target": 30,
"value": 1
},
{
"source": 1,
"target": 31,
"value": 1
},
{
"source": 10,
"target": 31,
"value": 1
},
{
"source": 19,
"target": 31,
"value": 1
},
{
"source": 23,
"target": 31,
"value": 1
},
{
"source": 24,
"target": 31,
"value": 1
},
{
"source": 30,
"target": 31,
"value": 1
},
{
"source": 36,
"target": 31,
"value": 1
},
{
"source": 0,
"target": 32,
"value": 1
},
{
"source": 1,
"target": 32,
"value": 1
},
{
"source": 10,
"target": 32,
"value": 1
},
{
"source": 11,
"target": 32,
"value": 1
},
{
"source": 20,
"target": 32,
"value": 1
},
{
"source": 24,
"target": 32,
"value": 1
},
{
"source": 25,
"target": 32,
"value": 1
},
{
"source": 31,
"target": 33,
"value": 1
},
{
"source": 32,
"target": 33,
"value": 1
},
{
"source": 38,
"target": 33,
"value": 1
},
{
"source": 2,
"target": 34,
"value": 1
},
{
"source": 15,
"target": 34,
"value": 1
},
{
"source": 16,
"target": 34,
"value": 1
},
{
"source": 19,
"target": 34,
"value": 1
},
{
"source": 23,
"target": 34,
"value": 1
},
{
"source": 24,
"target": 34,
"value": 1
},
{
"source": 35,
"target": 34,
"value": 1
},
{
"source": 36,
"target": 34,
"value": 1
},
{
"source": 37,
"target": 34,
"value": 1
},
{
"source": 1,
"target": 35,
"value": 1
},
{
"source": 23,
"target": 35,
"value": 1
},
{
"source": 24,
"target": 35,
"value": 1
},
{
"source": 29,
"target": 35,
"value": 1
},
{
"source": 30,
"target": 35,
"value": 1
},
{
"source": 34,
"target": 35,
"value": 1
},
{
"source": 36,
"target": 35,
"value": 1
},
{
"source": 1,
"target": 36,
"value": 1
},
{
"source": 10,
"target": 36,
"value": 1
},
{
"source": 19,
"target": 36,
"value": 1
},
{
"source": 23,
"target": 36,
"value": 1
},
{
"source": 24,
"target": 36,
"value": 1
},
{
"source": 29,
"target": 36,
"value": 1
},
{
"source": 30,
"target": 36,
"value": 1
},
{
"source": 34,
"target": 36,
"value": 1
},
{
"source": 35,
"target": 36,
"value": 1
},
{
"source": 38,
"target": 36,
"value": 1
},
{
"source": 1,
"target": 37,
"value": 1
},
{
"source": 3,
"target": 37,
"value": 1
},
{
"source": 4,
"target": 37,
"value": 1
},
{
"source": 5,
"target": 37,
"value": 1
},
{
"source": 6,
"target": 37,
"value": 1
},
{
"source": 7,
"target": 37,
"value": 1
},
{
"source": 24,
"target": 37,
"value": 1
},
{
"source": 34,
"target": 37,
"value": 1
},
{
"source": 0,
"target": 38,
"value": 1
},
{
"source": 1,
"target": 38,
"value": 1
},
{
"source": 10,
"target": 38,
"value": 1
},
{
"source": 18,
"target": 38,
"value": 1
},
{
"source": 19,
"target": 38,
"value": 1
},
{
"source": 24,
"target": 38,
"value": 1
},
{
"source": 25,
"target": 38,
"value": 1
},
{
"source": 26,
"target": 38,
"value": 1
},
{
"source": 30,
"target": 38,
"value": 1
},
{
"source": 33,
"target": 38,
"value": 1
},
{
"source": 36,
"target": 38,
"value": 1
}
],
"nodes": [
{
"group": 0,
"name": "AM Policy"
},
{
"group": 0,
"name": "AM Strategy & Objectives"
},
{
"group": 0,
"name": "Demand Analysis"
},
{
"group": 0,
"name": "Strategic Planning"
},
{
"group": 0,
"name": "AM Planning"
},
{
"group": 1,
"name": "Capital investment decision making"
},
{
"group": 1,
"name": "Ops & maintenance decision making"
},
{
"group": 1,
"name": "Lifecycle value realisation"
},
{
"group": 1,
"name": "Resourcing strategy"
},
{
"group": 1,
"name": "Shutdowns and outage strategy"
},
{
"group": 2,
"name": "Technical Standards & legislation"
},
{
"group": 2,
"name": "Asset creation & acquisition"
},
{
"group": 2,
"name": "Systems engineering"
},
{
"group": 2,
"name": "Configuration management"
},
{
"group": 2,
"name": "Maintenance delivery"
},
{
"group": 2,
"name": "Reliability engineering"
},
{
"group": 2,
"name": "Asset operations"
},
{
"group": 2,
"name": "Resource management"
},
{
"group": 2,
"name": "Shutdown & outage management"
},
{
"group": 2,
"name": "Fault & incident response"
},
{
"group": 2,
"name": "Asset decomissioning & disposal"
},
{
"group": 3,
"name": "Asset Information Strategy"
},
{
"group": 3,
"name": "Asset information standards"
},
{
"group": 3,
"name": "Asset information systems"
},
{
"group": 3,
"name": "Data & information management"
},
{
"group": 4,
"name": "Procurement & supply chain management"
},
{
"group": 4,
"name": "Asset management leadership"
},
{
"group": 4,
"name": "Organisational structure"
},
{
"group": 4,
"name": "Organisational culture"
},
{
"group": 4,
"name": "Competence management"
},
{
"group": 5,
"name": "Risk assessment & management"
},
{
"group": 5,
"name": "Contingency planning & resilience analysis"
},
{
"group": 5,
"name": "Sustainable development"
},
{
"group": 5,
"name": "Management of change"
},
{
"group": 5,
"name": "Asset performance & health monitoring"
},
{
"group": 5,
"name": "Asset management system monitoring"
},
{
"group": 5,
"name": "management review, audit and assurance"
},
{
"group": 5,
"name": "Asset costing & valuation"
},
{
"group": 5,
"name": "Stakeholder engagement"
}
]
}
{
"nodes":[
{"name":"Myriel","group":1},
{"name":"Napoleon","group":1},
{"name":"Mlle.Baptistine","group":1},
{"name":"Mme.Magloire","group":1},
{"name":"CountessdeLo","group":1},
{"name":"Geborand","group":1},
{"name":"Champtercier","group":1},
{"name":"Cravatte","group":1},
{"name":"Count","group":1},
{"name":"OldMan","group":1},
{"name":"Labarre","group":2},
{"name":"Valjean","group":2},
{"name":"Marguerite","group":3},
{"name":"Mme.deR","group":2},
{"name":"Isabeau","group":2},
{"name":"Gervais","group":2},
{"name":"Tholomyes","group":3},
{"name":"Listolier","group":3},
{"name":"Fameuil","group":3},
{"name":"Blacheville","group":3},
{"name":"Favourite","group":3},
{"name":"Dahlia","group":3},
{"name":"Zephine","group":3},
{"name":"Fantine","group":3},
{"name":"Mme.Thenardier","group":4},
{"name":"Thenardier","group":4},
{"name":"Cosette","group":5},
{"name":"Javert","group":4},
{"name":"Fauchelevent","group":0},
{"name":"Bamatabois","group":2},
{"name":"Perpetue","group":3},
{"name":"Simplice","group":2},
{"name":"Scaufflaire","group":2},
{"name":"Woman1","group":2},
{"name":"Judge","group":2},
{"name":"Champmathieu","group":2},
{"name":"Brevet","group":2},
{"name":"Chenildieu","group":2},
{"name":"Cochepaille","group":2},
{"name":"Pontmercy","group":4},
{"name":"Boulatruelle","group":6},
{"name":"Eponine","group":4},
{"name":"Anzelma","group":4},
{"name":"Woman2","group":5},
{"name":"MotherInnocent","group":0},
{"name":"Gribier","group":0},
{"name":"Jondrette","group":7},
{"name":"Mme.Burgon","group":7},
{"name":"Gavroche","group":8},
{"name":"Gillenormand","group":5},
{"name":"Magnon","group":5},
{"name":"Mlle.Gillenormand","group":5},
{"name":"Mme.Pontmercy","group":5},
{"name":"Mlle.Vaubois","group":5},
{"name":"Lt.Gillenormand","group":5},
{"name":"Marius","group":8},
{"name":"BaronessT","group":5},
{"name":"Mabeuf","group":8},
{"name":"Enjolras","group":8},
{"name":"Combeferre","group":8},
{"name":"Prouvaire","group":8},
{"name":"Feuilly","group":8},
{"name":"Courfeyrac","group":8},
{"name":"Bahorel","group":8},
{"name":"Bossuet","group":8},
{"name":"Joly","group":8},
{"name":"Grantaire","group":8},
{"name":"MotherPlutarch","group":9},
{"name":"Gueulemer","group":4},
{"name":"Babet","group":4},
{"name":"Claquesous","group":4},
{"name":"Montparnasse","group":4},
{"name":"Toussaint","group":5},
{"name":"Child1","group":10},
{"name":"Child2","group":10},
{"name":"Brujon","group":4},
{"name":"Mme.Hucheloup","group":8}
],
"links":[
{"source":1,"target":0,"value":1},
{"source":2,"target":0,"value":8},
{"source":3,"target":0,"value":10},
{"source":3,"target":2,"value":6},
{"source":4,"target":0,"value":1},
{"source":5,"target":0,"value":1},
{"source":6,"target":0,"value":1},
{"source":7,"target":0,"value":1},
{"source":8,"target":0,"value":2},
{"source":9,"target":0,"value":1},
{"source":11,"target":10,"value":1},
{"source":11,"target":3,"value":3},
{"source":11,"target":2,"value":3},
{"source":11,"target":0,"value":5},
{"source":12,"target":11,"value":1},
{"source":13,"target":11,"value":1},
{"source":14,"target":11,"value":1},
{"source":15,"target":11,"value":1},
{"source":17,"target":16,"value":4},
{"source":18,"target":16,"value":4},
{"source":18,"target":17,"value":4},
{"source":19,"target":16,"value":4},
{"source":19,"target":17,"value":4},
{"source":19,"target":18,"value":4},
{"source":20,"target":16,"value":3},
{"source":20,"target":17,"value":3},
{"source":20,"target":18,"value":3},
{"source":20,"target":19,"value":4},
{"source":21,"target":16,"value":3},
{"source":21,"target":17,"value":3},
{"source":21,"target":18,"value":3},
{"source":21,"target":19,"value":3},
{"source":21,"target":20,"value":5},
{"source":22,"target":16,"value":3},
{"source":22,"target":17,"value":3},
{"source":22,"target":18,"value":3},
{"source":22,"target":19,"value":3},
{"source":22,"target":20,"value":4},
{"source":22,"target":21,"value":4},
{"source":23,"target":16,"value":3},
{"source":23,"target":17,"value":3},
{"source":23,"target":18,"value":3},
{"source":23,"target":19,"value":3},
{"source":23,"target":20,"value":4},
{"source":23,"target":21,"value":4},
{"source":23,"target":22,"value":4},
{"source":23,"target":12,"value":2},
{"source":23,"target":11,"value":9},
{"source":24,"target":23,"value":2},
{"source":24,"target":11,"value":7},
{"source":25,"target":24,"value":13},
{"source":25,"target":23,"value":1},
{"source":25,"target":11,"value":12},
{"source":26,"target":24,"value":4},
{"source":26,"target":11,"value":31},
{"source":26,"target":16,"value":1},
{"source":26,"target":25,"value":1},
{"source":27,"target":11,"value":17},
{"source":27,"target":23,"value":5},
{"source":27,"target":25,"value":5},
{"source":27,"target":24,"value":1},
{"source":27,"target":26,"value":1},
{"source":28,"target":11,"value":8},
{"source":28,"target":27,"value":1},
{"source":29,"target":23,"value":1},
{"source":29,"target":27,"value":1},
{"source":29,"target":11,"value":2},
{"source":30,"target":23,"value":1},
{"source":31,"target":30,"value":2},
{"source":31,"target":11,"value":3},
{"source":31,"target":23,"value":2},
{"source":31,"target":27,"value":1},
{"source":32,"target":11,"value":1},
{"source":33,"target":11,"value":2},
{"source":33,"target":27,"value":1},
{"source":34,"target":11,"value":3},
{"source":34,"target":29,"value":2},
{"source":35,"target":11,"value":3},
{"source":35,"target":34,"value":3},
{"source":35,"target":29,"value":2},
{"source":36,"target":34,"value":2},
{"source":36,"target":35,"value":2},
{"source":36,"target":11,"value":2},
{"source":36,"target":29,"value":1},
{"source":37,"target":34,"value":2},
{"source":37,"target":35,"value":2},
{"source":37,"target":36,"value":2},
{"source":37,"target":11,"value":2},
{"source":37,"target":29,"value":1},
{"source":38,"target":34,"value":2},
{"source":38,"target":35,"value":2},
{"source":38,"target":36,"value":2},
{"source":38,"target":37,"value":2},
{"source":38,"target":11,"value":2},
{"source":38,"target":29,"value":1},
{"source":39,"target":25,"value":1},
{"source":40,"target":25,"value":1},
{"source":41,"target":24,"value":2},
{"source":41,"target":25,"value":3},
{"source":42,"target":41,"value":2},
{"source":42,"target":25,"value":2},
{"source":42,"target":24,"value":1},
{"source":43,"target":11,"value":3},
{"source":43,"target":26,"value":1},
{"source":43,"target":27,"value":1},
{"source":44,"target":28,"value":3},
{"source":44,"target":11,"value":1},
{"source":45,"target":28,"value":2},
{"source":47,"target":46,"value":1},
{"source":48,"target":47,"value":2},
{"source":48,"target":25,"value":1},
{"source":48,"target":27,"value":1},
{"source":48,"target":11,"value":1},
{"source":49,"target":26,"value":3},
{"source":49,"target":11,"value":2},
{"source":50,"target":49,"value":1},
{"source":50,"target":24,"value":1},
{"source":51,"target":49,"value":9},
{"source":51,"target":26,"value":2},
{"source":51,"target":11,"value":2},
{"source":52,"target":51,"value":1},
{"source":52,"target":39,"value":1},
{"source":53,"target":51,"value":1},
{"source":54,"target":51,"value":2},
{"source":54,"target":49,"value":1},
{"source":54,"target":26,"value":1},
{"source":55,"target":51,"value":6},
{"source":55,"target":49,"value":12},
{"source":55,"target":39,"value":1},
{"source":55,"target":54,"value":1},
{"source":55,"target":26,"value":21},
{"source":55,"target":11,"value":19},
{"source":55,"target":16,"value":1},
{"source":55,"target":25,"value":2},
{"source":55,"target":41,"value":5},
{"source":55,"target":48,"value":4},
{"source":56,"target":49,"value":1},
{"source":56,"target":55,"value":1},
{"source":57,"target":55,"value":1},
{"source":57,"target":41,"value":1},
{"source":57,"target":48,"value":1},
{"source":58,"target":55,"value":7},
{"source":58,"target":48,"value":7},
{"source":58,"target":27,"value":6},
{"source":58,"target":57,"value":1},
{"source":58,"target":11,"value":4},
{"source":59,"target":58,"value":15},
{"source":59,"target":55,"value":5},
{"source":59,"target":48,"value":6},
{"source":59,"target":57,"value":2},
{"source":60,"target":48,"value":1},
{"source":60,"target":58,"value":4},
{"source":60,"target":59,"value":2},
{"source":61,"target":48,"value":2},
{"source":61,"target":58,"value":6},
{"source":61,"target":60,"value":2},
{"source":61,"target":59,"value":5},
{"source":61,"target":57,"value":1},
{"source":61,"target":55,"value":1},
{"source":62,"target":55,"value":9},
{"source":62,"target":58,"value":17},
{"source":62,"target":59,"value":13},
{"source":62,"target":48,"value":7},
{"source":62,"target":57,"value":2},
{"source":62,"target":41,"value":1},
{"source":62,"target":61,"value":6},
{"source":62,"target":60,"value":3},
{"source":63,"target":59,"value":5},
{"source":63,"target":48,"value":5},
{"source":63,"target":62,"value":6},
{"source":63,"target":57,"value":2},
{"source":63,"target":58,"value":4},
{"source":63,"target":61,"value":3},
{"source":63,"target":60,"value":2},
{"source":63,"target":55,"value":1},
{"source":64,"target":55,"value":5},
{"source":64,"target":62,"value":12},
{"source":64,"target":48,"value":5},
{"source":64,"target":63,"value":4},
{"source":64,"target":58,"value":10},
{"source":64,"target":61,"value":6},
{"source":64,"target":60,"value":2},
{"source":64,"target":59,"value":9},
{"source":64,"target":57,"value":1},
{"source":64,"target":11,"value":1},
{"source":65,"target":63,"value":5},
{"source":65,"target":64,"value":7},
{"source":65,"target":48,"value":3},
{"source":65,"target":62,"value":5},
{"source":65,"target":58,"value":5},
{"source":65,"target":61,"value":5},
{"source":65,"target":60,"value":2},
{"source":65,"target":59,"value":5},
{"source":65,"target":57,"value":1},
{"source":65,"target":55,"value":2},
{"source":66,"target":64,"value":3},
{"source":66,"target":58,"value":3},
{"source":66,"target":59,"value":1},
{"source":66,"target":62,"value":2},
{"source":66,"target":65,"value":2},
{"source":66,"target":48,"value":1},
{"source":66,"target":63,"value":1},
{"source":66,"target":61,"value":1},
{"source":66,"target":60,"value":1},
{"source":67,"target":57,"value":3},
{"source":68,"target":25,"value":5},
{"source":68,"target":11,"value":1},
{"source":68,"target":24,"value":1},
{"source":68,"target":27,"value":1},
{"source":68,"target":48,"value":1},
{"source":68,"target":41,"value":1},
{"source":69,"target":25,"value":6},
{"source":69,"target":68,"value":6},
{"source":69,"target":11,"value":1},
{"source":69,"target":24,"value":1},
{"source":69,"target":27,"value":2},
{"source":69,"target":48,"value":1},
{"source":69,"target":41,"value":1},
{"source":70,"target":25,"value":4},
{"source":70,"target":69,"value":4},
{"source":70,"target":68,"value":4},
{"source":70,"target":11,"value":1},
{"source":70,"target":24,"value":1},
{"source":70,"target":27,"value":1},
{"source":70,"target":41,"value":1},
{"source":70,"target":58,"value":1},
{"source":71,"target":27,"value":1},
{"source":71,"target":69,"value":2},
{"source":71,"target":68,"value":2},
{"source":71,"target":70,"value":2},
{"source":71,"target":11,"value":1},
{"source":71,"target":48,"value":1},
{"source":71,"target":41,"value":1},
{"source":71,"target":25,"value":1},
{"source":72,"target":26,"value":2},
{"source":72,"target":27,"value":1},
{"source":72,"target":11,"value":1},
{"source":73,"target":48,"value":2},
{"source":74,"target":48,"value":2},
{"source":74,"target":73,"value":3},
{"source":75,"target":69,"value":3},
{"source":75,"target":68,"value":3},
{"source":75,"target":25,"value":3},
{"source":75,"target":48,"value":1},
{"source":75,"target":41,"value":1},
{"source":75,"target":70,"value":1},
{"source":75,"target":71,"value":1},
{"source":76,"target":64,"value":1},
{"source":76,"target":65,"value":1},
{"source":76,"target":66,"value":1},
{"source":76,"target":63,"value":1},
{"source":76,"target":62,"value":1},
{"source":76,"target":48,"value":1},
{"source":76,"target":58,"value":1}
]
}
import csv
import json
import numpy as np
with open('Copy of 39 Subjects Force Directed Graph V0 1.txt','rb') as tsv:
AoA = csv.reader(tsv, delimiter='\t')
Subjects = np.array([np.array(row) for row in AoA])
Groups = filter(None,Subjects[:,0])
Group_idx = np.where( Subjects[:,0]!='')[0]
nodes = filter(None,Subjects[:,1])
nodes_idx = np.where( Subjects[:,1]!='')[0]
nodes = zip(nodes,nodes_idx)
nodes = [ {"name":node,"group":np.where(Group_idx<=idx)[0][-1]} for node,idx in nodes]
Dependancy_Matrix = Subjects[2:,2:]
links = np.where( Dependancy_Matrix!='')
links = zip(links[0],links[1])
links = [ {"source":s,"target":t,"value":1} for t,s in links]
print json.dumps({'groups':Groups,'nodes':nodes,'links':links}, sort_keys=True,
indent=4, separators=(',', ': '))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment