Skip to content

Datenschule/oekostromreport-data

Repository files navigation

Oekostromreport Data

In diesem Repository haben wir die Anbieter- und Kraftwerksdaten für den Ökostromreport 2020 gesammelt und daraus die Websuche auf https://www.robinwood.de/oekostromreport gebaut.

Developer setup

Allgemein

Diese Seite ist basiert auf Jekyll um schnell ein paar Templates und eine Prototyp-Website ausgeben zu können. Die Seite kann mit $ jekyll build gebaut oder mit $ jekyll serve als lokaler Dev-Server genutzt werden.

Die wichtigsten Daten liegen in assets/data-src. Durch Node-Scripte werden diese umgewandelt und in assets/data abgelegt. Die einzelnen Scripte sind in package.json definiert und können entweder einzeln oder gebündelt mit npm oder yarn ausgeführt werden. zB $ yarn run everything.

An JavaScript Dateien müssen Lunr (Suche), D3 (Diagramme) und Vue (Rendering) als Dependencies eingebunden werden, zusammen mit den ausführenen Scripten, die die Suche und die Diagramme definieren. Sie befinden sich alle in assets/js. @Todo script um diese zu in 1 Produktionsscript zu mergen

Einige Styles liegen, nachdem die Seite einmal gebaut wurde, in _site/css/main.css.

Suche

Die Suche benötigt einen Kontainer mit ID "app" und die Pfade der Anbieter.json und der Kriterien.csv

<div id="app"
     data-providerdata="/assets/data/indexanddata.json"
     data-criteriadata="/assets/data/criteria.csv"></div>

Beide Dateien befinden sich in assets/data/ und können direkt genutzt werden.

Ändern sich die Grunddaten in assets/data-src, können sie mit $ yarn run everything jederzeit neu generiert werden.

Die Suche ist in assets/js/search.js gebaut und braucht assets/lunr.js und assets/vue.min.js.

Diagramme

Es gibt zwei Diagramme: Tortendiagramme für Strommixe und ein Balkendiagramm für Kraftwerksdaten. Beide Diagramme sind in assets/chart.js beschrieben und brauchen assets/d3.min.js als Abhängigkeit.

Tortendiagramm

Das Tortendiagramm für den Strommix benötigt zwei Elemente, einen Container in den das Diagramm gesetzt wird, und ein Element, dass die Daten in data-Attributen definiert. (Diese data-Attribute werden auch im CSS verwendet.

<div class="chartcontainer" id="chart1"></div>

<div data-piechart="chart1">
    <p data-water="53.93">53,93% Wasser</p>
    <p data-wind="46.57">46,57% Wind</p>
    <p data-solar="1.12">1,50% Solar</p>
</div>

Wichtig ist, dass die ID des Containers mit dem Wert im data-piechart-Attribut des Datenelements übereinstimmt.

Balkendiagramm

Das Bakendiagramm visualsiert Anzahl, Art und Alter der Kraftwerke, für die der Anbieter Herkunftsnachweise gekauft hat.

<div id="barchart"
     data-barchart="barchart"
     data-powerdata="/assets/data/powerplants.json"
     class="chart"></div>

Wichtig ist, dass das data-barchart-Attribut gesetzt ist, danach sucht das Script. Die ID ist nur wichtig, falls mehrere Diagramme auf der Seite erscheinen sollen (Zur Zeit nicht geplant). Das data-powerdata-Attribut Zeit zu einem JSON mit Kraftwerksdaten des jeweiligen Anbieters.

Zur Zeit bdefindet sich in assets/data/powerplants.json eine Testdatei mit den schematischen Struktur.

Datenaufarbeitung

Hier wird kurz beschrieben, wie aus dem Excel erst die CSV und dann der Suchindex entsteht.

In assets/data-src befindet sich eine Kopie der Recherche-Tabelle, anbieterliste-januar-2020.xlsx. Diese kann in Open Refine mit dem Workflow hinterlegt in open-refine-workflow.json bearbeitet und als CSV exportiert werden. Ein Beispiel ist providers-january-2020.csv, welche auch in den Scripten in package.json referenziert wird. Aus dieser Datei wird der Index für die Anbietersuche generiert.