Skip to content

Instantly share code, notes, and snippets.

@Richard-Mathie
Last active May 12, 2017 16:17
Show Gist options
  • Select an option

  • Save Richard-Mathie/699be412f0b63ddeca15 to your computer and use it in GitHub Desktop.

Select an option

Save Richard-Mathie/699be412f0b63ddeca15 to your computer and use it in GitHub Desktop.
The 39 Subjects of Asset Management
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);
.node {
stroke: #fff;
stroke-width: 1.5px;
stroke-opacity: .6;
}
.node.mouseover {
stroke-opacity: 1;
}
.link {
/*stroke: #999;*/
stroke-opacity: .6;
stroke-width: 1.5px;
fill: none;
}
.link.mouseover {
stroke-opacity: 1;
}
pre {
display:none;
}
.d3-tip {
line-height: 1;
font-weight: bold;
font-size: 13px;
padding: 12px;
background: rgba(0, 0, 0, 0.8);
color: #fff;
border-radius: 2px;
/*text-align: center;*/
}
/* Creates a small triangle extender for the tooltip */
.d3-tip:after {
box-sizing: border-box;
display: inline;
font-size: 10px;
width: 100%;
line-height: 1;
color: rgba(0, 0, 0, 0.8);
content: "\25BC";
position: absolute;
text-align: center;
}
/* Style northward tooltips differently */
.d3-tip.n:after {
margin: -1px 0 0 0;
top: 100%;
left: 0;
}
svg {
font: 10px sans-serif;
}
</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script>
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/queue-async/1.0.7/queue.min.js"></script>-->
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.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>This force directed graph 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>
<p>Each coloured circle represents a subject with the color represnting the subject group. And each link represents the inputs to that subject.</p>
<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 width = 720,
height = 720;
var nodes =[],
links =[],
bilinks = [],
nodeRadius = 10,
tb = 0,
retind = 1;
var color = d3.scale
.ordinal()
.domain(d3.range(10))
.range(
['#ffc000', '#92d050', '#00b0f0', '#cc3399', '#ff0000', '#ff6600']
);
var force = d3.layout.force()
.charge(-75)
.linkDistance(50)
.size([width, height]);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("subjects.json",function(error,graph){
if (error) throw error;
// Add a tool tip
/* Initialize tooltip */
tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-20, -40])
.html(function(d, i) {
return "<strong>Subject:</strong> <span style='color:"+color(d.group)+"'>" + d.name + "</span>";
});
/* Invoke the tip in the context of your visualization */
svg.call(tip)
// clone of nodes as array and set up link holders
var nodes = d3.values(graph.nodes);
// introduce two links for each set of nodes for bezier curve
graph.links.forEach(function(link, ind, arr) {
//uniquely identify links thats return
for (var j = ind; j < arr.length; j++){
if (link.source != graph.links[j].target) {
continue;
} else if (link.target != arr[j].source) {
continue;
} else {
link.ret = retind
arr[j].ret = retind
retind += 1
}
}
link.ret = link.ret || 0
var s = graph.nodes[link.source],
t = graph.nodes[link.target],
i = {"group": s.group, name: s.name+' - '+t.name}; // intermediate node
nodes.push(i);
links.push(
{source: s, target: i},
{source: i, target: t}
);
bilinks.push([s, i, t]);
bilinks[bilinks.length-1].id = ind
});
force
.nodes(nodes)
.links(links)
.start();
// append a path to each of the links (2x expected for aesthetic curve)
link = svg.selectAll(".link")
.data(bilinks)
.enter().append("path")
.attr("class", function(link) { return "link " })
.attr("stroke",function(d){
return color(d[0].group);
})
/*var link = svg.selectAll(".link")
.data(links)
.enter().append("line")
.attr("class", "link")
.attr("stroke",function(d){
return color(d.source.group);
})
.style("stroke-width", function(d) { return Math.sqrt(d.value); });*/
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("circle")
.attr("class", "node")
.attr("r", nodeRadius)
.style("fill", function(d) { return color(d.group); })
.on('mouseover.tip', tip.show )
.on('mouseover.highlight',function(d){
//links.filter(function(l){return l.source==d})
//node.filter()
//d3.select(this).classed('mouseover',true)
})
.on('mouseout.tip', tip.hide )
.on('mouseout.highlight',function(d){
d3.selectAll('node').classed('mouseover',false)
d3.selectAll('link').classed('mouseover',false)
})
.call(force.drag);
node.append("title")
.text(function(d) { return d.name; });
force.on("tick", function() {
/* link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
});*/
node.attr("transform", nodeTick);
link.attr("d", linkTick);
});
function nodeTick(d) {
var rad = nodeRadius;
d.x = Math.max(0 + rad + 1, Math.min(width - rad - 1 - tb, d.x));
d.y = Math.max(rad + 1, Math.min(height - rad - 1, d.y));
return "translate(" + d.x + "," + d.y + ")";
};
function linkTick(d,i) {
var sourceX = d[0].x;
var sourceY = d[0].y;
var targetX = d[2].x;
var targetY = d[2].y;
var theta = Math.atan((targetX - sourceX) / (targetY - sourceY));
var phi = Math.atan((targetY - sourceY) / (targetX - sourceX));
var sinTheta = nodeRadius * Math.sin(theta);
var cosTheta = nodeRadius * Math.cos(theta);
var sinPhi = nodeRadius * Math.sin(phi);
var cosPhi = nodeRadius * Math.cos(phi);
if (d[2].y > d[0].y) {
sourceX = sourceX + sinTheta;
sourceY = sourceY + cosTheta;
}
else {
sourceX = sourceX - sinTheta;
sourceY = sourceY - cosTheta;
}
if (d[0].x > d[2].x) {
targetX = targetX + cosPhi;
targetY = targetY + sinPhi;
}
else {
targetX = targetX - cosPhi;
targetY = targetY - sinPhi;
}
d[0].x = Math.max(0, Math.min(width - tb - 1, d[0].x));
d[0].y = Math.max(0, Math.min(height - 1, d[0].y));
d[1].x = Math.max(0, Math.min(width - tb - 1, d[1].x));
d[1].y = Math.max(0, Math.min(height - 1, d[1].y));
d[2].x = Math.max(0, Math.min(width - tb - 1, d[2].x));
d[2].y = Math.max(0, Math.min(height - 1, d[2].y));
targetX = Math.max(0, Math.min(width - tb - 1, targetX));
targetY = Math.max(0, Math.min(height - 1, targetY));
sourceX = Math.max(0, Math.min(width - tb - 1, sourceX));
sourceY = Math.max(0, Math.min(height - 1, sourceY));
return "M" + sourceX + "," + sourceY
+ "S" + d[1].x + "," + d[1].y
+ " " + targetX + "," + targetY;
};
d3.select('aside#info')
.append('div')
.classed('legend',true)
.append('div')
.classed('legend_title',true)
.text('Groups')
.selectAll('div.item').data(graph.groups).enter()
.append('div').classed('item',true)
.style('background-color',function(d,i){return color(i);})
.text(function(d){return d;})
});
</script>
<body>
</body>
@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
},
{
"source": 27,
"target": 0
},
{
"source": 28,
"target": 0
},
{
"source": 38,
"target": 0
},
{
"source": 0,
"target": 1
},
{
"source": 2,
"target": 1
},
{
"source": 10,
"target": 1
},
{
"source": 26,
"target": 1
},
{
"source": 27,
"target": 1
},
{
"source": 30,
"target": 1
},
{
"source": 34,
"target": 1
},
{
"source": 35,
"target": 1
},
{
"source": 36,
"target": 1
},
{
"source": 38,
"target": 1
},
{
"source": 22,
"target": 2
},
{
"source": 23,
"target": 2
},
{
"source": 24,
"target": 2
},
{
"source": 34,
"target": 2
},
{
"source": 38,
"target": 2
},
{
"source": 1,
"target": 3
},
{
"source": 5,
"target": 3
},
{
"source": 10,
"target": 3
},
{
"source": 3,
"target": 4
},
{
"source": 5,
"target": 4
},
{
"source": 6,
"target": 4
},
{
"source": 7,
"target": 4
},
{
"source": 8,
"target": 4
},
{
"source": 9,
"target": 4
},
{
"source": 10,
"target": 4
},
{
"source": 15,
"target": 4
},
{
"source": 23,
"target": 4
},
{
"source": 24,
"target": 4
},
{
"source": 27,
"target": 4
},
{
"source": 29,
"target": 4
},
{
"source": 30,
"target": 4
},
{
"source": 31,
"target": 4
},
{
"source": 32,
"target": 4
},
{
"source": 34,
"target": 4
},
{
"source": 37,
"target": 4
},
{
"source": 38,
"target": 4
},
{
"source": 0,
"target": 5
},
{
"source": 1,
"target": 5
},
{
"source": 7,
"target": 5
},
{
"source": 10,
"target": 5
},
{
"source": 22,
"target": 5
},
{
"source": 23,
"target": 5
},
{
"source": 24,
"target": 5
},
{
"source": 5,
"target": 6
},
{
"source": 8,
"target": 6
},
{
"source": 9,
"target": 6
},
{
"source": 15,
"target": 6
},
{
"source": 16,
"target": 6
},
{
"source": 24,
"target": 6
},
{
"source": 25,
"target": 6
},
{
"source": 27,
"target": 6
},
{
"source": 28,
"target": 6
},
{
"source": 29,
"target": 6
},
{
"source": 30,
"target": 6
},
{
"source": 31,
"target": 6
},
{
"source": 34,
"target": 6
},
{
"source": 37,
"target": 6
},
{
"source": 38,
"target": 6
},
{
"source": 1,
"target": 7
},
{
"source": 5,
"target": 7
},
{
"source": 6,
"target": 7
},
{
"source": 0,
"target": 8
},
{
"source": 1,
"target": 8
},
{
"source": 2,
"target": 8
},
{
"source": 4,
"target": 8
},
{
"source": 24,
"target": 8
},
{
"source": 25,
"target": 8
},
{
"source": 29,
"target": 8
},
{
"source": 1,
"target": 9
},
{
"source": 27,
"target": 9
},
{
"source": 29,
"target": 9
},
{
"source": 30,
"target": 9
},
{
"source": 31,
"target": 9
},
{
"source": 33,
"target": 9
},
{
"source": 4,
"target": 10
},
{
"source": 38,
"target": 10
},
{
"source": 1,
"target": 11
},
{
"source": 3,
"target": 11
},
{
"source": 4,
"target": 11
},
{
"source": 5,
"target": 11
},
{
"source": 6,
"target": 11
},
{
"source": 7,
"target": 11
},
{
"source": 12,
"target": 11
},
{
"source": 15,
"target": 11
},
{
"source": 23,
"target": 11
},
{
"source": 24,
"target": 11
},
{
"source": 25,
"target": 11
},
{
"source": 30,
"target": 11
},
{
"source": 32,
"target": 11
},
{
"source": 33,
"target": 11
},
{
"source": 37,
"target": 11
},
{
"source": 4,
"target": 12
},
{
"source": 8,
"target": 12
},
{
"source": 10,
"target": 12
},
{
"source": 24,
"target": 12
},
{
"source": 29,
"target": 12
},
{
"source": 4,
"target": 13
},
{
"source": 21,
"target": 13
},
{
"source": 22,
"target": 13
},
{
"source": 24,
"target": 13
},
{
"source": 33,
"target": 13
},
{
"source": 36,
"target": 13
},
{
"source": 1,
"target": 14
},
{
"source": 4,
"target": 14
},
{
"source": 6,
"target": 14
},
{
"source": 10,
"target": 14
},
{
"source": 16,
"target": 14
},
{
"source": 17,
"target": 14
},
{
"source": 18,
"target": 14
},
{
"source": 23,
"target": 14
},
{
"source": 24,
"target": 14
},
{
"source": 25,
"target": 14
},
{
"source": 27,
"target": 14
},
{
"source": 28,
"target": 14
},
{
"source": 29,
"target": 14
},
{
"source": 30,
"target": 14
},
{
"source": 31,
"target": 14
},
{
"source": 34,
"target": 14
},
{
"source": 10,
"target": 15
},
{
"source": 12,
"target": 15
},
{
"source": 30,
"target": 15
},
{
"source": 1,
"target": 16
},
{
"source": 2,
"target": 16
},
{
"source": 4,
"target": 16
},
{
"source": 6,
"target": 16
},
{
"source": 14,
"target": 16
},
{
"source": 17,
"target": 16
},
{
"source": 18,
"target": 16
},
{
"source": 19,
"target": 16
},
{
"source": 23,
"target": 16
},
{
"source": 24,
"target": 16
},
{
"source": 25,
"target": 16
},
{
"source": 27,
"target": 16
},
{
"source": 28,
"target": 16
},
{
"source": 29,
"target": 16
},
{
"source": 30,
"target": 16
},
{
"source": 31,
"target": 16
},
{
"source": 4,
"target": 17
},
{
"source": 25,
"target": 17
},
{
"source": 27,
"target": 17
},
{
"source": 29,
"target": 17
},
{
"source": 30,
"target": 17
},
{
"source": 4,
"target": 18
},
{
"source": 6,
"target": 18
},
{
"source": 10,
"target": 18
},
{
"source": 13,
"target": 18
},
{
"source": 17,
"target": 18
},
{
"source": 23,
"target": 18
},
{
"source": 24,
"target": 18
},
{
"source": 25,
"target": 18
},
{
"source": 29,
"target": 18
},
{
"source": 30,
"target": 18
},
{
"source": 31,
"target": 18
},
{
"source": 33,
"target": 18
},
{
"source": 34,
"target": 18
},
{
"source": 17,
"target": 19
},
{
"source": 24,
"target": 19
},
{
"source": 27,
"target": 19
},
{
"source": 30,
"target": 19
},
{
"source": 31,
"target": 19
},
{
"source": 34,
"target": 19
},
{
"source": 36,
"target": 19
},
{
"source": 37,
"target": 19
},
{
"source": 4,
"target": 20
},
{
"source": 24,
"target": 20
},
{
"source": 1,
"target": 21
},
{
"source": 10,
"target": 21
},
{
"source": 27,
"target": 21
},
{
"source": 28,
"target": 21
},
{
"source": 29,
"target": 21
},
{
"source": 10,
"target": 22
},
{
"source": 21,
"target": 22
},
{
"source": 1,
"target": 23
},
{
"source": 21,
"target": 23
},
{
"source": 22,
"target": 23
},
{
"source": 36,
"target": 23
},
{
"source": 12,
"target": 24
},
{
"source": 13,
"target": 24
},
{
"source": 19,
"target": 24
},
{
"source": 34,
"target": 24
},
{
"source": 35,
"target": 24
},
{
"source": 36,
"target": 24
},
{
"source": 1,
"target": 25
},
{
"source": 3,
"target": 25
},
{
"source": 4,
"target": 25
},
{
"source": 8,
"target": 25
},
{
"source": 9,
"target": 25
},
{
"source": 12,
"target": 25
},
{
"source": 17,
"target": 25
},
{
"source": 18,
"target": 25
},
{
"source": 19,
"target": 25
},
{
"source": 20,
"target": 25
},
{
"source": 24,
"target": 25
},
{
"source": 27,
"target": 25
},
{
"source": 28,
"target": 25
},
{
"source": 29,
"target": 25
},
{
"source": 30,
"target": 25
},
{
"source": 35,
"target": 25
},
{
"source": 0,
"target": 26
},
{
"source": 1,
"target": 26
},
{
"source": 27,
"target": 26
},
{
"source": 28,
"target": 26
},
{
"source": 38,
"target": 26
},
{
"source": 0,
"target": 27
},
{
"source": 1,
"target": 27
},
{
"source": 26,
"target": 27
},
{
"source": 28,
"target": 27
},
{
"source": 38,
"target": 27
},
{
"source": 26,
"target": 28
},
{
"source": 0,
"target": 29
},
{
"source": 1,
"target": 29
},
{
"source": 8,
"target": 29
},
{
"source": 25,
"target": 29
},
{
"source": 30,
"target": 29
},
{
"source": 37,
"target": 29
},
{
"source": 1,
"target": 30
},
{
"source": 5,
"target": 30
},
{
"source": 6,
"target": 30
},
{
"source": 10,
"target": 30
},
{
"source": 12,
"target": 30
},
{
"source": 15,
"target": 30
},
{
"source": 19,
"target": 30
},
{
"source": 24,
"target": 30
},
{
"source": 31,
"target": 30
},
{
"source": 32,
"target": 30
},
{
"source": 33,
"target": 30
},
{
"source": 34,
"target": 30
},
{
"source": 35,
"target": 30
},
{
"source": 36,
"target": 30
},
{
"source": 37,
"target": 30
},
{
"source": 1,
"target": 31
},
{
"source": 10,
"target": 31
},
{
"source": 19,
"target": 31
},
{
"source": 23,
"target": 31
},
{
"source": 24,
"target": 31
},
{
"source": 30,
"target": 31
},
{
"source": 36,
"target": 31
},
{
"source": 0,
"target": 32
},
{
"source": 1,
"target": 32
},
{
"source": 10,
"target": 32
},
{
"source": 11,
"target": 32
},
{
"source": 20,
"target": 32
},
{
"source": 24,
"target": 32
},
{
"source": 25,
"target": 32
},
{
"source": 31,
"target": 33
},
{
"source": 32,
"target": 33
},
{
"source": 38,
"target": 33
},
{
"source": 2,
"target": 34
},
{
"source": 15,
"target": 34
},
{
"source": 16,
"target": 34
},
{
"source": 19,
"target": 34
},
{
"source": 23,
"target": 34
},
{
"source": 24,
"target": 34
},
{
"source": 35,
"target": 34
},
{
"source": 36,
"target": 34
},
{
"source": 37,
"target": 34
},
{
"source": 1,
"target": 35
},
{
"source": 23,
"target": 35
},
{
"source": 24,
"target": 35
},
{
"source": 29,
"target": 35
},
{
"source": 30,
"target": 35
},
{
"source": 34,
"target": 35
},
{
"source": 36,
"target": 35
},
{
"source": 1,
"target": 36
},
{
"source": 10,
"target": 36
},
{
"source": 19,
"target": 36
},
{
"source": 23,
"target": 36
},
{
"source": 24,
"target": 36
},
{
"source": 29,
"target": 36
},
{
"source": 30,
"target": 36
},
{
"source": 34,
"target": 36
},
{
"source": 35,
"target": 36
},
{
"source": 38,
"target": 36
},
{
"source": 1,
"target": 37
},
{
"source": 3,
"target": 37
},
{
"source": 4,
"target": 37
},
{
"source": 5,
"target": 37
},
{
"source": 6,
"target": 37
},
{
"source": 7,
"target": 37
},
{
"source": 24,
"target": 37
},
{
"source": 34,
"target": 37
},
{
"source": 0,
"target": 38
},
{
"source": 1,
"target": 38
},
{
"source": 10,
"target": 38
},
{
"source": 18,
"target": 38
},
{
"source": 19,
"target": 38
},
{
"source": 24,
"target": 38
},
{
"source": 25,
"target": 38
},
{
"source": 26,
"target": 38
},
{
"source": 30,
"target": 38
},
{
"source": 33,
"target": 38
},
{
"source": 36,
"target": 38
}
],
"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} 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