diff --git a/content/posts/entso-e-ukraine-energy-transfer-viz.md b/content/posts/entso-e-ukraine-energy-transfer-viz.md new file mode 100644 index 0000000..f5e035a --- /dev/null +++ b/content/posts/entso-e-ukraine-energy-transfer-viz.md @@ -0,0 +1,326 @@ +--- +title: Візуалізація руху електроенергії з та в Україну за даними ENTSO-E +date: 2024-07-21T20:20:24+03:00 +draft: true + +load_vega: true +--- + + + +{{< vega-lite id="entso-e-bar" dataUrl="https://github.com/olehomelchenko/ua-entso-e-transfers/raw/main/output.json">}} +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "data": { + "url": "https://raw.githubusercontent.com/olehomelchenko/ua-entso-e-transfers/main/output_daily.json" + }, + "width": 600, + "height": 400, + "title": "За даними ENTSO-E", + "config": { + "background": "#FFF", + "padding": { + "top": 30, + "right": 30, + "bottom": 30, + "left": 30 + }, + "title": { + "font": "Menlo, Lucida Console, Monospace", + "fontSize": 14, + "fontWeight": "normal", + "color": "#005", + "dy": -3, + "anchor": "middle", + "subtitleFont": "Menlo, Lucida Console, Monospace", + "subtitleColor": "#337", + "subtitlePadding": 5 + }, + "legend": { + "layout": { + "bottom": { + "anchor": "middle" + } + }, + "orient": "bottom", + "gradientLength": 500, + "labelLimit": 500, + "columns": 3, + "clipHeight": 15, + "rowPadding": 10, + "gridAlign": "none", + "labelFont": "Menlo, Lucida Console, Monospace", + "titleFont": "Menlo, Lucida Console, Monospace", + "titleFontWeight": "normal", + "titlePadding": 5, + "titleAlign": "center", + "titleAnchor": "middle", + "titleLimit": 500, + "titleColor": "#005" + }, + "text": { + "font": "Menlo, Lucida Console, Monospace", + "color": "#005" + }, + "axis": { + "labelFont": "Menlo, Lucida Console, Monospace", + "labelColor": "#005", + "titleFont": "Menlo, Lucida Console, Monospace", + "titleColor": "#337" + }, + }, + "selection": { + "categoryFilter": { + "type": "single", + "fields": [ + "Country" + ], + "bind": { + "input": "select", + "name": "Вибір країни", + "options": [ + null, + "Hungary", + "Moldova", + "Poland", + "Romania", + "Slovakia" + ] + } + } + }, + "transform": [ + { + "calculate": "datum.Export_from_UA * -1", + "as": "export_neg" + }, + { + "calculate": "datum.Export_from_UA - datum.Import_from_UA", + "as": "balance" + }, + { + "filter": { + "selection": "categoryFilter" + } + } + ], + "mark": { + "type": "bar", + "tooltip": true + }, + "encoding": { + "x": { + "timeUnit": "yearmonthdate", + "field": "Date", + "type": "temporal", + "title": "Month of the year" + }, + "y": { + "aggregate": "sum", + "field": "Import_to_UA", + "type": "quantitative", + "title": "Import/Export, mW" + }, + "y2": { + "field": "export_neg" + }, + "color": { + "field": "Country", + "type": "nominal" + } + } +} +{{< /vega-lite >}} + + + +{{< vega-lite id="entso-e-dynamics" dataUrl="https://github.com/olehomelchenko/ua-entso-e-transfers/raw/main/output.json">}} +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "data": { + "url": "https://raw.githubusercontent.com/olehomelchenko/ua-entso-e-transfers/main/output.json" + }, + "config": { + "background": "#FFF", + "padding": { + "top": 30, + "right": 30, + "bottom": 30, + "left": 30 + }, + "title": { + "font": "Menlo, Lucida Console, Monospace", + "fontSize": 14, + "fontWeight": "normal", + "color": "#005", + "dy": -3, + "anchor": "middle", + "subtitleFont": "Menlo, Lucida Console, Monospace", + "subtitleColor": "#337", + "subtitlePadding": 5 + }, + "legend": { + "layout": { + "bottom": { + "anchor": "middle" + } + }, + "orient": "bottom", + "gradientLength": 500, + "labelLimit": 500, + "columns": 3, + "clipHeight": 15, + "rowPadding": 10, + "gridAlign": "none", + "labelFont": "Menlo, Lucida Console, Monospace", + "titleFont": "Menlo, Lucida Console, Monospace", + "titleFontWeight": "normal", + "titlePadding": 5, + "titleAlign": "center", + "titleAnchor": "middle", + "titleLimit": 500, + "titleColor": "#005" + }, + "text": { + "font": "Menlo, Lucida Console, Monospace", + "color": "#005" + }, + "axis": { + "labelFont": "Menlo, Lucida Console, Monospace", + "labelColor": "#005", + "titleFont": "Menlo, Lucida Console, Monospace", + "titleColor": "#337" + }, + }, + "transform": [ + { + "calculate": "substring(datum.Time, 0, 2)", + "as": "Hour" + }, + { + "calculate": "substring(datum.Country, 0, 3)", + "as": "cntr" + }, + { + "calculate": "datum.Export_from_UA * -1", + "as": "export_neg" + }, + ], + "vconcat": [ + { + "hconcat": [ + { + "title": "Avg. Transfer to/from Ukraine by Hour", + "transform": [ + { + "filter": { + "param": "brush" + } + }, + ], + "mark": "area", + "encoding": { + "x": { + "field": "Hour", + "type": "ordinal", + "axis": { + "title": "" + } + }, + "y": { + "field": "Import_to_UA", + "type": "quantitative", + "aggregate": "average", + "title": "Transfer, MW", + "scale": { + "domain": [ + -200, + 500 + ] + } + }, + "y2": { + "field": "export_neg", + "aggregate": "average" + } + } + }, + {"transform": [ + { + "filter": { + "param": "brush" + } + }, + ], + "title": ["Share of Import ","by Country"], + "encoding": { + "theta": { + "field": "Import_to_UA", + "type": "quantitative", + "aggregate": "sum", + "stack": true + }, + "color": { + "field": "Country", + "type": "nominal", + "legend": null + } + }, + "layer": [ + { + "mark": { + "type": "arc", + "tooltip": true, + "outerRadius": 60 + } + }, + { + "mark": { + "type": "text", + "radius": 80 + }, + "encoding": { + "text": { + "field": "cntr", + "type": "nominal" + } + } + } + ] + } + ] + }, + { + "width": 480, + "height": 60, + "mark": "area", + "params": [ + { + "name": "brush", + "select": { + "type": "interval", + "encodings": [ + "x" + ] + } + } + ], + "encoding": { + "x": { + "field": "Date", + "type": "temporal" + }, + "y": { + "field": "Import_to_UA", + "type": "quantitative", + "aggregate": "sum", + "axis": { + "tickCount": 3, + "grid": false + } + } + } + } + ] +} +{{< /vega-lite >}} \ No newline at end of file diff --git a/vega.vl.json b/vega.vl.json new file mode 100644 index 0000000..4c05176 --- /dev/null +++ b/vega.vl.json @@ -0,0 +1,423 @@ +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "description": "Interval (variable-width) bar chart", + "width": 800, + "data": { + "values": [ + { + "date": "2024-12-16", + "days": "7", + "discount": "", + "liter_daily": "4.250", + "liters": "29.75", + "prev_date": "2024-12-09", + "sum": "1,725.20", + "uah_daily": "246.46", + "uah_per_liter": "57.99" + }, + { + "date": "2024-12-09", + "days": "21", + "discount": "", + "liter_daily": "1.429", + "liters": "30", + "prev_date": "2024-11-18", + "sum": "1,739.70", + "uah_daily": "82.84", + "uah_per_liter": "57.99" + }, + { + "date": "2024-11-18", + "days": "19", + "discount": "", + "liter_daily": "2.106", + "liters": "40.01", + "prev_date": "2024-10-30", + "sum": "2,320.18", + "uah_daily": "122.11", + "uah_per_liter": "57.99" + }, + { + "date": "2024-10-30", + "days": "17", + "discount": "", + "liter_daily": "1.706", + "liters": "29", + "prev_date": "2024-10-13", + "sum": "1,681.71", + "uah_daily": "98.92", + "uah_per_liter": "57.99" + }, + { + "date": "2024-10-13", + "days": "20", + "discount": "", + "liter_daily": "1.570", + "liters": "31.39", + "prev_date": "2024-09-23", + "sum": "1,883.09", + "uah_daily": "94.15", + "uah_per_liter": "59.99" + }, + { + "date": "2024-09-23", + "days": "19", + "discount": "", + "liter_daily": "1.211", + "liters": "23", + "prev_date": "2024-09-04", + "sum": "1,379.77", + "uah_daily": "72.62", + "uah_per_liter": "59.99" + }, + { + "date": "2024-09-04", + "days": "12", + "discount": "", + "liter_daily": "2.348", + "liters": "28.17", + "prev_date": "2024-08-23", + "sum": "1,689.92", + "uah_daily": "140.83", + "uah_per_liter": "59.99" + }, + { + "date": "2024-08-23", + "days": "11", + "discount": "", + "liter_daily": "2.531", + "liters": "27.84", + "prev_date": "2024-08-12", + "sum": "1,670.12", + "uah_daily": "151.83", + "uah_per_liter": "59.99" + }, + { + "date": "2024-08-12", + "days": "9", + "discount": "", + "liter_daily": "2.452", + "liters": "22.07", + "prev_date": "2024-08-03", + "sum": "1,323.98", + "uah_daily": "147.11", + "uah_per_liter": "59.99" + }, + { + "date": "2024-08-03", + "days": "6", + "discount": "", + "liter_daily": "4.347", + "liters": "26.08", + "prev_date": "2024-07-28", + "sum": "1,564.54", + "uah_daily": "260.76", + "uah_per_liter": "59.99" + }, + { + "date": "2024-07-28", + "days": "10", + "discount": "", + "liter_daily": "2.300", + "liters": "23", + "prev_date": "2024-07-18", + "sum": "1,379.77", + "uah_daily": "137.98", + "uah_per_liter": "59.99" + }, + { + "date": "2024-07-18", + "days": "18", + "discount": "", + "liter_daily": "1.396", + "liters": "25.13", + "prev_date": "2024-06-30", + "sum": "1,507.55", + "uah_daily": "83.75", + "uah_per_liter": "59.99" + }, + { + "date": "2024-06-30", + "days": "13", + "discount": "", + "liter_daily": "2.077", + "liters": "27", + "prev_date": "2024-06-17", + "sum": "1,619.73", + "uah_daily": "124.59", + "uah_per_liter": "59.99" + }, + { + "date": "2024-06-17", + "days": "11", + "discount": "", + "liter_daily": "2.319", + "liters": "25.51", + "prev_date": "2024-06-06", + "sum": "1,530.34", + "uah_daily": "139.12", + "uah_per_liter": "59.99" + }, + { + "date": "2024-06-06", + "days": "11", + "discount": "", + "liter_daily": "2.500", + "liters": "27.5", + "prev_date": "2024-05-26", + "sum": "1,649.73", + "uah_daily": "149.98", + "uah_per_liter": "59.99" + }, + { + "date": "2024-05-26", + "days": "13", + "discount": "", + "liter_daily": "1.924", + "liters": "25.01", + "prev_date": "2024-05-13", + "sum": "1,500.35", + "uah_daily": "115.41", + "uah_per_liter": "59.99" + }, + { + "date": "2024-05-13", + "days": "14", + "discount": "", + "liter_daily": "1.953", + "liters": "27.34", + "prev_date": "2024-04-29", + "sum": "1,640.13", + "uah_daily": "117.15", + "uah_per_liter": "59.99" + }, + { + "date": "2024-04-29", + "days": "10", + "discount": "", + "liter_daily": "1.664", + "liters": "16.64", + "prev_date": "2024-04-19", + "sum": "981.59", + "uah_daily": "98.16", + "uah_per_liter": "58.99" + }, + { + "date": "2024-04-19", + "days": "11", + "discount": "", + "liter_daily": "1.826", + "liters": "20.09", + "prev_date": "2024-04-08", + "sum": "1,165.02", + "uah_daily": "105.91", + "uah_per_liter": "57.99" + }, + { + "date": "2024-04-08", + "days": "8", + "discount": "", + "liter_daily": "2.119", + "liters": "16.95", + "prev_date": "2024-03-31", + "sum": "974.46", + "uah_daily": "121.81", + "uah_per_liter": "57.49" + }, + { + "date": "2024-03-31", + "days": "13", + "discount": "", + "liter_daily": "1.605", + "liters": "20.86", + "prev_date": "2024-03-18", + "sum": "1,199.24", + "uah_daily": "92.25", + "uah_per_liter": "57.49" + }, + { + "date": "2024-03-18", + "days": "13", + "discount": "", + "liter_daily": "2.188", + "liters": "28.44", + "prev_date": "2024-03-05", + "sum": "1,620.80", + "uah_daily": "124.68", + "uah_per_liter": "56.99" + }, + { + "date": "2024-03-05", + "days": "6", + "discount": "", + "liter_daily": "3.425", + "liters": "20.55", + "prev_date": "2024-02-28", + "sum": "1,130.04", + "uah_daily": "188.34", + "uah_per_liter": "54.99" + }, + { + "date": "2024-02-28", + "days": "14", + "discount": "-30", + "liter_daily": "1.429", + "liters": "20", + "prev_date": "2024-02-14", + "sum": "1,099.80", + "uah_daily": "78.56", + "uah_per_liter": "54.99" + }, + { + "date": "2024-02-14", + "days": "14", + "discount": "", + "liter_daily": "1.441", + "liters": "20.17", + "prev_date": "2024-01-31", + "sum": "1,109.15", + "uah_daily": "79.23", + "uah_per_liter": "54.99" + }, + { + "date": "2024-01-31", + "days": "18", + "discount": "", + "liter_daily": "1.258", + "liters": "22.65", + "prev_date": "2024-01-13", + "sum": "1,245.52", + "uah_daily": "69.20", + "uah_per_liter": "54.99" + }, + { + "date": "2024-01-13", + "days": "14", + "discount": "", + "liter_daily": "1.768", + "liters": "24.75", + "prev_date": "2023-12-30", + "sum": "1,361.00", + "uah_daily": "97.21", + "uah_per_liter": "54.99" + }, + { + "date": "2023-12-30", + "days": "17", + "discount": "", + "liter_daily": "1.176", + "liters": "20", + "prev_date": "2023-12-13", + "sum": "1,099.80", + "uah_daily": "64.69", + "uah_per_liter": "54.99" + }, + { + "date": "2023-12-13", + "days": "13", + "discount": "", + "liter_daily": "1.897", + "liters": "24.66", + "prev_date": "2023-11-30", + "sum": "1,380.71", + "uah_daily": "106.21", + "uah_per_liter": "55.99" + }, + { + "date": "2023-11-30", + "days": "14", + "discount": "", + "liter_daily": "2.754", + "liters": "38.55", + "prev_date": "2023-11-16", + "sum": "2,235.51", + "uah_daily": "159.68", + "uah_per_liter": "57.99" + }, + { + "date": "2023-11-16", + "days": "16", + "discount": "", + "liter_daily": "1.798", + "liters": "28.76", + "prev_date": "2023-10-31", + "sum": "1,667.79", + "uah_daily": "104.24", + "uah_per_liter": "57.99" + }, + { + "date": "2023-10-31", + "days": "32", + "discount": "", + "liter_daily": "0.933", + "liters": "29.85", + "prev_date": "2023-09-29", + "sum": "1,731.00", + "uah_daily": "54.09", + "uah_per_liter": "57.99" + }, + { + "date": "2023-09-29", + "days": "16", + "discount": "", + "liter_daily": "1.536", + "liters": "24.58", + "prev_date": "2023-09-13", + "sum": "1,425.39", + "uah_daily": "89.09", + "uah_per_liter": "57.99" + }, + { + "date": "2023-09-13", + "days": "4", + "discount": "", + "liter_daily": "6.903", + "liters": "27.61", + "prev_date": "2023-09-09", + "sum": "1,545.88", + "uah_daily": "386.47", + "uah_per_liter": "55.99" + }, + { + "date": "2023-09-09", + "days": "31", + "discount": "", + "liter_daily": "1.162", + "liters": "36.03", + "prev_date": "2023-08-09", + "sum": "1,981.29", + "uah_daily": "63.91", + "uah_per_liter": "54.99" + } + ] + }, + "resolve": {"scale": {"y": "independent"}}, + "transform": [ + { + "calculate": "0", + "as": "baseline" + }, + {"fold": ["uah_daily", "liter_daily"], "as": ["metric", "value"]} + ], + "mark": {"type": "bar", "tooltip": true}, + "encoding": { + "x": { + "field": "prev_date", + "type": "temporal", + "title": "Interval Start" + }, + "x2": { + "field": "date" + }, + "y": {"field": "baseline", "type": "quantitative"}, + "y2": { + "field": "value", + "type": "quantitative" + }, + "row": { + "field": "metric", + "type": "nominal", + "title": "Metric" + } + } +} \ No newline at end of file