Created
May 8, 2016 10:50
-
-
Save jeinarsson/473177761de159d5b2cbab4321a3afc0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"data_from_eg_excel=[\n", | |
"['A', 'Z', 'i1', 30],\n", | |
"['A', 'Z', 'i2', 24],\n", | |
"['A', 'Z', 'i0', 37],\n", | |
"['A', 'Y', 'i1', 52],\n", | |
"['A', 'Y', 'i2', 19],\n", | |
"['A', 'Y', 'i0', 22],\n", | |
"['B', 'Z', 'i1', 22],\n", | |
"['B', 'Z', 'i2', 22],\n", | |
"['B', 'Z', 'i0', 28],\n", | |
"['B', 'Y', 'i1', 15],\n", | |
"['B', 'Y', 'i2', 37],\n", | |
"['B', 'Y', 'i0', 33]\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# list(set(x)) gives list of unique elements in x\n", | |
"unique_source_nodes = list(set(map(lambda row: row[0], data_from_eg_excel)))\n", | |
"unique_dest_nodes = list(set(map(lambda row: row[1], data_from_eg_excel)))\n", | |
"unique_intermediate_nodes = list(set(map(lambda row: row[2], data_from_eg_excel)))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import random # just for randomizing colors\n", | |
"def make_items(nodes):\n", | |
" return [{\n", | |
" 'items': [\n", | |
" {\n", | |
" 'title': x,\n", | |
" 'color': \"#%03x\" % random.randint(0, 0xFFF)\n", | |
" } for x in nodes\n", | |
" ],\n", | |
" 'title': '',\n", | |
" 'label': 0\n", | |
" }]\n", | |
"\n", | |
"source_layer = {\n", | |
" 'items': make_items(unique_source_nodes),\n", | |
" 'title': 'Source layer',\n", | |
" 'x': 0.0\n", | |
"}\n", | |
"intermediate_layer = {\n", | |
" 'items': make_items(unique_intermediate_nodes),\n", | |
" 'title': 'Intermediate layer',\n", | |
" 'x': 0.5\n", | |
"}\n", | |
"dest_layer = {\n", | |
" 'items': make_items(unique_dest_nodes),\n", | |
" 'title': 'Destination layer',\n", | |
" 'x': 1.0\n", | |
"}\n", | |
"nodes = [source_layer, intermediate_layer, dest_layer]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"flows = [\n", | |
" {\n", | |
" 'path': [\n", | |
" [0,0,unique_source_nodes.index(row[0])],\n", | |
" [1,0,unique_intermediate_nodes.index(row[2])],\n", | |
" [2,0,unique_dest_nodes.index(row[1])]\n", | |
" ],\n", | |
" 'magnitude': row[3]\n", | |
" }\n", | |
" for row in data_from_eg_excel\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{\n", | |
" \"nodes\": [\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"color\": \"#2a5\",\n", | |
" \"title\": \"A\"\n", | |
" },\n", | |
" {\n", | |
" \"color\": \"#8c0\",\n", | |
" \"title\": \"B\"\n", | |
" }\n", | |
" ],\n", | |
" \"label\": 0,\n", | |
" \"title\": \"\"\n", | |
" }\n", | |
" ],\n", | |
" \"x\": 0.0,\n", | |
" \"title\": \"Source layer\"\n", | |
" },\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"color\": \"#39f\",\n", | |
" \"title\": \"i1\"\n", | |
" },\n", | |
" {\n", | |
" \"color\": \"#4f3\",\n", | |
" \"title\": \"i2\"\n", | |
" },\n", | |
" {\n", | |
" \"color\": \"#618\",\n", | |
" \"title\": \"i0\"\n", | |
" }\n", | |
" ],\n", | |
" \"label\": 0,\n", | |
" \"title\": \"\"\n", | |
" }\n", | |
" ],\n", | |
" \"x\": 0.5,\n", | |
" \"title\": \"Intermediate layer\"\n", | |
" },\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"items\": [\n", | |
" {\n", | |
" \"color\": \"#80f\",\n", | |
" \"title\": \"Z\"\n", | |
" },\n", | |
" {\n", | |
" \"color\": \"#033\",\n", | |
" \"title\": \"Y\"\n", | |
" }\n", | |
" ],\n", | |
" \"label\": 0,\n", | |
" \"title\": \"\"\n", | |
" }\n", | |
" ],\n", | |
" \"x\": 1.0,\n", | |
" \"title\": \"Destination layer\"\n", | |
" }\n", | |
" ],\n", | |
" \"flows\": [\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 30\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 24\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 2\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 37\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 52\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 19\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 2\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 22\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 22\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 22\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 2\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 0\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 28\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 0\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 15\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 37\n", | |
" },\n", | |
" {\n", | |
" \"path\": [\n", | |
" [\n", | |
" 0,\n", | |
" 0,\n", | |
" 1\n", | |
" ],\n", | |
" [\n", | |
" 1,\n", | |
" 0,\n", | |
" 2\n", | |
" ],\n", | |
" [\n", | |
" 2,\n", | |
" 0,\n", | |
" 1\n", | |
" ]\n", | |
" ],\n", | |
" \"magnitude\": 33\n", | |
" }\n", | |
" ]\n", | |
"}\n" | |
] | |
} | |
], | |
"source": [ | |
"import json\n", | |
"data = {\n", | |
" 'nodes': nodes,\n", | |
" 'flows': flows\n", | |
"}\n", | |
"data_json = json.dumps(data, indent=4)\n", | |
"print(data_json)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.4.3+" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment