Skip to content

Instantly share code, notes, and snippets.

@kleem
Last active June 15, 2016 14:36
Show Gist options
  • Save kleem/fe4900eb16572e3d0378512d70920cf2 to your computer and use it in GitHub Desktop.
Save kleem/fe4900eb16572e3d0378512d70920cf2 to your computer and use it in GitHub Desktop.
DIITET matrix with filtering
svg = d3.select 'svg'
width = svg.node().getBoundingClientRect().width
height = svg.node().getBoundingClientRect().height
matrix_space_width = 0.8 * width
matrix_space_height = 0.8 * height
# Group for zoomable content
zoomable_layer = svg.append('g')
# Zoom behavior definition
zoom = d3.behavior.zoom()
.scaleExtent [0,Infinity]
.on 'zoom', () ->
zoomable_layer
.attr
transform: "translate(#{zoom.translate()})scale(#{zoom.scale()})"
svg.call(zoom)
matrix = zoomable_layer.append 'g'
# DATA
# ----
d3.csv "tema.csv", (data_a) ->
data_a.sort (a,b) -> d3.ascending(a.area_progettuale_id, b.area_progettuale_id)
# console.log data_a
# areas = d3.nest()
# .key (d) -> d.area_progettuale_id
# .entries data_a
data_a.forEach (d) -> d.label = d.tema_title
d3.csv "istituto.csv", (data_b) ->
data_b.sort (a,b) -> d3.ascending(a.dipartimento_id, b.dipartimento_id)
# console.log data_b
# departments = d3.nest()
# .key (d) -> d.dipartimento_id
# .entries data_b
data_b.forEach (d) -> d.label = d.sigla
d3.csv "istituto_tema.csv", (data_cells) ->
data_cells.forEach (d) ->
d.a_id = d.tema_id
d.b_id = d.istituto_id
# objectify the matrix
data_a_index = {}
data_a.forEach (d) -> data_a_index[d.id] = d
data_b_index = {}
data_b.forEach (d) -> data_b_index[d.id] = d
data_cells.forEach (d) ->
d.a = data_a_index[d.a_id]
d.b = data_b_index[d.b_id]
# selection functions
selected =
as: {}
bs: {}
toggle = (d, abs) ->
if d.id of selected[abs]
delete selected[abs][d.id]
else
selected[abs][d.id] = d
update_selection()
update_selection = () ->
data_a.forEach (d) -> d.selected = d.id of selected.as or Object.keys(selected.as).length is 0
data_b.forEach (d) -> d.selected = d.id of selected.bs or Object.keys(selected.bs).length is 0
data_cells.forEach (d) -> d.selected = d.a.selected and d.b.selected
update_selection()
# FILTER
# ------
hide_unselected = false
hide_empty = false
# VIS
# ---
LABEL_PAD = 0.5
ANIMATION_DURATION = 800
cell = Math.min(matrix_space_width / data_b.length, matrix_space_height / data_a.length)
matrix_width = cell * data_b.length
matrix_height = cell * data_a.length
matrix
.attr
transform: "translate(#{width/2-matrix_width/2},#{height/2-matrix_height/2})"
redraw = () ->
filtered_data_cells = data_cells
filtered_data_a = data_a
filtered_data_b = data_b
if hide_unselected
filtered_data_cells = filtered_data_cells.filter (d) -> d.selected
filtered_data_a = filtered_data_a.filter (d) -> d.selected
filtered_data_b = filtered_data_b.filter (d) -> d.selected
# update pointers from headers to cells
data_a.forEach (d) -> d.cells = []
data_b.forEach (d) -> d.cells = []
filtered_data_cells.forEach (d) ->
d.a.cells.push d
d.b.cells.push d
if hide_empty
filtered_data_a = filtered_data_a.filter (d) -> d.cells.length > 0
filtered_data_b = filtered_data_b.filter (d) -> d.cells.length > 0
# LAYOUT
matrix_width = cell * filtered_data_b.length
matrix_height = cell * filtered_data_a.length
x = d3.scale.ordinal()
.domain(filtered_data_b.map (d) -> d.id)
.rangeBands([0, matrix_width])
y = d3.scale.ordinal()
.domain(filtered_data_a.map (d) -> d.id)
.rangeBands([0, matrix_height])
# radius = d3.scale.sqrt()
# .domain([0, d3.max data_cells, (d) -> d.weight])
# .range([0, cell/2])
# VIS
cells = matrix.selectAll(".cell")
.data filtered_data_cells, (d) -> "#{d.a.id}__#{d.b.id}"
cells.enter().append("circle")
.attr
class: "cell"
opacity: 0
.append 'title'
.text (d) -> "#{d.b.istituto_title}\n#{d.a.tema_title.trim()}"
cells
.classed 'selected', (d) -> d.selected
# ANIMATIONS
disable_controls()
cells.exit().transition()
.duration(ANIMATION_DURATION)
.attr
opacity: 0
.remove()
cells.transition()
.delay(ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
cx: (d) -> x(d.b.id)+cell/2
cy: (d) -> y(d.a.id)+cell/2
r: cell/2
# r: (d) -> radius(d.weight)
cells.transition()
.delay(2*ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
opacity: 1
.each 'end', () ->
enable_controls()
# labels
x_labels = matrix.selectAll(".x_label")
.data filtered_data_b, (d) -> d.id
enter_x_labels = x_labels.enter().append("text")
.text (d) -> d.label
.attr
class: "x_label"
x: 0
dy: '0.35em'
opacity: 0
.on 'click', (d) ->
if not hide_unselected
toggle(d,'bs')
redraw()
enter_x_labels.append 'title'
.text (d) -> "#{d.istituto_title.trim()}"
x_labels
.classed 'selected', (d) -> d.selected
# ANIMATIONS
x_labels.exit().transition()
.duration(ANIMATION_DURATION)
.attr
opacity: 0
.remove()
x_labels.transition()
.delay(ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
transform: (d) -> "translate(#{x(d.id)+cell/2},#{-LABEL_PAD*cell}) rotate(-90) scale(#{cell})"
enter_x_labels.transition()
.delay(2*ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
opacity: 1
y_labels = matrix.selectAll(".y_label")
.data filtered_data_a, (d) -> d.id
enter_y_labels = y_labels.enter().append("text")
.text (d) -> d.label.trim()
.attr
class: "y_label"
dy: '0.35em'
opacity: 0
.on 'click', (d) ->
if not hide_unselected
toggle(d,'as')
redraw()
y_labels
.classed 'selected', (d) -> d.selected
# ANIMATIONS
y_labels.exit().transition()
.duration(ANIMATION_DURATION)
.attr
opacity: 0
.remove()
y_labels.transition()
.delay(ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
transform: (d) -> "translate(#{-LABEL_PAD*cell},#{y(d.id)+cell/2}) scale(#{cell})"
enter_y_labels.transition()
.delay(2*ANIMATION_DURATION)
.duration(ANIMATION_DURATION)
.attr
opacity: 1
# FILTER reprise
# --------------
d3.select('.hide_unselected').on 'click', () ->
hide_unselected = not hide_unselected
redraw()
d3.select('.hide_empty').on 'click', () ->
hide_empty = not hide_empty
redraw()
redraw()
disable_controls = () ->
d3.select('.hide_unselected')
.attr
disabled: true
d3.select('.hide_empty')
.attr
disabled: true
enable_controls = () ->
d3.select('.hide_unselected')
.attr
disabled: null
d3.select('.hide_empty')
.attr
disabled: null
svg = d3.select('svg')
width = svg.node().getBoundingClientRect().width
height = svg.node().getBoundingClientRect().height
# append a group for zoomable content
zoomable_layer = svg.append('g')
# define a zoom behavior
zoom = d3.behavior.zoom()
.scaleExtent([0.3,4])
.on 'zoom', () ->
zoomable_layer
.attr
transform: "translate(#{zoom.translate()})scale(#{zoom.scale()})"
svg.call(zoom)
simcolor = d3.scale.linear()
.domain([0,1])
.range([d3.hcl(20,0,100),d3.hcl(20,75,25)])
.interpolate(d3.interpolateHcl)
matrix = zoomable_layer.append('g')
.attr('transform', 'translate(125,170)scale(0.4)')
SIZE = 13
d3.json 'poetq.json', (data) ->
items = []
predicates_data = []
instances_data = []
data.forEach (e1) ->
vector = []
instances_data.push e1.k1
e1.similarities.forEach (e2) ->
vector.push e2.sim
if e2.k2 not in predicates_data
predicates_data.push e2.k2
items.push vector
console.debug 'Computing hierarchical clustering...'
clusters = clusterfck.hcluster(
items,
clusterfck.EUCLIDEAN_DISTANCE,
clusterfck.SINGLE_LINKAGE
)
tree = tree_utils.binary_to_std(clusters)
matrix_data = tree_utils.get_leaves(tree).map (d) -> d.value
# COLUMNS
mouseover = () ->
d3.select(this)
.style
opacity: 0.8
mouseout = () ->
d3.select(this)
.style
opacity: 1
columns = matrix.selectAll('.column')
.data(matrix_data)
enter_columns = columns.enter().append('g')
.attr('class', 'column')
.attr('transform', (d,i) -> "translate(#{SIZE*i},0)")
.on('mouseover', mouseover)
.on('mouseout', mouseout)
# CELLS
cells = columns.selectAll('.cell')
.data((column) -> column)
cells.enter().append('rect')
.attr('class', 'cell')
.attr('width', SIZE)
.attr('height', SIZE)
.attr('transform', (d, i) -> "translate(0,#{SIZE*i})")
.attr('fill', (d) -> if d is 0 then 'gray' else 'black')
matrix.append('rect')
.attr('class','border')
.attr('x', -1)
.attr('y', -1)
.attr('width', SIZE*matrix_data.length+2)
.attr('height', SIZE*predicates_data.length+2)
# HORIZONTAL LABELS
hlabels = matrix.selectAll('.hlabel')
.data(predicates_data)
hlabels.enter().append('a')
.attr('xlink:href', (d) -> d.k1)
.append('text')
.attr('class','hlabel')
.text((d) -> d)
.attr('transform', (d,i) -> "translate(0,#{SIZE*i})")
.attr('dy', '1em')
.attr('dx', -6)
# VERTICAL LABELS
vlabels = matrix.selectAll('.vlabel')
.data(instances_data)
vlabels.enter().append('a')
.attr('xlink:href', (d) -> d.k1)
.append('text')
.attr('class','vlabel')
.text((d) -> d.replace('http://dbpedia.org/resource/',''))
.attr('transform', (d,i) -> "translate(#{SIZE*i},0) rotate(-90)")
.attr('dy', '1em')
.attr('dx', 6)
html, body {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
svg {
width: 100%;
height: 100%;
background: white;
}
.x_label, .y_label {
font-family: sans-serif;
font-size: 1px;
cursor: pointer;
}
.x_label {
text-anchor: start;
}
.y_label {
text-anchor: end;
}
.cell, .x_label, .y_label {
fill: #BBB;
}
.selected {
fill: black;
}
.filter_box {
position: absolute;
top: 10px;
left: 10px;
font-family: sans-serif;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>DIITET matrix with filtering</title>
<link type="text/css" href="index.css" rel="stylesheet"/>
<script src="http://d3js.org/d3.v3.min.js"></script>
</head>
<body>
<svg></svg>
<div class="filter_box">
<label><input class="hide_unselected" type="checkbox">Hide unselected</label><br/>
<label><input class="hide_empty" type="checkbox"/>Hide empty</label>
</div>
<script src="index.js"></script>
</body>
</html>
// Generated by CoffeeScript 1.10.0
(function() {
var disable_controls, enable_controls, height, matrix, matrix_space_height, matrix_space_width, svg, width, zoom, zoomable_layer;
svg = d3.select('svg');
width = svg.node().getBoundingClientRect().width;
height = svg.node().getBoundingClientRect().height;
matrix_space_width = 0.8 * width;
matrix_space_height = 0.8 * height;
zoomable_layer = svg.append('g');
zoom = d3.behavior.zoom().scaleExtent([0, Infinity]).on('zoom', function() {
return zoomable_layer.attr({
transform: "translate(" + (zoom.translate()) + ")scale(" + (zoom.scale()) + ")"
});
});
svg.call(zoom);
matrix = zoomable_layer.append('g');
d3.csv("tema.csv", function(data_a) {
data_a.sort(function(a, b) {
return d3.ascending(a.area_progettuale_id, b.area_progettuale_id);
});
data_a.forEach(function(d) {
return d.label = d.tema_title;
});
return d3.csv("istituto.csv", function(data_b) {
data_b.sort(function(a, b) {
return d3.ascending(a.dipartimento_id, b.dipartimento_id);
});
data_b.forEach(function(d) {
return d.label = d.sigla;
});
return d3.csv("istituto_tema.csv", function(data_cells) {
var ANIMATION_DURATION, LABEL_PAD, cell, data_a_index, data_b_index, hide_empty, hide_unselected, matrix_height, matrix_width, redraw, selected, toggle, update_selection;
data_cells.forEach(function(d) {
d.a_id = d.tema_id;
return d.b_id = d.istituto_id;
});
data_a_index = {};
data_a.forEach(function(d) {
return data_a_index[d.id] = d;
});
data_b_index = {};
data_b.forEach(function(d) {
return data_b_index[d.id] = d;
});
data_cells.forEach(function(d) {
d.a = data_a_index[d.a_id];
return d.b = data_b_index[d.b_id];
});
selected = {
as: {},
bs: {}
};
toggle = function(d, abs) {
if (d.id in selected[abs]) {
delete selected[abs][d.id];
} else {
selected[abs][d.id] = d;
}
return update_selection();
};
update_selection = function() {
data_a.forEach(function(d) {
return d.selected = d.id in selected.as || Object.keys(selected.as).length === 0;
});
data_b.forEach(function(d) {
return d.selected = d.id in selected.bs || Object.keys(selected.bs).length === 0;
});
return data_cells.forEach(function(d) {
return d.selected = d.a.selected && d.b.selected;
});
};
update_selection();
hide_unselected = false;
hide_empty = false;
LABEL_PAD = 0.5;
ANIMATION_DURATION = 800;
cell = Math.min(matrix_space_width / data_b.length, matrix_space_height / data_a.length);
matrix_width = cell * data_b.length;
matrix_height = cell * data_a.length;
matrix.attr({
transform: "translate(" + (width / 2 - matrix_width / 2) + "," + (height / 2 - matrix_height / 2) + ")"
});
redraw = function() {
var cells, enter_x_labels, enter_y_labels, filtered_data_a, filtered_data_b, filtered_data_cells, x, x_labels, y, y_labels;
filtered_data_cells = data_cells;
filtered_data_a = data_a;
filtered_data_b = data_b;
if (hide_unselected) {
filtered_data_cells = filtered_data_cells.filter(function(d) {
return d.selected;
});
filtered_data_a = filtered_data_a.filter(function(d) {
return d.selected;
});
filtered_data_b = filtered_data_b.filter(function(d) {
return d.selected;
});
}
data_a.forEach(function(d) {
return d.cells = [];
});
data_b.forEach(function(d) {
return d.cells = [];
});
filtered_data_cells.forEach(function(d) {
d.a.cells.push(d);
return d.b.cells.push(d);
});
if (hide_empty) {
filtered_data_a = filtered_data_a.filter(function(d) {
return d.cells.length > 0;
});
filtered_data_b = filtered_data_b.filter(function(d) {
return d.cells.length > 0;
});
}
matrix_width = cell * filtered_data_b.length;
matrix_height = cell * filtered_data_a.length;
x = d3.scale.ordinal().domain(filtered_data_b.map(function(d) {
return d.id;
})).rangeBands([0, matrix_width]);
y = d3.scale.ordinal().domain(filtered_data_a.map(function(d) {
return d.id;
})).rangeBands([0, matrix_height]);
cells = matrix.selectAll(".cell").data(filtered_data_cells, function(d) {
return d.a.id + "__" + d.b.id;
});
cells.enter().append("circle").attr({
"class": "cell",
opacity: 0
}).append('title').text(function(d) {
return d.b.istituto_title + "\n" + (d.a.tema_title.trim());
});
cells.classed('selected', function(d) {
return d.selected;
});
disable_controls();
cells.exit().transition().duration(ANIMATION_DURATION).attr({
opacity: 0
}).remove();
cells.transition().delay(ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
cx: function(d) {
return x(d.b.id) + cell / 2;
},
cy: function(d) {
return y(d.a.id) + cell / 2;
},
r: cell / 2
});
cells.transition().delay(2 * ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
opacity: 1
}).each('end', function() {
return enable_controls();
});
x_labels = matrix.selectAll(".x_label").data(filtered_data_b, function(d) {
return d.id;
});
enter_x_labels = x_labels.enter().append("text").text(function(d) {
return d.label;
}).attr({
"class": "x_label",
x: 0,
dy: '0.35em',
opacity: 0
}).on('click', function(d) {
if (!hide_unselected) {
toggle(d, 'bs');
return redraw();
}
});
enter_x_labels.append('title').text(function(d) {
return "" + (d.istituto_title.trim());
});
x_labels.classed('selected', function(d) {
return d.selected;
});
x_labels.exit().transition().duration(ANIMATION_DURATION).attr({
opacity: 0
}).remove();
x_labels.transition().delay(ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
transform: function(d) {
return "translate(" + (x(d.id) + cell / 2) + "," + (-LABEL_PAD * cell) + ") rotate(-90) scale(" + cell + ")";
}
});
enter_x_labels.transition().delay(2 * ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
opacity: 1
});
y_labels = matrix.selectAll(".y_label").data(filtered_data_a, function(d) {
return d.id;
});
enter_y_labels = y_labels.enter().append("text").text(function(d) {
return d.label.trim();
}).attr({
"class": "y_label",
dy: '0.35em',
opacity: 0
}).on('click', function(d) {
if (!hide_unselected) {
toggle(d, 'as');
return redraw();
}
});
y_labels.classed('selected', function(d) {
return d.selected;
});
y_labels.exit().transition().duration(ANIMATION_DURATION).attr({
opacity: 0
}).remove();
y_labels.transition().delay(ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
transform: function(d) {
return "translate(" + (-LABEL_PAD * cell) + "," + (y(d.id) + cell / 2) + ") scale(" + cell + ")";
}
});
return enter_y_labels.transition().delay(2 * ANIMATION_DURATION).duration(ANIMATION_DURATION).attr({
opacity: 1
});
};
d3.select('.hide_unselected').on('click', function() {
hide_unselected = !hide_unselected;
return redraw();
});
d3.select('.hide_empty').on('click', function() {
hide_empty = !hide_empty;
return redraw();
});
return redraw();
});
});
});
disable_controls = function() {
d3.select('.hide_unselected').attr({
disabled: true
});
return d3.select('.hide_empty').attr({
disabled: true
});
};
enable_controls = function() {
d3.select('.hide_unselected').attr({
disabled: null
});
return d3.select('.hide_empty').attr({
disabled: null
});
};
}).call(this);
id istituto_title sigla dipartimento_id
i_1 Istituto di Informatica e Telematica IIT 1
i_2 Istituto di Scienze e Tecnologie Informatiche ISTI 1
i_6 Istituto Nazionale per Studi ed Esperienze di Architettura Navale INSEAN 1
i_15 Istituto di Ricerca per la Protezione Idrogeologica IRPI 4
i_16 Istituto di Geologia Ambientale e Geoingegneria IGAG 4
i_19 Istituto di Scienze Marine ISMAR 4
i_20 Istituto di Ricerca sulle Acque IRSA 4
i_21 Istituto sull'Inquinamento Atmosferico IIA 4
i_22 Istituto di Scienze dell'Atmosfera e del Clima ISAC 4
i_23 Istituto di Metodologie per l'Analisi Ambientale IMAA 4
i_24 Istituto per l'Ambiente Marino IAMC 4
i_25 Istituto per la Dinamica dei Processi Ambientali IDPA 4
i_26 Istituto di Geoscienze e Georisorse IGG 4
i_27 Istituto di Biologia Agro-Ambientale e Forestale IBAF 4
i_28 Istituto di Fisica del Plasma \'Piero Caldirola\' IFP 1
i_29 Istituto Gas Ionizzati IGI 1
i_31 Istituto di Ricerche sulla Combustione IRC 1
i_32 Istituto di Tecnologie Avanzate per l'Energia \'Nicola Giordano\' ITAE 1
i_33 Istituto Motori IM 1
i_34 Istituto per il sistema produzione animale in ambiente Mediterraneo ISPAAM 5
i_35 Istituto di Biologia e Biotecnologia Agraria IBBA 5
i_36 Istituto di Biometeorologia IBIMET 5
i_37 Istituto per i Sistemi Agricoli e Forestali del Mediterraneo ISAFoM 5
i_38 Istituto per la Protezione Sostenibile delle Piante IPSP 5
i_39 Istituto di Bioscienze e Biorisorse IBBR 5
i_40 Istituto di Scienze delle Produzioni Alimentari ISPA 5
i_41 Istituto per la Valorizzazione del Legno e delle Specie Arboree IVALSA 5
i_42 Istituto di Biostrutture e Bioimmagini IBB 6
i_43 Istituto di Scienze Neurologiche ISN 6
i_44 Istituto di Farmacologia Traslazionale IFT 6
i_45 Istituto di Bioimmagini e Fisiologia Molecolare IBFM 6
i_46 Istituto di Genetica Molecolare IGM 6
i_47 Istituto di Tecnologie Biomediche ITB 6
i_48 Istituto di Biomedicina e di Immunologia Molecolare \'Alberto Monroy\' IBIM 6
i_49 Istituto di Fisiologia Clinica IFC 6
i_50 Istituto di Neuroscienze IN 6
i_51 Istituto di Ricerca Genetica e Biomedica IRGB 6
i_52 Istituto di Biochimica delle Proteine IBP 6
i_53 Istituto di Genetica e Biofisica \'Adriano Buzzati Traverso\' IGB 6
i_54 istituto di Biologia Cellulare e Neurobiologia IBCN 6
i_55 Istituto di Biologia e Patologia Molecolari IBPM 6
i_56 Istituto per l'Endocrinologia e l'Oncologia \'Gaetano Salvatore\' IEOS 6
i_57 Istituto di Biomembrane e Bioenergetica IBBE 6
i_58 Istituto per la Tecnologia delle Membrane ITM 3
i_59 Istituto per lo Studio dei Materiali Nanostrutturati ISMN 3
i_60 Istituto di Metodologie Chimiche IMC 3
i_61 Istituto per lo Studio delle Macromolecole ISMAC 3
i_62 Istituto per i Polimeri, Compositi e Biomateriali IPCB 3
i_63 Istituto di Scienze e Tecnologie Molecolari ISTM 3
i_64 Istituto per i Processi Chimico-Fisici IPCF 3
i_65 Istituto di Chimica Biomolecolare ICB 3
i_66 Istituto di Chimica dei Composti Organo Metallici ICCOm 3
i_67 Istituto per la Sintesi Organica e la Fotoreattività ISOF 3
i_68 Istituto di Scienza e Tecnologia dei Materiali Ceramici ISTEC 3
i_69 Istituto di Chimica del Riconoscimento Molecolare ICRM 3
i_70 Istituto di Cristallografia IC 3
i_71 Istituto per l'Energetica e le Interfasi IENI 3
i_72 Istituto Officina dei Materiali IOM 2
i_73 Istituto Superconduttori, Materiali innovativi e dispositivi SPIN 2
i_74 Istituto di Nanoscienze NANO 2
i_75 Istituto Nazionale di Ottica INO 2
i_76 Istituto di Struttura della Materia ISM 2
i_77 Istituto dei Sistemi Complessi ISC 2
i_78 Istituto di Biofisica IBF 2
i_79 Istituto di Scienze Applicate e Sistemi Intelligenti \'Eduardo Caianiello\' ISASI 2
i_80 Istituto di Fisica Applicata \'Nello Carrara\' IFAC 1
i_81 Istituto di Nanotecnologia NANOTEC 2
i_82 Istituto di Fotonica e Nanotecnologie IFN 2
i_83 Istituto per la Microelettronica e Microsistemi IMM 2
i_84 Istituto dei Materiali per l'Elettronica ed il Magnetismo IMEM 1
i_85 Istituto di Studi sui Sistemi Intelligenti per l'Automazione ISSIA 1
i_86 Istituto per le Macchine Agricole e Movimento Terra IMAMOTER 1
i_87 Istituto di Tecnologie Industriali e Automazione ITIA 1
i_88 Istituto per le Tecnologie della Costruzione ITC 1
i_89 Istituto di Acustica e Sensoristica \'Orso Mario Corbino\' IDASC 1
i_90 Istituto per il Rilevamento Elettromagnetico dell'Ambiente IREA 1
i_91 Istituto di Elettronica e di Ingegneria dell'Informazione e delle Telecomunicazioni IEIIT 1
i_92 Istituto di Calcolo e Reti ad Alte Prestazioni ICAR 1
i_93 Istituto per le Applicazioni del Calcolo \'Mauro Picone\' IAC 1
i_94 Istituto di Analisi dei Sistemi ed Informatica \'Antonio Ruberti\' IASI 1
i_95 Istituto di Matematica Applicata e Tecnologie Informatiche IMATI 1
i_96 Istituto di Studi sul Mediterraneo Antico ISMA 7
i_97 Centro di Responsabilità di Attività Scientifica IDAIC 7
i_98 Istituto per i Beni Archeologici e Monumentali IBAM 7
i_99 Istituto per le Tecnologie Applicate ai Beni Culturali ITABC 7
i_100 Istituto per la Conservazione e Valorizzazione dei Beni Culturali ICVBC 7
i_101 Istituto di Scienze e Tecnologie della Cognizione ISTC 7
i_102 Istituto per le Tecnologie Didattiche ITD 7
i_103 Istituto di Studi Giuridici Internazionali ISGI 7
i_104 Istituto di Opera del Vocabolario Italiano OVI 7
i_105 Istituto di Teoria e Tecniche dell'Informazione Giuridica ITTIG 7
i_106 Istituto di Linguistica Computazionale \'Antonio Zampolli\' ILC 7
i_107 Istituto di Studi sulle Società del Mediterraneo ISSM 7
i_108 Istituto di Ricerca su Innovazione e Servizi per lo Sviluppo IRISS 7
i_109 Istituto di Storia dell'Europa Mediterranea ISEM 7
i_110 Istituto di Studi sui Sistemi Regionali Federali e sulle Autonomie \'Massimo Severo Giannini\' ISSIRFA 7
i_111 Istituto di Ricerche sulla Popolazione e le Politiche Sociali IRPPS 7
i_112 Istituto di Ricerca sui Sistemi Giudiziari IRSIG 7
i_113 Istituto per il Lessico Intellettuale Europeo e Storia delle Idee ILIESI 7
i_114 Istituto per la Storia del Pensiero Filosofico e Scientifico Moderno ISPF 7
i_115 Istituto di Ricerca sulla Crescita Economica Sostenibile IRCRES 7
id istituto_id tema_id
37 i_1 t_28
38 i_85 t_28
39 i_94 t_28
40 i_33 t_28
41 i_91 t_28
42 i_2 t_29
43 i_31 t_30
44 i_31 t_31
45 i_33 t_31
46 i_1 t_31
47 i_2 t_32
48 i_94 t_33
49 i_94 t_34
51 i_91 t_31
52 i_95 t_36
53 i_29 t_41
54 i_28 t_42
55 i_28 t_43
56 i_29 t_43
57 i_29 t_44
58 i_85 t_47
59 i_93 t_47
60 i_80 t_47
61 i_89 t_47
62 i_90 t_47
63 i_92 t_47
64 i_2 t_47
65 i_88 t_47
66 i_91 t_48
67 i_80 t_48
68 i_93 t_48
69 i_94 t_48
70 i_65 t_48
71 i_92 t_48
72 i_85 t_48
73 i_95 t_48
74 i_2 t_48
75 i_88 t_48
76 i_80 t_49
77 i_94 t_49
78 i_85 t_49
79 i_90 t_49
80 i_95 t_49
81 i_93 t_28
82 i_2 t_28
83 i_32 t_28
84 i_92 t_29
85 i_89 t_29
86 i_32 t_29
87 i_93 t_30
88 i_2 t_30
89 i_89 t_30
90 i_32 t_31
91 i_85 t_31
92 i_2 t_31
93 i_1 t_32
94 i_92 t_32
95 i_90 t_32
96 i_2 t_33
97 i_92 t_33
98 i_91 t_34
99 i_90 t_34
100 i_2 t_34
101 i_94 t_35
102 i_93 t_35
103 i_85 t_35
104 i_1 t_35
105 i_2 t_35
106 i_94 t_38
107 i_1 t_38
108 i_93 t_39
109 i_95 t_39
110 i_33 t_39
111 i_94 t_37
112 i_91 t_37
113 i_94 t_36
114 i_93 t_36
115 i_1 t_36
116 i_92 t_36
117 i_6 t_36
118 i_2 t_36
128 i_6 t_50
129 i_89 t_50
130 i_90 t_50
131 i_31 t_50
132 i_32 t_50
133 i_2 t_50
134 i_85 t_51
135 i_6 t_51
136 i_2 t_51
137 i_90 t_51
138 i_32 t_52
139 i_33 t_52
140 i_90 t_53
141 i_6 t_53
142 i_92 t_54
143 i_93 t_55
144 i_1 t_55
145 i_95 t_55
146 i_94 t_55
147 i_85 t_55
148 i_92 t_55
149 i_31 t_56
150 i_91 t_57
151 i_93 t_57
152 i_95 t_57
153 i_94 t_57
154 i_80 t_58
155 i_90 t_58
157 i_89 t_60
158 i_91 t_60
159 i_89 t_59
160 i_2 t_60
161 i_91 t_59
162 i_84 t_60
163 i_28 t_59
164 i_90 t_59
165 i_92 t_61
166 i_91 t_61
167 i_80 t_61
168 i_1 t_61
169 i_85 t_61
170 i_2 t_61
171 i_88 t_61
172 i_87 t_61
173 i_94 t_62
174 i_92 t_62
175 i_91 t_62
176 i_1 t_62
177 i_80 t_62
178 i_2 t_62
179 i_93 t_63
180 i_94 t_63
181 i_92 t_63
182 i_91 t_63
183 i_1 t_63
184 i_85 t_63
185 i_95 t_63
186 i_2 t_63
187 i_88 t_63
188 i_87 t_63
189 i_93 t_64
190 i_91 t_64
191 i_80 t_64
192 i_95 t_64
193 i_84 t_64
194 i_90 t_64
195 i_91 t_65
196 i_80 t_65
197 i_84 t_65
198 i_90 t_65
199 i_95 t_66
200 i_87 t_66
201 i_80 t_67
202 i_85 t_67
203 i_87 t_67
204 i_101 t_67
205 i_94 t_68
206 i_95 t_68
207 i_85 t_68
208 i_87 t_68
209 i_91 t_69
210 i_94 t_69
211 i_85 t_69
212 i_94 t_70
213 i_85 t_70
214 i_2 t_70
215 i_87 t_70
216 i_92 t_67
217 i_94 t_71
218 i_91 t_71
219 i_84 t_71
220 i_85 t_71
221 i_87 t_71
222 i_93 t_72
223 i_32 t_72
224 i_91 t_72
225 i_80 t_72
226 i_84 t_72
227 i_2 t_72
228 i_6 t_72
229 i_80 t_73
230 i_93 t_73
231 i_84 t_73
232 i_90 t_73
233 i_85 t_73
234 i_93 t_74
235 i_94 t_74
236 i_80 t_74
237 i_90 t_74
238 i_85 t_74
239 i_94 t_75
240 i_93 t_75
241 i_80 t_75
242 i_90 t_75
243 i_87 t_75
244 i_85 t_75
245 i_91 t_76
246 i_6 t_76
247 i_87 t_76
248 i_32 t_76
249 i_90 t_76
250 i_2 t_76
251 i_91 t_77
252 i_84 t_77
253 i_80 t_77
254 i_90 t_77
255 i_91 t_78
256 i_2 t_78
257 i_1 t_78
258 i_86 t_78
259 i_85 t_78
260 i_92 t_79
261 i_93 t_79
262 i_2 t_79
263 i_95 t_79
264 i_1 t_79
265 i_94 t_80
266 i_2 t_80
275 i_89 t_82
276 i_91 t_82
277 i_90 t_82
278 i_84 t_82
279 i_85 t_82
280 i_95 t_83
281 i_90 t_83
282 i_85 t_83
283 i_91 t_84
284 i_80 t_84
285 i_95 t_84
286 i_90 t_84
287 i_89 t_85
288 i_80 t_85
289 i_1 t_85
290 i_95 t_85
291 i_84 t_85
292 i_90 t_85
293 i_85 t_85
294 i_2 t_85
295 i_94 t_86
296 i_2 t_86
297 i_29 t_86
298 i_95 t_86
299 i_1 t_86
300 i_92 t_86
301 i_93 t_87
302 i_91 t_87
303 i_94 t_87
304 i_92 t_87
305 i_1 t_87
306 i_101 t_87
307 i_88 t_87
308 i_95 t_87
309 i_2 t_87
310 i_2 t_88
311 i_2 t_89
312 i_94 t_89
313 i_1 t_89
314 i_95 t_89
315 i_92 t_89
316 i_88 t_89
317 i_1 t_90
318 i_102 t_90
319 i_95 t_91
320 i_1 t_91
321 i_102 t_91
322 i_87 t_91
323 i_1 t_92
324 i_2 t_92
325 i_88 t_92
326 i_92 t_92
327 i_106 t_89
328 i_95 t_94
329 i_88 t_96
330 i_32 t_98
331 i_32 t_97
332 i_85 t_97
333 i_32 t_99
334 i_88 t_95
335 i_93 t_100
336 i_31 t_100
337 i_28 t_100
338 i_84 t_100
339 i_89 t_100
340 i_86 t_100
341 i_33 t_100
342 i_28 t_101
343 i_31 t_101
344 i_84 t_101
345 i_88 t_101
346 i_32 t_101
347 i_91 t_102
348 i_80 t_102
349 i_84 t_102
350 i_28 t_102
351 i_93 t_103
352 i_95 t_103
353 i_33 t_103
354 i_91 t_103
355 i_89 t_104
356 i_91 t_106
357 i_80 t_107
358 i_86 t_108
359 i_86 t_109
360 i_90 t_110
361 i_85 t_111
362 i_88 t_113
363 i_88 t_112
364 i_85 t_107
365 i_92 t_38
366 i_95 t_38
367 i_93 t_38
368 i_95 t_116
369 i_90 t_68
370 i_93 t_37
371 i_94 t_39
372 i_92 t_39
373 i_91 t_38
374 i_33 t_119
375 i_31 t_119
376 i_85 t_119
377 i_84 t_119
378 i_28 t_119
379 i_6 t_119
380 i_32 t_119
381 i_31 t_120
382 i_32 t_120
383 i_31 t_121
384 i_33 t_121
385 i_31 t_122
386 i_32 t_122
387 i_33 t_122
388 i_84 t_123
389 i_32 t_123
390 i_88 t_123
391 i_1 t_124
392 i_2 t_124
393 i_92 t_125
394 i_1 t_125
396 i_2 t_125
397 i_1 t_126
398 i_92 t_126
399 i_2 t_127
400 i_1 t_127
401 i_91 t_127
402 i_1 t_128
403 i_91 t_128
404 i_2 t_128
405 i_1 t_129
406 i_92 t_129
407 i_85 t_130
408 i_1 t_130
409 i_91 t_130
410 i_91 t_131
411 i_1 t_131
412 i_85 t_131
413 i_91 t_132
414 i_85 t_132
415 i_1 t_132
416 i_85 t_133
417 i_2 t_133
418 i_92 t_133
419 i_91 t_133
420 i_1 t_133
421 i_1 t_134
422 i_2 t_134
423 i_106 t_134
424 i_1 t_135
425 i_85 t_135
426 i_91 t_135
427 i_85 t_136
428 i_1 t_136
429 i_91 t_136
430 i_91 t_137
431 i_1 t_137
432 i_85 t_137
433 i_93 t_137
434 i_1 t_118
435 i_95 t_117
436 i_90 t_117
437 i_2 t_117
438 i_85 t_110
439 i_1 t_138
440 i_42 t_138
id tema_title area_progettuale_id
t_28 SMARTMOBILITY 13
t_29 SMART BUILDING 13
t_30 SMART ENVIRONMENTS 13
t_31 SMART ENERGY 13
t_32 SMART URBAN MONITORING 13
t_33 SMART GOVERNMENT 13
t_34 SMART LIVING 13
t_35 SMART CITIES MODELING 13
t_36 Modellistica e Calcolo Scientifico 22
t_37 Teoria dei sistemi e dei controlli  22
t_38 Ottimizzazione e matematica discreta     22
t_39 Modellistica stocastica e analisi di dati     22
t_41 La Neutral Beam Test Facility a Padova 21
t_42 Il sistema di riscaldamento a radiofrequenza di ITER 21
t_43 Progettazione e realizzazione di diagnostiche per ITER 21
t_44 Il Broader Approach 21
t_45 Programma europeo sulla fusione 21
t_47 Tecnologie per la digitalizzazione ed il monitoraggio 18
t_48 Tecnologie per la virtualizzazione e la fruizione digitale 18
t_49 Gestione del territorio 18
t_50 IMPATTO AMBIENTALE  15
t_51 MONITORAGGIO DELL'AMBIENTE MARINO E COSTIERO 15
t_52 SISTEMI PER LA PROPULSIONE NAVALE E LA GENERAZIONE DI ENERGIA A BORDO 15
t_53 TECNOLOGIE NAVALI E OFFSHORE 15
t_54 GESTIONE DEI PROCESSI DEL SISTEMA MARITTIMO  15
t_55 Nuovi approcci bioinformatici a supporto di esigenze cliniche, mediche e biotecnologiche 9
t_56 Processi biotecnologici industriali 9
t_57 Tools e tecnologie per terapie avanzate 9
t_58 Biofotonica 9
t_59 Dispositivie tecnologie a microonde ed onde millimetriche 7
t_60 Tecnologiemicro e nano-elettroniche 7
t_61 Advancing active and healthy ageing 17
t_62 Integrated, sustainable, citizen-centred care 17
t_63 Improving health information and dataexploitation 17
t_64 Tools, technologies and devices for advanced diagnosisand therapies 17
t_65 EMF for Health: Medical Applications,Environmental and Occupational Safety, Risk Assessment 17
t_66 Sistemiper la produzione personalizzata  4
t_67 Robotica 3
t_68 Strategie,metodi e strumenti per la sostenibilità industriale  4
t_69 Automatica 3
t_70 Sistemiper la valorizzazione delle persone nelle fabbriche 4
t_71 Sistemidi produzione evolutivi e adattativi ad alta efficienza 4
t_72 Tecnologie per l’Aerospazio e la Sicurezza nelloSpazio 10
t_73 Tecnologie per l’Osservazione della Terra 10
t_74 Modellistica Elettromagnetica e Statistica di dati diOsservazione della Terra 10
t_75 Tecnologie ed infrastrutture ICT per la gestione,elaborazione e rappresentazione di dati OT 10
t_76 Tecnologie per le telecomunicazioni spaziali, l’aeronauticae la navigazione 10
t_77 Fotonica 7
t_78 Tecnologie ed architetture di comunicazione e networking per il Future Internet 8
t_79 Distributed, High Performance and Parallel Systems 8
t_80 Software Engineering 8
t_82 Fight Against Crime and Terrorism 19
t_83 Border Security and External Security 19
t_84 Ethical Societal Dimension and SocialSecurity 19
t_85 Disaster Resilience: safeguarding and securingsociety, including adapting to climate change 19
t_86 Big data and Open Data Innovation and take-up 1
t_87 Big data – research 1
t_88 Cracking the language barrier 1
t_89 Technologies for creative industries, social media and convergence 1
t_90 Technologies for better human learning and teaching 1
t_91 Advanced digital gaming/gamification technologies 1
t_92 Multimodal and Natural computer interaction 1
t_93 Motori termici 14
t_94 Synthetic biology 9
t_95 Edilizia sostenibile 12
t_96 Ediliziaper le smart cities 12
t_97 Efficienzaenergetica dei sistemi elettrici in Smart Buildings 12
t_98 LCA, ecodesign e carbon footprint di elementiedilizi e tecnologie innovative abilitanti lo smart building 12
t_99 Tecnologie Innovative per lo Smart Building 12
t_100 Tema B1. Nanomateriali per dispositivi e processiindustriali (sensori, sistemi optoelettronici, acustici fotonici,fluidici, …) 5
t_101 B.2 Nanomateriali perenergetica 5
t_102 B3. Nano materiali per impiegobio-medico 5
t_103 B4. Modellistica e simulazionenumerica 5
t_104 Sensori per la sicurezza agro-alimentare basati su dispositivi MEMS 11
t_105 Motori elettrici epropulsione ibrida 14
t_106 Ottimizzazionedi supply-chain alimentari  11
t_107 Fotonica  11
t_108 Tuteladel suolo e delle acque superficiali  11
t_109 Usosostenibile della frazione solida  deireflui zootecnici  11
t_110 Earth Observation andgeographic information systems for natural resource for remote monitoring and agro-ecosystemmanagement  11
t_111 Use of remote sensed data for sustainableagriculture  11
t_112 Analisidelle prestazioni di mezzi coibentati per il trasporto di merci deperibili  11
t_113 Analisi delle prestazioni di apparecchiature e impianti per laconservazione e l’esposizione di prodotti alimentari  11
t_114 Infrastrutture intelligenti e trasporto ferroviario intelligente 14
t_115 Tematiche di impattoambientale per il trasporto marittimo 14
t_116 Gestionedi specie invasive per la riduzione dei trattamenti fitosanitari 11
t_117 Infrastrutture dati: tecnologie e servizi 2
t_118 Infrastrutture di rete: tecnologie e servizi  2
t_119 Renewable electricityand heating and cooling technologies 6
t_120 Providing the energysystem with flexibility through enhanced energy storage technologies 6
t_121 Sustainablebiofuels and alternative fuels for the European transport fuel mix 6
t_122 Enabling thedecarbonisation of the use of fossil fuels during transition to a low-carboneconomy 6
t_123 Tecnologie HVAC&R (Heating, Ventilating and Air-Conditioning& Refrigeration) e risparmio di energia negli edifici 6
t_124  Privacy 20
t_125 Cloud security 20
t_126 Information sharing and Analytics 20
t_127 Secure Software Assurance 20
t_128 Modelli formali per la cyber security di sistemicyber physical (industriali, SCADA, etc.) 20
t_129 Crittografia 20
t_130 Digital forensic 20
t_131 Sicurezza dei dispositivi mobili (Mobile Security) 20
t_132 Sicurezza delle applicazioni e dei sistemi 20
t_133 Trusted e-services e controllo accessi 20
t_134 CyberIntelligence 20
t_135 Network Security 20
t_136 Cyberattacks 20
t_137 Risk management for cyber security 20
t_138 Impiego delle tecnologiebiometriche nel contesto della cyber security (Istituti coinvolti: IBB,IIT) 20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment