From 48210d5275f02fa10ba807b9716de78aa42dc219 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Sun, 27 Mar 2016 00:27:14 -0700 Subject: [PATCH] Add a sankey example --- dashed/bin/dashed | 3 ++ dashed/data/__init__.py | 61 ++++++++++++++++++++++++++++++++++++- dashed/data/energy.json.gz | Bin 0 -> 983 bytes 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 dashed/data/energy.json.gz diff --git a/dashed/bin/dashed b/dashed/bin/dashed index ac47bb6e9f55..9640a49c5c10 100755 --- a/dashed/bin/dashed +++ b/dashed/bin/dashed @@ -61,6 +61,9 @@ def load_examples(sample): data.load_css_templates() + print("Loading energy related dataset") + data.load_energy() + print("Loading [World Bank's Health Nutrition and Population Stats]") data.load_world_bank_health_n_pop() diff --git a/dashed/data/__init__.py b/dashed/data/__init__.py index 348a14ebb6d3..5e1a4938b030 100644 --- a/dashed/data/__init__.py +++ b/dashed/data/__init__.py @@ -6,7 +6,7 @@ import textwrap import pandas as pd -from sqlalchemy import String, DateTime +from sqlalchemy import String, DateTime, Float from dashed import app, db, models, utils @@ -47,6 +47,65 @@ def get_slice_json(defaults, **kwargs): return json.dumps(d, indent=4, sort_keys=True) +def load_energy(): + """Loads an energy related dataset to use with sankey and graphs""" + tbl_name = 'energy_usage' + with gzip.open(os.path.join(DATA_FOLDER, 'energy.json.gz')) as f: + pdf = pd.read_json(f) + pdf.to_sql( + tbl_name, + db.engine, + if_exists='replace', + chunksize=500, + dtype={ + 'source': String(255), + 'target': String(255), + 'value': Float(), + }, + index=False) + + print("Creating table [wb_health_population] reference") + tbl = db.session.query(TBL).filter_by(table_name=tbl_name).first() + if not tbl: + tbl = TBL(table_name=tbl_name) + tbl.description = "Energy consumption" + tbl.is_featured = True + tbl.database = get_or_create_db(db.session) + db.session.merge(tbl) + db.session.commit() + tbl.fetch_metadata() + + merge_slice( + Slice( + slice_name="Energy Sankey", + viz_type='sankey', + datasource_type='table', + table=tbl, + params=textwrap.dedent("""\ + { + "collapsed_fieldsets": "", + "datasource_id": "3", + "datasource_name": "energy_usage", + "datasource_type": "table", + "flt_col_0": "source", + "flt_eq_0": "", + "flt_op_0": "in", + "groupby": [ + "source", + "target" + ], + "having": "", + "metric": "sum__value", + "row_limit": "5000", + "slice_id": "", + "slice_name": "Energy Sankey", + "viz_type": "sankey", + "where": "" + } + """)) + ) + + def load_world_bank_health_n_pop(): """Loads the world bank health dataset, slices and a dashboard""" tbl_name = 'wb_health_population' diff --git a/dashed/data/energy.json.gz b/dashed/data/energy.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2f47a148b4f1a0c9dbd244e6e2f9803c4697dd6 GIT binary patch literal 983 zcmV;|11S6-iwFpz+3;2X17&Vya%XuiYIARH0IitIQrj>ThW9*$CTmD@rL?;?kiras z443Jm?Ls&r(bTarl1!WF^xZ4lkl69BOPsP{#$<$JVF0 z3dk6?Y0N4zsGiBg;IJ< z?gfuk2{df?!a>*kg()qfpM)keGNDQFe#_d!s9U{Yl2l)AclSOVbjKq`M&>zxp_+@N z!Wp_b8+UAIH(X1RDssEyaEqU~3=9|CP@FD#!qX+W5y{Dz$^4fmOw+1O4s7QD?B#f* z$O)O6e5ynO=mrO?7Kt88Do*7J-Ur*b8fIDZ;LYl&UE1!VG>$E=r&_&E5ZHkNQ zb*>N#Ml}|qUB%nF3kBZGb!Yrx@J;G(G02HtOey!a(QQP+(RbIM4>}fNmcMuqPc({z zx0ZasD`_$(dvUKBi@l=d!%b+k;3i|%2a|4joIn3U6`4vAF{O$!JS5lMNYgFs_I zigX7!M`~+}B(po@3}-}*^B`%WRzm99#591C1k|DFbOL=?(zbGAbnB#>Y8Dwyq`ySw#}}n9_&;)nRL= zle$n1;L?2^Q&p3FTP}iF+iV|JA3}I5#hEogpFn*3!HBTN2i>#l3V+RF&A!ecW-cWo zGmXzHht1tl*)tG3NH(Ey%Si@&=5h4|gN_ZTpIDCX4$cssUVI$;i3)A0JlQpED%KPZ zIclPo=?B)Gh06rpb2uZ1QSiW*XINCNJtDUcI#zu>DJSy;LmD}%^AsN%MG23<;^i4NQkI_nP_ zCFm^F2DH9*ItuX)+DvV5-