From 404ac76a2c2b5af481d913e67fdc07475317a277 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Mon, 4 Sep 2023 15:48:19 +0200 Subject: [PATCH 01/73] Update STP Wind tooltip text --- digiplan/static/config/energy_settings_panel.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/digiplan/static/config/energy_settings_panel.json b/digiplan/static/config/energy_settings_panel.json index 76a6665a..8681e938 100644 --- a/digiplan/static/config/energy_settings_panel.json +++ b/digiplan/static/config/energy_settings_panel.json @@ -22,19 +22,19 @@ "s_w_4": { "class": "js-sidepanel-switch", "label": "{% trans 'Planabsicht nach STP Wind 2027' %}", - "tooltip": "{% trans 'Planabsicht der Regionalen Planungsgemeinschaft nach Entwurf für Sachlichen Teilplan Wind 2027 (ca. 3 % der Fläche).' %}", + "tooltip": "{% trans 'Planabsicht der Regionalen Planungsgemeinschaft nach Ideenkarte für Sachlichen Teilplan Wind 2027 (ca. 3 % der Fläche).' %}", "type": "switch" }, "s_w_4_1": { "class": "js-sidepanel-switch", "label": "{% trans 'Vorranggebiete' %}", - "tooltip": "{% trans 'Vorranggebiete: Planabsicht der Regionalen Planungsgemeinschaft nach Entwurf für Sachlichen Teilplan Wind 2027 (ca. 2,7 % der Fläche).' %}", + "tooltip": "{% trans 'Vorranggebiete: Planabsicht der Regionalen Planungsgemeinschaft nach Ideenkarte für Sachlichen Teilplan Wind 2027 (ca. 2,7 % der Fläche).' %}", "type": "switch" }, "s_w_4_2": { "class": "js-sidepanel-switch", "label": "{% trans 'Vorranggebiete Repowering' %}", - "tooltip": "{% trans 'Vorranggebiete für Repowering: Planabsicht der Regionalen Planungsgemeinschaft nach Entwurf für Sachlichen Teilplan Wind 2027 (ca. 0,3 % der Fläche).' %}", + "tooltip": "{% trans 'Vorranggebiete für Repowering: Planabsicht der Regionalen Planungsgemeinschaft nach Ideenkarte für Sachlichen Teilplan Wind 2027 (ca. 0,3 % der Fläche).' %}", "type": "switch" }, "s_w_5": { From f267cb74672dba6f7b531c9bb11c58024e3011b7 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 09:04:07 +0200 Subject: [PATCH 02/73] Update DE po file --- locale/de/LC_MESSAGES/django.po | 168 ++++++++++++++++---------------- 1 file changed, 82 insertions(+), 86 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index ac5df2e9..d3fabf6a 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-01 10:40+0000\n" +"POT-Creation-Date: 2023-09-04 13:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,14 +38,14 @@ msgstr "" msgid "EinwohnerInnenzahl pro km²" msgstr "" -#: config/settings/base.py:359 digiplan/map/popups.py:473 -#: digiplan/map/popups.py:485 +#: config/settings/base.py:359 digiplan/map/popups.py:491 +#: digiplan/map/popups.py:503 #: digiplan/templates/components/panel_1_today.html:45 msgid "Beschäftigte" msgstr "" -#: config/settings/base.py:360 digiplan/map/popups.py:495 -#: digiplan/map/popups.py:507 +#: config/settings/base.py:360 digiplan/map/popups.py:513 +#: digiplan/map/popups.py:525 #: digiplan/templates/components/panel_1_today.html:46 msgid "Betriebe" msgstr "" @@ -56,7 +56,7 @@ msgid "Installierte Leistung" msgstr "" #: config/settings/base.py:361 config/settings/base.py:362 -#: digiplan/map/charts.py:339 digiplan/map/charts.py:370 +#: digiplan/map/charts.py:414 digiplan/map/charts.py:446 msgid "MW" msgstr "" @@ -80,12 +80,12 @@ msgstr "" #: config/settings/base.py:393 config/settings/base.py:399 #: config/settings/base.py:435 config/settings/base.py:441 #: config/settings/base.py:459 config/settings/base.py:465 -#: digiplan/map/charts.py:388 digiplan/map/charts.py:581 -#: digiplan/map/charts.py:600 digiplan/map/charts.py:672 -#: digiplan/map/charts.py:691 digiplan/map/popups.py:304 -#: digiplan/map/popups.py:321 digiplan/map/popups.py:381 -#: digiplan/map/popups.py:662 digiplan/map/popups.py:725 -#: digiplan/map/popups.py:748 +#: digiplan/map/charts.py:464 digiplan/map/charts.py:484 +#: digiplan/map/charts.py:726 digiplan/map/charts.py:747 +#: digiplan/map/charts.py:823 digiplan/map/charts.py:842 +#: digiplan/map/popups.py:304 digiplan/map/popups.py:321 +#: digiplan/map/popups.py:381 digiplan/map/popups.py:680 +#: digiplan/map/popups.py:749 digiplan/map/popups.py:772 msgid "GWh" msgstr "" @@ -99,11 +99,11 @@ msgstr "" #: config/settings/base.py:411 config/settings/base.py:417 #: config/settings/base.py:423 config/settings/base.py:429 -#: config/settings/base.py:489 digiplan/map/charts.py:407 -#: digiplan/map/charts.py:447 digiplan/map/charts.py:469 -#: digiplan/map/charts.py:781 digiplan/map/popups.py:362 -#: digiplan/map/popups.py:407 digiplan/map/popups.py:426 -#: digiplan/map/popups.py:837 +#: config/settings/base.py:489 digiplan/map/charts.py:524 +#: digiplan/map/charts.py:557 digiplan/map/charts.py:580 +#: digiplan/map/charts.py:613 digiplan/map/charts.py:936 +#: digiplan/map/popups.py:362 digiplan/map/popups.py:407 +#: digiplan/map/popups.py:426 digiplan/map/popups.py:867 msgid "MWh" msgstr "" @@ -112,8 +112,8 @@ msgid "Gewonnene Energie aus EE je km²" msgstr "" #: config/settings/base.py:434 config/settings/base.py:440 -#: digiplan/map/popups.py:630 digiplan/map/popups.py:638 -#: digiplan/map/popups.py:647 digiplan/map/popups.py:661 +#: digiplan/map/popups.py:648 digiplan/map/popups.py:656 +#: digiplan/map/popups.py:665 digiplan/map/popups.py:679 msgid "Strombedarf" msgstr "" @@ -123,16 +123,16 @@ msgstr "" #: config/settings/base.py:447 config/settings/base.py:453 #: config/settings/base.py:471 config/settings/base.py:477 -#: digiplan/map/charts.py:623 digiplan/map/charts.py:654 -#: digiplan/map/charts.py:714 digiplan/map/charts.py:745 -#: digiplan/map/popups.py:680 digiplan/map/popups.py:707 -#: digiplan/map/popups.py:766 digiplan/map/popups.py:793 +#: digiplan/map/charts.py:770 digiplan/map/charts.py:805 +#: digiplan/map/charts.py:865 digiplan/map/charts.py:900 +#: digiplan/map/popups.py:701 digiplan/map/popups.py:731 +#: digiplan/map/popups.py:793 digiplan/map/popups.py:823 msgid "kWh" msgstr "" #: config/settings/base.py:458 config/settings/base.py:464 -#: digiplan/map/popups.py:716 digiplan/map/popups.py:724 -#: digiplan/map/popups.py:733 digiplan/map/popups.py:747 +#: digiplan/map/popups.py:740 digiplan/map/popups.py:748 +#: digiplan/map/popups.py:757 digiplan/map/popups.py:771 msgid "Wärmebedarf" msgstr "" @@ -140,42 +140,42 @@ msgstr "" msgid "Wärmebedarf pro EinwohnerIn" msgstr "" -#: config/settings/base.py:482 digiplan/map/popups.py:802 -#: digiplan/map/popups.py:814 +#: config/settings/base.py:482 digiplan/map/popups.py:832 +#: digiplan/map/popups.py:844 #: digiplan/templates/components/panel_1_today.html:98 msgid "Anzahl Batteriespeicher" msgstr "" -#: config/settings/base.py:488 digiplan/map/popups.py:824 -#: digiplan/map/popups.py:836 +#: config/settings/base.py:488 digiplan/map/popups.py:854 +#: digiplan/map/popups.py:866 #: digiplan/templates/components/panel_1_today.html:99 msgid "Kapazität Batteriespeicher" msgstr "" -#: digiplan/map/calculations.py:218 digiplan/map/calculations.py:282 -#: digiplan/map/config.py:184 +#: digiplan/map/calculations.py:230 digiplan/map/calculations.py:287 +#: digiplan/map/config.py:183 msgid "Electricity Household Demand" msgstr "Strombedarf Haushalte" -#: digiplan/map/calculations.py:219 digiplan/map/calculations.py:283 -#: digiplan/map/config.py:185 +#: digiplan/map/calculations.py:231 digiplan/map/calculations.py:288 +#: digiplan/map/config.py:184 msgid "Electricity CTS Demand" msgstr "Strombedarf GDP" -#: digiplan/map/calculations.py:220 digiplan/map/calculations.py:284 -#: digiplan/map/config.py:186 +#: digiplan/map/calculations.py:232 digiplan/map/calculations.py:289 +#: digiplan/map/config.py:185 msgid "Electricity Industry Demand" msgstr "Strombedarf Industrie" -#: digiplan/map/charts.py:245 digiplan/map/popups.py:465 +#: digiplan/map/charts.py:320 digiplan/map/popups.py:483 msgid "EW/km²" msgstr "" -#: digiplan/map/charts.py:425 digiplan/map/popups.py:345 +#: digiplan/map/charts.py:502 digiplan/map/popups.py:345 msgid "%" msgstr "" -#: digiplan/map/charts.py:763 +#: digiplan/map/charts.py:918 msgid "Anzahl" msgstr "" @@ -204,31 +204,27 @@ msgstr "Wasserkraft" msgid "Biomass" msgstr "Biomasse" -#: digiplan/map/config.py:183 -msgid "BEV" -msgstr "" - -#: digiplan/map/config.py:187 +#: digiplan/map/config.py:186 msgid "Electricity Household Heat Demand" msgstr "Strombedarf" -#: digiplan/map/config.py:188 +#: digiplan/map/config.py:187 msgid "Electricity CTS Heat Demand" msgstr "Strombedarf" -#: digiplan/map/config.py:189 +#: digiplan/map/config.py:188 msgid "Electricity Industry Heat Demand" msgstr "Strombedarf" -#: digiplan/map/config.py:191 +#: digiplan/map/config.py:190 msgid "CTS Heat Demand" msgstr "Wärmebedarf (GWh)" -#: digiplan/map/config.py:192 +#: digiplan/map/config.py:191 msgid "Household Heat Demand" msgstr "" -#: digiplan/map/config.py:193 +#: digiplan/map/config.py:192 msgid "Industry Heat Demand" msgstr "Strombedarf" @@ -601,43 +597,43 @@ msgstr "" msgid "Energieanteile pro km²" msgstr "" -#: digiplan/map/popups.py:464 +#: digiplan/map/popups.py:482 msgid "Population density per year" msgstr "Bevölkerungsdichte" -#: digiplan/map/popups.py:517 digiplan/map/popups.py:534 +#: digiplan/map/popups.py:535 digiplan/map/popups.py:552 msgid "Number of wind turbines" msgstr "Anzahl Windenergieanlagen" -#: digiplan/map/popups.py:518 digiplan/map/popups.py:535 +#: digiplan/map/popups.py:536 digiplan/map/popups.py:553 msgid "Description for number of wind turbines" msgstr "Anzahl Windenergieanlagen je km²" -#: digiplan/map/popups.py:579 digiplan/map/popups.py:612 +#: digiplan/map/popups.py:597 digiplan/map/popups.py:630 msgid "Windturbinen pro km²" msgstr "Anzahl Windenergieanlagen je km²" -#: digiplan/map/popups.py:580 digiplan/map/popups.py:613 +#: digiplan/map/popups.py:598 digiplan/map/popups.py:631 msgid "WT/km²" msgstr "WEA/km²" -#: digiplan/map/popups.py:639 +#: digiplan/map/popups.py:657 msgid "ǴWh" msgstr "" -#: digiplan/map/popups.py:671 digiplan/map/popups.py:679 -#: digiplan/map/popups.py:688 digiplan/map/popups.py:706 +#: digiplan/map/popups.py:689 digiplan/map/popups.py:700 +#: digiplan/map/popups.py:709 digiplan/map/popups.py:730 msgid "Strombedarf je EinwohnerIn" msgstr "" -#: digiplan/map/popups.py:757 digiplan/map/popups.py:765 -#: digiplan/map/popups.py:774 digiplan/map/popups.py:792 +#: digiplan/map/popups.py:781 digiplan/map/popups.py:792 +#: digiplan/map/popups.py:801 digiplan/map/popups.py:822 msgid "Wärmebedarf je EinwohnerIn" msgstr "" #: digiplan/static/config/energy_settings_panel.json:6 msgid "Windenergie (MW)" -msgstr "Windenergie" +msgstr "" #: digiplan/static/config/energy_settings_panel.json:12 #, python-format @@ -668,8 +664,8 @@ msgstr "" #: digiplan/static/config/energy_settings_panel.json:25 #, python-format msgid "" -"Planabsicht der Regionalen Planungsgemeinschaft nach Entwurf für Sachlichen " -"Teilplan Wind 2027 (ca. 3 %% der Fläche)." +"Planabsicht der Regionalen Planungsgemeinschaft nach Ideenkarte für " +"Sachlichen Teilplan Wind 2027 (ca. 3 %% der Fläche)." msgstr "" #: digiplan/static/config/energy_settings_panel.json:30 @@ -679,8 +675,8 @@ msgstr "" #: digiplan/static/config/energy_settings_panel.json:31 #, python-format msgid "" -"Vorranggebiete: Planabsicht der Regionalen Planungsgemeinschaft nach Entwurf " -"für Sachlichen Teilplan Wind 2027 (ca. 2,7 %% der Fläche)." +"Vorranggebiete: Planabsicht der Regionalen Planungsgemeinschaft nach " +"Ideenkarte für Sachlichen Teilplan Wind 2027 (ca. 2,7 %% der Fläche)." msgstr "" #: digiplan/static/config/energy_settings_panel.json:36 @@ -691,8 +687,8 @@ msgstr "" #, python-format msgid "" "Vorranggebiete für Repowering: Planabsicht der Regionalen " -"Planungsgemeinschaft nach Entwurf für Sachlichen Teilplan Wind 2027 (ca. 0,3 " -"%% der Fläche)." +"Planungsgemeinschaft nach Ideenkarte für Sachlichen Teilplan Wind 2027 (ca. " +"0,3 %% der Fläche)." msgstr "" #: digiplan/static/config/energy_settings_panel.json:42 @@ -835,7 +831,7 @@ msgid "" msgstr "" #: digiplan/static/config/energy_settings_panel.json:164 -#: digiplan/static/config/heat_settings_panel.json:17 +#: digiplan/static/config/heat_settings_panel.json:18 #, python-format msgid "Haushalte (%%)" msgstr "Haushalte (%%)" @@ -878,48 +874,48 @@ msgstr "" msgid "Anteil Wärmepumpen dezentral (%%)" msgstr "" -#: digiplan/static/config/heat_settings_panel.json:11 +#: digiplan/static/config/heat_settings_panel.json:12 msgid "" "Energetischer Anteil von Wärmepumpen in dezentralen Heizungssystemen. Das " "dargestellte Ziel für 2045 ist abgeleitet aus den BMWK Langfristszenarien." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:23 +#: digiplan/static/config/heat_settings_panel.json:25 msgid "" "Anteil von Wärmepumpen für Verbraucher mit eigener Wärmeerzeugung im " "Haushaltssektor." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:28 -#: digiplan/static/config/heat_settings_panel.json:86 +#: digiplan/static/config/heat_settings_panel.json:30 +#: digiplan/static/config/heat_settings_panel.json:91 #, python-format msgid "Commercial, Trade, Services (%%)" msgstr "Gewerbe, Handel, Dienstleistungen (%%)" -#: digiplan/static/config/heat_settings_panel.json:34 +#: digiplan/static/config/heat_settings_panel.json:37 msgid "" "Anteil von Wärmepumpen für Verbraucher mit eigener Wärmeerzeugung im " "Gewerbe-, Handels- und Dienstleistungssektor." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:39 -#: digiplan/static/config/heat_settings_panel.json:97 +#: digiplan/static/config/heat_settings_panel.json:42 +#: digiplan/static/config/heat_settings_panel.json:102 #, python-format msgid "Industry (%%)" msgstr "Industrie (%%)" -#: digiplan/static/config/heat_settings_panel.json:45 +#: digiplan/static/config/heat_settings_panel.json:49 msgid "" "Anteil von Wärmepumpen für Verbraucher mit eigener Wärmeerzeugung in der " "Industrie." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:51 +#: digiplan/static/config/heat_settings_panel.json:55 #, python-format msgid "Anteil Wärmepumpen Fernwärme (%%)" msgstr "" -#: digiplan/static/config/heat_settings_panel.json:57 +#: digiplan/static/config/heat_settings_panel.json:62 msgid "" "Energetischer Anteil von Wärmepumpen für Heizung, Warmwasser und " "Prozesswärme in Haushalten, GHD und Industrie in Fernwärmenetzen (Dessau-" @@ -930,62 +926,62 @@ msgid "" "Wärmesysteme werden im Menü separat konfiguriert." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:63 +#: digiplan/static/config/heat_settings_panel.json:68 #, python-format msgid "Heat consumption (%%)" msgstr "Verbrauch (%%)" -#: digiplan/static/config/heat_settings_panel.json:69 +#: digiplan/static/config/heat_settings_panel.json:74 msgid "" "Relativer Wärmeverbrauch (Endenergie) von Haushalten, GHD und Industrie " "gegenüber heute. Das dargestellte Ziel für 2045 ist abgeleitet aus den BMWK " "Langfristszenarien." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:75 +#: digiplan/static/config/heat_settings_panel.json:80 #, python-format msgid "Households (%%)" msgstr "Haushalte (%%)" -#: digiplan/static/config/heat_settings_panel.json:81 +#: digiplan/static/config/heat_settings_panel.json:86 msgid "" "Umfasst Heizung, Warmwasser und Kochen in Haushalten mit eigener " "Wärmeerzeugung und in Fernwärmenetzen. Das dargestellte Ziel für 2045 ist " "abgeleitet aus den BMWK Langfristszenarien." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:92 +#: digiplan/static/config/heat_settings_panel.json:97 msgid "" "Umfasst Heizung und Warmwasser im Gewerbe-, Handels- und " "Dienstleistungssektor mit eigener Wärmeerzeugung und in Fernwärmenetzen. Das " "dargestellte Ziel für 2045 ist abgeleitet aus den BMWK Langfristszenarien." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:103 +#: digiplan/static/config/heat_settings_panel.json:108 msgid "" "Umfasst Heizwärme, Warmwasser und Prozesswärme in der Industrie mit eigener " "Wärmeerzeugung und in Fernwärmenetzen. Das dargestellte Ziel für 2045 ist " "abgeleitet aus den BMWK Langfristszenarien." msgstr "" -#: digiplan/static/config/heat_settings_panel.json:109 +#: digiplan/static/config/heat_settings_panel.json:114 #, python-format msgid "Dezentrale Speicher: Zwischenspeicherung des tägl. Wärmebedarfs (%%)" msgstr "" -#: digiplan/static/config/heat_settings_panel.json:115 +#: digiplan/static/config/heat_settings_panel.json:120 msgid "" "Wieviel des täglichen Wärmebedarfs in dezentralen Systemen (Heizung, " "Warmwasser und Prozesswärme) sollen in kleinen Warmwasserspeichern " "zwischengespeichert werden können?" msgstr "" -#: digiplan/static/config/heat_settings_panel.json:121 +#: digiplan/static/config/heat_settings_panel.json:126 #, python-format msgid "Großwärmespeicher: Zwischenspeicherung des tägl. Wärmebedarfs (%%)" msgstr "" -#: digiplan/static/config/heat_settings_panel.json:127 +#: digiplan/static/config/heat_settings_panel.json:132 msgid "" "Wieviel des täglichen Wärmebedarfs in Fernwärmenetzen (Heizung, Warmwasser " "und Prozesswärme) sollen in großen Warmwasserspeichern zwischengespeichert " From bb44e55009faff250dfcade385ada2401505d86a Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 09:34:30 +0200 Subject: [PATCH 03/73] Change xAxis captions in charts to '2022' and 'Dein Szenario' --- digiplan/map/charts.py | 22 +++++++++++----------- digiplan/map/charts/detailed_overview.json | 2 +- digiplan/map/charts/electricity_ghg.json | 2 +- digiplan/map/charts/mobility_ghg.json | 2 +- digiplan/map/popups.py | 20 ++++++++++---------- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/digiplan/map/charts.py b/digiplan/map/charts.py index 8d881f70..592bbef9 100644 --- a/digiplan/map/charts.py +++ b/digiplan/map/charts.py @@ -387,7 +387,7 @@ def get_chart_data(self) -> list: def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] del chart_options["title"]["text"] return chart_options @@ -442,7 +442,7 @@ def get_chart_data(self) -> list: def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] chart_options["yAxis"]["name"] = _("MW") del chart_options["title"]["text"] return chart_options @@ -482,7 +482,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -555,7 +555,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("MWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -611,7 +611,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("MWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -645,7 +645,7 @@ def get_chart_data(self) -> list[int]: def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] del chart_options["title"]["text"] return chart_options @@ -706,7 +706,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = "" - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options @@ -745,7 +745,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -803,7 +803,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("kWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -840,7 +840,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options @@ -898,7 +898,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() del chart_options["title"]["text"] chart_options["yAxis"]["name"] = _("kWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] return chart_options diff --git a/digiplan/map/charts/detailed_overview.json b/digiplan/map/charts/detailed_overview.json index 09490896..9e45061a 100644 --- a/digiplan/map/charts/detailed_overview.json +++ b/digiplan/map/charts/detailed_overview.json @@ -20,7 +20,7 @@ "containLabel": true }, "yAxis": { - "data": ["Ziel 2045", "Mein Szenario", "Status Quo"], + "data": ["Ziel 2045", "Dein Szenario", "Status Quo"], "axisLine": { "onZero": true }, "splitLine": { "show": false }, "splitArea": { "show": false } diff --git a/digiplan/map/charts/electricity_ghg.json b/digiplan/map/charts/electricity_ghg.json index be8cf73f..e0b5411c 100644 --- a/digiplan/map/charts/electricity_ghg.json +++ b/digiplan/map/charts/electricity_ghg.json @@ -16,7 +16,7 @@ }, "yAxis": { "type": "category", - "data": ["Ziel", "Mein Szenario", "Status Quo", "1990"], + "data": ["Ziel", "Dein Szenario", "Status Quo", "1990"], "axisTick": { "show": false } diff --git a/digiplan/map/charts/mobility_ghg.json b/digiplan/map/charts/mobility_ghg.json index ae017195..cce3d61a 100644 --- a/digiplan/map/charts/mobility_ghg.json +++ b/digiplan/map/charts/mobility_ghg.json @@ -16,7 +16,7 @@ }, "yAxis": { "type": "category", - "data": ["Ziel", "Mein Szenario", "Status Quo", "1990"], + "data": ["Ziel", "Dein Szenario", "Status Quo", "1990"], "axisTick": { "show": false } diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index 92a393de..80f71c29 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -231,7 +231,7 @@ def get_detailed_data(self) -> pd.DataFrame: # noqa: D102 def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -276,7 +276,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("installierte Leistung nach Typ") chart_options["yAxis"]["name"] = _("MW/km²") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -319,7 +319,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Energieanteile pro Technologie") chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -379,7 +379,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Energieanteile pro Technologie") chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -424,7 +424,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Energieanteile pro km²") chart_options["yAxis"]["name"] = _("MWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -570,7 +570,7 @@ def get_municipality_value(self) -> Optional[float]: def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -629,7 +629,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Windturbinen pro km²") chart_options["yAxis"]["name"] = _("WT/km²") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: @@ -678,7 +678,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Strombedarf") chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options @@ -770,7 +770,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Wärmebedarf") chart_options["yAxis"]["name"] = _("GWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options @@ -821,7 +821,7 @@ def get_chart_options(self) -> dict: chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Wärmebedarf je EinwohnerIn") chart_options["yAxis"]["name"] = _("kWh") - chart_options["xAxis"]["data"] = ["Status Quo", "Mein Szenario"] + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options From 2d474201544eb7d684dc9c225b7ea56fe6b2ce14 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 09:35:28 +0200 Subject: [PATCH 04/73] Update DE po file --- locale/de/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index d3fabf6a..a75df359 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-04 13:53+0000\n" +"POT-Creation-Date: 2023-09-05 07:35+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 2581411fdc2640e0018c5a98ec02fff70fb34fa5 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 09:51:19 +0200 Subject: [PATCH 05/73] Update DE po file --- locale/de/LC_MESSAGES/django.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index a75df359..3a36a25e 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-05 07:35+0000\n" +"POT-Creation-Date: 2023-09-05 07:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1142,7 +1142,9 @@ msgstr "Gewonnene Energie aus EE je EinwohnerIn (MWh)" msgid "" "Annual amount of energy fed in from renewable plants (wind energy, " "photovoltaic, hydro power) related to the area in megawatt hours per km²." -msgstr "Jährlich eingespeiste Energiemenge aus erneuerbaren Anlagen" +msgstr "" +"Jährlich eingespeiste Energiemenge aus erneuerbaren Anlagen je Fläche in MWh/" +"km²." #: digiplan/templates/components/panel_1_today.html:62 #: digiplan/templates/components/panel_3_results.html:48 From 4b9aca65a6d8428c3993423083bf8cafb9277bd4 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:11:02 +0200 Subject: [PATCH 06/73] Fix bar width in WT charts --- digiplan/map/charts/wind_turbines.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiplan/map/charts/wind_turbines.json b/digiplan/map/charts/wind_turbines.json index c4b4528e..d57e61c8 100644 --- a/digiplan/map/charts/wind_turbines.json +++ b/digiplan/map/charts/wind_turbines.json @@ -19,7 +19,7 @@ "series": [ { "type": "bar", - "barWidth": "16", + "barWidth": "60", "data": [5], "name": "Windenergieanlagen" } From 20db644e470b6bef1a4895d855d52fafcead180c Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:12:02 +0200 Subject: [PATCH 07/73] Fix WT tooltips and update DE po file --- .../templates/components/panel_3_results.html | 4 ++-- locale/de/LC_MESSAGES/django.po | 22 ++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/digiplan/templates/components/panel_3_results.html b/digiplan/templates/components/panel_3_results.html index cf103653..7edbfe2d 100644 --- a/digiplan/templates/components/panel_3_results.html +++ b/digiplan/templates/components/panel_3_results.html @@ -56,11 +56,11 @@

{% translate "Installed Renewable Capacity (MW/km²)" %} diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 3a36a25e..e3aaa0c6 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-05 07:51+0000\n" +"POT-Creation-Date: 2023-09-05 08:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1177,14 +1177,12 @@ msgstr "Installierte Leistung EE (MW/km²)" #: digiplan/templates/components/panel_1_today.html:73 #: digiplan/templates/components/panel_1_today.html:74 -#: digiplan/templates/components/panel_3_results.html:59 #: digiplan/templates/components/panel_3_results.html:60 msgid "Number of Wind Turbines" msgstr "Anzahl Windenergieanlagen" #: digiplan/templates/components/panel_1_today.html:77 #: digiplan/templates/components/panel_1_today.html:78 -#: digiplan/templates/components/panel_3_results.html:63 #: digiplan/templates/components/panel_3_results.html:64 msgid "Number of Wind Turbines per km²" msgstr "Anzahl Windenergieanlagen je km²" @@ -1279,6 +1277,24 @@ msgstr "Wärme" msgid "Transportation" msgstr "Verkehr" +#: digiplan/templates/components/panel_3_results.html:59 +msgid "" +"Number of Wind Turbines. The number for your (future) scenario is determined " +"from the installed capacity using a 6.5 MW turbine type." +msgstr "" +"Anzahl Windenergieanlagen. Die Anlagenanzahl in Deinem (Zukunfts-)Szenario " +"wird aus der installierten Gesamtleistung berechnet, unter Verwendung einer " +"Standardanlage mit einer Nennleistung von 6.5 MW." + +#: digiplan/templates/components/panel_3_results.html:63 +msgid "" +"Number of Wind Turbines per km². The number for your (future) scenario is " +"determined from the installed capacity using a 6.5 MW turbine type." +msgstr "" +"Anzahl Windenergieanlagen pro km². Die Anlagenanzahl in Deinem " +"(Zukunfts-)Szenario wird aus der installierten Gesamtleistung berechnet, " +"unter Verwendung einer Standardanlage mit einer Nennleistung von 6.5 MW." + #: digiplan/templates/components/panel_3_results.html:86 msgid "Inhabitants" msgstr "" From 8ffda2337af79d3b753ce81a3869cd34cc710cbc Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:16:07 +0200 Subject: [PATCH 08/73] Add unreleased section to changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 002d9c48..c7050f65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project tries to adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] +### Added + + +### Changed + + +### Fixed + + ## [0.6.0] - 2023-09-01 ### Added - electricity autarky chart From 8f06a7d70ec05fbffecd5fea2715c5a6cc5ff357 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:17:32 +0200 Subject: [PATCH 09/73] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7050f65..0f30c6ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project tries to adhere to [Semantic Versioning](https://semver.org/spe ### Fixed - +- various fixes in charts, texts and units ## [0.6.0] - 2023-09-01 ### Added From 7654f61891492062f051fb777ce6dfd3efaca1b4 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:40:31 +0200 Subject: [PATCH 10/73] Remove EN locale --- config/settings/base.py | 5 +- locale/en/LC_MESSAGES/django.po | 1041 ------------------------------- 2 files changed, 1 insertion(+), 1045 deletions(-) delete mode 100644 locale/en/LC_MESSAGES/django.po diff --git a/config/settings/base.py b/config/settings/base.py index 81277adb..18035bd0 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -32,10 +32,7 @@ # In Windows, this must be set to your system time zone. TIME_ZONE = "UTC" # https://docs.djangoproject.com/en/dev/ref/settings/#languages -LANGUAGES = ( - ("en", _("English")), - ("de", _("German")), -) +LANGUAGES = (("de", _("German")),) # https://docs.djangoproject.com/en/dev/ref/settings/#language-code # 'de' is the standard language LANGUAGE_CODE = "de" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po deleted file mode 100644 index fc0b670b..00000000 --- a/locale/en/LC_MESSAGES/django.po +++ /dev/null @@ -1,1041 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: config/settings/base.py:357 -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-28 10:48+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: config/settings/base.py:36 -msgid "English" -msgstr "" - -#: config/settings/base.py:37 -msgid "German" -msgstr "" - -#: config/settings/base.py:352 -msgid "Einwohner_innenzahl" -msgstr "" - -#: config/settings/base.py:352 -msgid "EW" -msgstr "" - -#: config/settings/base.py:356 -msgid "Einwohner_innenzahl pro km²" -msgstr "" - -#: config/settings/base.py:359 digiplan/map/popups.py:486 -#: digiplan/map/popups.py:498 -#: digiplan/templates/components/panel_1_today.html:45 -msgid "Beschäftigte" -msgstr "" - -#: config/settings/base.py:360 digiplan/map/popups.py:508 -#: digiplan/map/popups.py:520 -#: digiplan/templates/components/panel_1_today.html:46 -msgid "Betriebe" -msgstr "" - -#: config/settings/base.py:361 config/settings/base.py:362 -msgid "Installierte Leistung" -msgstr "" - -#: config/settings/base.py:361 config/settings/base.py:362 -#: config/settings/base.py:367 config/settings/base.py:373 -#: digiplan/map/charts.py:386 digiplan/map/charts.py:409 -msgid "MW" -msgstr "" - -#: config/settings/base.py:366 config/settings/base.py:372 -msgid "Installierte Leistung pro qm" -msgstr "" - -#: config/settings/base.py:375 config/settings/base.py:376 -msgid "Anzahl Windturbinen" -msgstr "" - -#: config/settings/base.py:380 config/settings/base.py:386 -msgid "Anzahl Windturbinen pro km²" -msgstr "" - -#: config/settings/base.py:392 config/settings/base.py:398 -msgid "Energie Erneuerbare" -msgstr "" - -#: config/settings/base.py:393 config/settings/base.py:399 -#: config/settings/base.py:435 config/settings/base.py:441 -#: config/settings/base.py:459 config/settings/base.py:465 -#: digiplan/map/charts.py:427 digiplan/map/charts.py:610 -#: digiplan/map/charts.py:629 digiplan/map/charts.py:701 -#: digiplan/map/charts.py:720 digiplan/map/popups.py:317 -#: digiplan/map/popups.py:334 digiplan/map/popups.py:394 -#: digiplan/map/popups.py:675 digiplan/map/popups.py:738 -#: digiplan/map/popups.py:761 -msgid "GWh" -msgstr "" - -#: config/settings/base.py:404 -msgid "Anteil Erneuerbare Energien am Strombedarf" -msgstr "" - -#: config/settings/base.py:410 config/settings/base.py:416 -msgid "Gewonnene Energie aus EE je EW" -msgstr "" - -#: config/settings/base.py:411 config/settings/base.py:417 -#: config/settings/base.py:423 config/settings/base.py:429 -#: config/settings/base.py:489 digiplan/map/charts.py:446 -#: digiplan/map/charts.py:486 digiplan/map/charts.py:508 -#: digiplan/map/charts.py:810 digiplan/map/popups.py:375 -#: digiplan/map/popups.py:420 digiplan/map/popups.py:439 -#: digiplan/map/popups.py:850 -msgid "MWh" -msgstr "" - -#: config/settings/base.py:422 config/settings/base.py:428 -msgid "Gewonnene Energie aus EE je km²" -msgstr "" - -#: config/settings/base.py:434 config/settings/base.py:440 -#: digiplan/map/popups.py:643 digiplan/map/popups.py:651 -#: digiplan/map/popups.py:660 digiplan/map/popups.py:674 -msgid "Strombedarf" -msgstr "" - -#: config/settings/base.py:446 config/settings/base.py:452 -msgid "Strombedarf pro EinwohnerIn" -msgstr "" - -#: config/settings/base.py:447 config/settings/base.py:453 -#: config/settings/base.py:471 config/settings/base.py:477 -#: digiplan/map/charts.py:652 digiplan/map/charts.py:683 -#: digiplan/map/charts.py:743 digiplan/map/charts.py:774 -#: digiplan/map/popups.py:693 digiplan/map/popups.py:720 -#: digiplan/map/popups.py:779 digiplan/map/popups.py:806 -msgid "kWh" -msgstr "" - -#: config/settings/base.py:458 config/settings/base.py:464 -#: digiplan/map/popups.py:729 digiplan/map/popups.py:737 -#: digiplan/map/popups.py:746 digiplan/map/popups.py:760 -msgid "Wärmebedarf" -msgstr "" - -#: config/settings/base.py:470 config/settings/base.py:476 -msgid "Wärmebedarf pro EinwohnerIn" -msgstr "" - -#: config/settings/base.py:482 digiplan/map/popups.py:815 -#: digiplan/map/popups.py:827 -#: digiplan/templates/components/panel_1_today.html:98 -msgid "Anzahl Batteriespeicher" -msgstr "" - -#: config/settings/base.py:488 digiplan/map/popups.py:837 -#: digiplan/map/popups.py:849 -#: digiplan/templates/components/panel_1_today.html:99 -msgid "Kapazität Batteriespeicher" -msgstr "" - -#: digiplan/map/calculations.py:218 digiplan/map/calculations.py:282 -#: digiplan/map/config.py:184 -msgid "Electricity Household Demand" -msgstr "" - -#: digiplan/map/calculations.py:219 digiplan/map/calculations.py:283 -#: digiplan/map/config.py:185 -msgid "Electricity CTS Demand" -msgstr "" - -#: digiplan/map/calculations.py:220 digiplan/map/calculations.py:284 -#: digiplan/map/config.py:186 -msgid "Electricity Industry Demand" -msgstr "" - -#: digiplan/map/charts.py:296 digiplan/map/popups.py:478 -msgid "EW/km²" -msgstr "" - -#: digiplan/map/charts.py:464 digiplan/map/popups.py:358 -msgid "%" -msgstr "" - -#: digiplan/map/charts.py:792 -msgid "Anzahl" -msgstr "" - -#: digiplan/map/config.py:174 digiplan/map/map_config.py:33 -#: digiplan/map/models.py:304 digiplan/map/models.py:305 -msgid "Ground-mounted PV" -msgstr "" - -#: digiplan/map/config.py:175 digiplan/map/map_config.py:27 -#: digiplan/map/models.py:248 -msgid "Roof-mounted PV" -msgstr "" - -#: digiplan/map/config.py:176 digiplan/map/map_config.py:20 -#: digiplan/map/models.py:178 -msgid "Wind turbine" -msgstr "" - -#: digiplan/map/config.py:177 digiplan/map/map_config.py:34 -#: digiplan/map/models.py:342 digiplan/map/models.py:343 -msgid "Hydro" -msgstr "" - -#: digiplan/map/config.py:178 digiplan/map/map_config.py:35 -#: digiplan/map/models.py:388 digiplan/map/models.py:389 -msgid "Biomass" -msgstr "" - -#: digiplan/map/config.py:183 -msgid "BEV" -msgstr "" - -#: digiplan/map/config.py:187 -msgid "Electricity Household Heat Demand" -msgstr "" - -#: digiplan/map/config.py:188 -msgid "Electricity CTS Heat Demand" -msgstr "" - -#: digiplan/map/config.py:189 -msgid "Electricity Industry Heat Demand" -msgstr "" - -#: digiplan/map/config.py:191 -msgid "CTS Heat Demand" -msgstr "" - -#: digiplan/map/config.py:192 -msgid "Household Heat Demand" -msgstr "" - -#: digiplan/map/config.py:193 -msgid "Industry Heat Demand" -msgstr "" - -#: digiplan/map/map_config.py:18 -msgid "Renewables" -msgstr "" - -#: digiplan/map/map_config.py:21 digiplan/map/map_config.py:35 -#: digiplan/map/map_config.py:38 digiplan/map/map_config.py:43 -#: digiplan/map/map_config.py:44 -msgid "Wind turbine layer" -msgstr "" - -#: digiplan/map/map_config.py:28 -msgid "PV roof layer" -msgstr "" - -#: digiplan/map/map_config.py:33 digiplan/map/map_config.py:34 -msgid "Hydro layer" -msgstr "" - -#: digiplan/map/map_config.py:37 digiplan/map/models.py:436 -#: digiplan/map/models.py:437 -msgid "Combustion" -msgstr "" - -#: digiplan/map/map_config.py:43 digiplan/map/models.py:476 -#: digiplan/map/models.py:477 -msgid "GSGK" -msgstr "" - -#: digiplan/map/map_config.py:44 digiplan/map/models.py:504 -#: digiplan/templates/forms/panel_heat.html:46 -msgid "Storage" -msgstr "" - -#: digiplan/map/map_config.py:46 -msgid "Settlements Infrastructure" -msgstr "" - -#: digiplan/map/map_config.py:47 -msgid "Settlement 0m" -msgstr "" - -#: digiplan/map/map_config.py:47 digiplan/map/map_config.py:48 -#: digiplan/map/map_config.py:49 digiplan/map/map_config.py:50 -#: digiplan/map/map_config.py:51 digiplan/map/map_config.py:52 -#: digiplan/map/map_config.py:54 digiplan/map/map_config.py:55 -msgid "Aviation layer" -msgstr "" - -#: digiplan/map/map_config.py:48 -msgid "Industry" -msgstr "" - -#: digiplan/map/map_config.py:49 -msgid "Road Railway 500m" -msgstr "" - -#: digiplan/map/map_config.py:50 -msgid "Road" -msgstr "" - -#: digiplan/map/map_config.py:51 -msgid "Railway" -msgstr "" - -#: digiplan/map/map_config.py:52 -msgid "Aviation" -msgstr "" - -#: digiplan/map/map_config.py:53 -msgid "Air Traffic" -msgstr "" - -#: digiplan/map/map_config.py:53 -msgid "Air traffic layer" -msgstr "" - -#: digiplan/map/map_config.py:54 -msgid "Military" -msgstr "" - -#: digiplan/map/map_config.py:55 -msgid "Grid" -msgstr "" - -#: digiplan/map/map_config.py:57 -msgid "Nature Landscape" -msgstr "" - -#: digiplan/map/map_config.py:58 -msgid "Nature Conservation Area" -msgstr "" - -#: digiplan/map/map_config.py:58 digiplan/map/map_config.py:59 -#: digiplan/map/map_config.py:60 digiplan/map/map_config.py:62 -#: digiplan/map/map_config.py:63 digiplan/map/map_config.py:66 -#: digiplan/map/map_config.py:69 digiplan/map/map_config.py:70 -#: digiplan/map/map_config.py:71 digiplan/map/map_config.py:72 -msgid "layer info" -msgstr "" - -#: digiplan/map/map_config.py:59 -msgid "Fauna Flora Habitat" -msgstr "" - -#: digiplan/map/map_config.py:60 -msgid "Special Protection Area" -msgstr "" - -#: digiplan/map/map_config.py:61 -msgid "Biosphere Reserve" -msgstr "" - -#: digiplan/map/map_config.py:61 -msgid "Biosphere Reserve layer" -msgstr "" - -#: digiplan/map/map_config.py:62 -msgid "Landscape Protection Area" -msgstr "" - -#: digiplan/map/map_config.py:63 -msgid "Forest" -msgstr "" - -#: digiplan/map/map_config.py:65 -msgid "Drinking Water Protection Area" -msgstr "" - -#: digiplan/map/map_config.py:69 -msgid "Water" -msgstr "" - -#: digiplan/map/map_config.py:70 -msgid "Floodplain" -msgstr "" - -#: digiplan/map/map_config.py:71 -msgid "Soil Quality High" -msgstr "" - -#: digiplan/map/map_config.py:72 -msgid "Soil Quality Low" -msgstr "" - -#: digiplan/map/models.py:20 -msgid "Country" -msgstr "" - -#: digiplan/map/models.py:21 -msgid "State" -msgstr "" - -#: digiplan/map/models.py:22 -msgid "District" -msgstr "" - -#: digiplan/map/models.py:23 digiplan/map/models.py:50 -msgid "Municipality" -msgstr "" - -#: digiplan/map/models.py:28 -msgid "Region" -msgstr "" - -#: digiplan/map/models.py:29 -msgid "Regions" -msgstr "" - -#: digiplan/map/models.py:51 -msgid "Municipalities" -msgstr "" - -#: digiplan/map/models.py:79 digiplan/map/models.py:80 -#: digiplan/templates/components/panel_1_today.html:40 -msgid "Population" -msgstr "" - -#: digiplan/map/models.py:179 -msgid "Wind turbines" -msgstr "" - -#: digiplan/map/models.py:249 -msgid "Roof-mounted PVs" -msgstr "" - -#: digiplan/map/models.py:505 -msgid "Storages" -msgstr "" - -#: digiplan/map/popups.py:271 digiplan/map/popups.py:290 -msgid "installierte Leistung nach Typ" -msgstr "" - -#: digiplan/map/popups.py:272 digiplan/map/popups.py:291 -msgid "MW/km²" -msgstr "" - -#: digiplan/map/popups.py:308 digiplan/map/popups.py:325 -msgid "Gewonnene Energie aus EE" -msgstr "" - -#: digiplan/map/popups.py:316 digiplan/map/popups.py:333 -#: digiplan/map/popups.py:357 digiplan/map/popups.py:374 -#: digiplan/map/popups.py:393 -msgid "Energieanteile pro Technologie" -msgstr "" - -#: digiplan/map/popups.py:349 -msgid "Anteil Energie aus EE" -msgstr "" - -#: digiplan/map/popups.py:366 digiplan/map/popups.py:383 -msgid "Gewonnene Energie pro EW" -msgstr "" - -#: digiplan/map/popups.py:411 digiplan/map/popups.py:428 -msgid "Gewonnene Energie pro km²" -msgstr "" - -#: digiplan/map/popups.py:419 digiplan/map/popups.py:438 -msgid "Energieanteile pro km²" -msgstr "" - -#: digiplan/map/popups.py:477 -msgid "Population density per year" -msgstr "" - -#: digiplan/map/popups.py:530 digiplan/map/popups.py:547 -msgid "Number of wind turbines" -msgstr "" - -#: digiplan/map/popups.py:531 digiplan/map/popups.py:548 -msgid "Description for number of wind turbines" -msgstr "" - -#: digiplan/map/popups.py:592 digiplan/map/popups.py:625 -msgid "Windturbinen pro km²" -msgstr "" - -#: digiplan/map/popups.py:593 digiplan/map/popups.py:626 -msgid "WT/km²" -msgstr "" - -#: digiplan/map/popups.py:652 -msgid "ǴWh" -msgstr "" - -#: digiplan/map/popups.py:684 digiplan/map/popups.py:692 -#: digiplan/map/popups.py:701 digiplan/map/popups.py:719 -msgid "Strombedarf je EinwohnerIn" -msgstr "" - -#: digiplan/map/popups.py:770 digiplan/map/popups.py:778 -#: digiplan/map/popups.py:787 digiplan/map/popups.py:805 -msgid "Wärmebedarf je EinwohnerIn" -msgstr "" - -#: digiplan/templates/components/map.html:14 -msgid "Region as of today" -msgstr "" - -#: digiplan/templates/components/map.html:19 -#: digiplan/templates/components/panel_2_settings.html:9 -msgid "Settings" -msgstr "" - -#: digiplan/templates/components/map.html:24 -#: digiplan/templates/components/panel_3_results.html:29 -msgid "Results" -msgstr "" - -#: digiplan/templates/components/map.html:41 digiplan/templates/map.html:50 -msgid "Map" -msgstr "" - -#: digiplan/templates/components/map.html:51 -msgid "Charts" -msgstr "" - -#: digiplan/templates/components/panel.html:23 -msgid "Imprint" -msgstr "" - -#: digiplan/templates/components/panel.html:28 -msgid "Data privacy" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:5 -msgid "Goals 2045" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:10 -#: digiplan/templates/components/panel_3_results.html:7 -msgid "Share of renewable energies" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:18 -#: digiplan/templates/components/panel_3_results.html:15 -#, python-format -msgid "CO2-Reduktion ggü. 2019 (%%)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:34 -msgid "Situation today" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:38 -#: digiplan/templates/components/panel_3_results.html:33 -msgid "Keine Auswahl" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:39 -msgid "Planning Region" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:40 -#: digiplan/templates/components/panel_1_today.html:102 -msgid "Inhabitants 2021" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:42 -msgid "" -"In 2021 the population density in Germany was 238 per km² and 106 per km² in " -"Saxony-Anhalt." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:43 -msgid "Population Density" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:48 -#: digiplan/templates/components/panel_3_results.html:34 -msgid "Renewable Energies (RE)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:50 -#: digiplan/templates/components/panel_3_results.html:36 -#, python-format -msgid "" -"Annual balance sheet share of renewable energy (wind energy, photovoltaic, " -"hydroelectric power) in the electricity demand of the sectors agriculture, " -"GHG (trade, commerce, services), households and industry in percent. The " -"demand is the net electricity consumption, i.e. transmission losses and " -"power plant consumption are not taken into account. 49.7%% of the " -"electricity demand in Germany was covered by renewable energies in 2022." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:51 -#: digiplan/templates/components/panel_3_results.html:37 -msgid "Renewable Energy Share of Demand" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:54 -#: digiplan/templates/components/panel_3_results.html:40 -msgid "" -"Annual amount of energy fed into the grid from renewable plants in gigawatt " -"hours (wind energy, photovoltaic, hydro power)." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:55 -#: digiplan/templates/components/panel_3_results.html:41 -msgid "Renewable Electricity Production (GWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:57 -#: digiplan/templates/components/panel_3_results.html:43 -msgid "" -"Annual amount of energy fed in from renewable plants (wind energy, " -"photovoltaic, hydro power) in relation to the number of inhabitants in " -"megawatt hours per inhabitant." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:58 -#: digiplan/templates/components/panel_3_results.html:44 -msgid "Renewable Electricity Production per Capita (MWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:61 -#: digiplan/templates/components/panel_3_results.html:47 -msgid "" -"Annual amount of energy fed in from renewable plants (wind energy, " -"photovoltaic, hydro power) related to the area in megawatt hours per km²." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:62 -#: digiplan/templates/components/panel_3_results.html:48 -msgid "Renewable Electricity Production per km² (MWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:65 -#: digiplan/templates/components/panel_3_results.html:51 -msgid "" -"Installed capacity from renewable energy plants (wind energy, photovoltaic, " -"hydro power, biomass and biogas) in megawatts." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:66 -#: digiplan/templates/components/panel_3_results.html:52 -msgid "Installed Renewable Capacity (MW)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:69 -#: digiplan/templates/components/panel_3_results.html:55 -msgid "" -"Installed capacity from renewable energy plants (wind energy, photovoltaic, " -"hydro power, biomass and biogas) in megawatts per km²." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:70 -#: digiplan/templates/components/panel_3_results.html:56 -msgid "Installed Renewable Capacity per km² (MW)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:73 -#: digiplan/templates/components/panel_1_today.html:74 -#: digiplan/templates/components/panel_3_results.html:59 -#: digiplan/templates/components/panel_3_results.html:60 -msgid "Number of Wind Turbines" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:77 -#: digiplan/templates/components/panel_1_today.html:78 -#: digiplan/templates/components/panel_3_results.html:63 -#: digiplan/templates/components/panel_3_results.html:64 -msgid "Number of Wind Turbines per km²" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:81 -#: digiplan/templates/components/panel_3_results.html:67 -msgid "Energy Demand" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:83 -#: digiplan/templates/components/panel_3_results.html:69 -msgid "" -"Annual electricity demand in gigawatt hours of the sectors, households, " -"tertiary sector (trade, commerce, services), agriculture and industry. This " -"is the net electricity consumption." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:84 -#: digiplan/templates/components/panel_3_results.html:70 -msgid "Electricity Demand (GWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:87 -#: digiplan/templates/components/panel_3_results.html:73 -msgid "" -"Annual electricity demand in gigawatt hours of the sectors, households, " -"tertiary sector (trade, commerce, services), agriculture and industry per " -"inhabitant This is the net electricity consumption." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:88 -#: digiplan/templates/components/panel_3_results.html:74 -msgid "Electricity Demand per Capita (kWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:91 -#: digiplan/templates/components/panel_3_results.html:77 -msgid "" -"Annual heat consumption for space heating and domestic hot water in gigawatt " -"hours in the household, commercial, trade and services, and agriculture " -"(excluding industry) sectors." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:92 -#: digiplan/templates/components/panel_3_results.html:78 -msgid "Heat Demand (GWh)" -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:95 -#: digiplan/templates/components/panel_3_results.html:81 -msgid "" -"Annual heat consumption per inhabitant for space heating and domestic hot " -"water in gigawatt hours in the household, commercial, trade and services, " -"and agriculture (excluding industry) sectors." -msgstr "" - -#: digiplan/templates/components/panel_1_today.html:96 -#: digiplan/templates/components/panel_3_results.html:82 -msgid "Heat Demand per Capita (kWh)" -msgstr "" - -#: digiplan/templates/components/panel_2_settings.html:18 -#: digiplan/templates/components/panel_3_results.html:110 -#: digiplan/templates/components/results_view.html:35 -msgid "Electricity" -msgstr "" - -#: digiplan/templates/components/panel_2_settings.html:26 -#: digiplan/templates/components/panel_3_results.html:118 -#: digiplan/templates/components/results_view.html:56 -msgid "Heat" -msgstr "" - -#: digiplan/templates/components/panel_2_settings.html:34 -#: digiplan/templates/components/panel_3_results.html:126 -msgid "Transportation" -msgstr "" - -#: digiplan/templates/components/panel_3_results.html:86 -msgid "Inhabitants" -msgstr "" - -#: digiplan/templates/components/panel_3_results.html:94 -msgid "View" -msgstr "" - -#: digiplan/templates/components/panel_3_results.html:102 -#: digiplan/templates/components/results_view.html:9 -#: digiplan/templates/components/results_view.html:39 -msgid "Overview" -msgstr "" - -#: digiplan/templates/components/panel_3_results.html:140 -msgid "CO2-Emissionen" -msgstr "" - -#: digiplan/templates/components/results_view.html:5 -msgid "General" -msgstr "" - -#: digiplan/templates/components/results_view.html:12 -msgid "" -"In dieser Darstellung sind die Ergebnisse der beiden Szenarien für die " -"Stromerzeugung gegeneinander aufgetragen. Auf der linken Seite findet sich " -"die Zusammensetzung des von Ihnen erstellten Szenarios, auf der rechten die " -"des Referenzszenarios. Auf diese Art lässt sich sowohl die Gesamterzeugung " -"als auch die Erzeugung der unterschiedlichen Technologien vergleichen." -msgstr "" - -#: digiplan/templates/components/results_view.html:16 -msgid "Greenhouse gas" -msgstr "" - -#: digiplan/templates/components/results_view.html:22 -msgid "Car trip" -msgstr "" - -#: digiplan/templates/components/results_view.html:42 -#: digiplan/templates/components/results_view.html:49 -#: digiplan/templates/components/results_view.html:63 -#: digiplan/templates/components/results_view.html:70 -#: digiplan/templates/components/results_view.html:121 -msgid "Hier folgt ein Beschreibungstext..." -msgstr "" - -#: digiplan/templates/components/results_view.html:46 -#: digiplan/templates/components/results_view.html:88 -msgid "CO2 Emissions" -msgstr "" - -#: digiplan/templates/components/results_view.html:60 -msgid "Endenergiebedarf" -msgstr "" - -#: digiplan/templates/components/results_view.html:67 -msgid "Beheizungsstruktur" -msgstr "" - -#: digiplan/templates/components/results_view.html:77 -msgid "Motorized individual traffic" -msgstr "" - -#: digiplan/templates/components/results_view.html:81 -msgid "Vehicles" -msgstr "" - -#: digiplan/templates/components/results_view.html:84 -msgid "Zugelassene Fahrzeuge nach Antriebsart." -msgstr "" - -#: digiplan/templates/components/results_view.html:94 -msgid "Distance" -msgstr "" - -#: digiplan/templates/components/results_view.html:107 -msgid "Abschätzung CO2-Emissionen" -msgstr "" - -#: digiplan/templates/components/results_view.html:111 -msgid "Sachsen-Anhalt und Abschätzung Region ABW" -msgstr "" - -#: digiplan/templates/components/results_view.html:114 -msgid "" -"Die THG-Emissionen für die Region ABW werden näherungsweise anhand " -"unterschiedlicher Kriterien und Datenquellen aus den Gesamtemissionen für " -"Sachsen-Anhalt (The goals for Saxony-Anhalt from the Wind Energy Area " -"Requirement Act are:
- for 2027 (1.4%%) achieved.
- for 2032 (2.2%%) " -"achieved.

Tip: In the menu on the right you can display the systems " -"that exist today." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:54 -msgid "Set the use of potential areas for ground-mounted PV." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:67 -msgid "" -"With your settings, a maximum total output of 18 MW and a yield of 3 GWh can " -"be realized.

Tip: In the right-hand menu, you can display the systems " -"that currently exist." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:79 -msgid "Set how much roof area should be used for photovoltaics." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:92 -#, python-format -msgid "" -"Mit Ihren Einstellungen kann eine maximale Gesamtleistung von 4 MW und ein " -"Ertrag von 2 GWh realisiert werden. Die Verteilung der Ausrichtung ist wie " -"folgt:
- Süddächer: 3%%
- Westdächer: 3%%
- Norddächer: 3%%
- " -"Ostdächer: 8%%
Gebäude, die unter Denkmalschutz stehen, werden nicht " -"berücksichtigt.

Tipp: Im rechten Menü können Sie die heute " -"bestehenden Anlagen einblenden." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:100 -#: digiplan/templates/forms/panel_heat.html:29 -msgid "Consumption" -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:106 -msgid "Set the future power consumption per sector." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:110 -#, python-format -msgid "" -"With your settings, the power consumption is 42%% of today's power " -"consumption." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:116 -msgid "Batteries" -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:122 -msgid "" -"Set how much of the daily (on average) fed-in energy from wind energy and " -"free-field PV should be able to be temporarily stored using large batteries." -msgstr "" - -#: digiplan/templates/forms/panel_energy.html:124 -#, python-format -msgid "" -"With your settings, 73%% can be cached. That corresponds to a storage " -"capacity of 17 GWh." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:8 -msgid "" -"Set the share of heat pumps for consumers with their own heat generation per " -"sector." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:12 -#, python-format -msgid "" -"With your settings, the proportion of energy provided by heat pumps is 87%%. " -"The remaining energy is provided by:
- Direct electric heating: 10%%
- " -"Bioenergy: 5%%
- Solar thermal: 20%%

Note: District heating " -"systems are configured separately in the menu on the left." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:21 -msgid "" -"Set the share of heat pumps for all consumers with district heating " -"connection. This includes households, tertiary and industrial customers in " -"the Dessau-Roßlau, Bitterfeld-Wolfen, Köthen and Wittenberg district heating " -"networks." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:23 -#, python-format -msgid "" -"With your settings, the proportion of energy provided by heat pumps is 54%%. " -"The remaining energy is provided by:
- Direct electric heating: 12%%
- " -"Bioenergy: 6%%
- Solar thermal: 52%%

Note: Decentralized " -"consumers are configured separately in the menu on the left." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:36 -msgid "Set the future heat consumption per sector." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:40 -#, python-format -msgid "" -"With your settings, the heat consumption is 27%% of today's heat consumption." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:53 -#: digiplan/templates/forms/panel_heat.html:64 -msgid "" -"Set how much of the daily heat requirement should be able to be temporarily " -"stored in hot water tanks." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:55 -#, python-format -msgid "" -"Mit Ihren Einstellungen können 32%% des täglichen Wärmeverbrauchs " -"zwischengespeichert werden. Das entspricht einer Speicherkapazität von 3 GWh." -msgstr "" - -#: digiplan/templates/forms/panel_heat.html:66 -#, python-format -msgid "" -"With your settings, 57%% of the daily heat consumption can be temporarily " -"stored. That corresponds to a storage capacity of 5 GWh" -msgstr "" - -#: digiplan/templates/forms/panel_traffic.html:6 -msgid "Detail-Einstellungen" -msgstr "" - -#: digiplan/templates/forms/panel_traffic.html:8 -msgid "" -"Stellen Sie den Anteil der elektrischen Fahrzeuge am motorisierten " -"Individualverkehr ein." -msgstr "" - -#: digiplan/templates/forms/panel_traffic.html:10 -#, python-format -msgid "" -"With your settings, 22%% of private vehicles (compact, mid-size, full-size) " -"are electric. Of these,
- 50%% are battery electric (BEV) and
- 50%% " -"are plug-in hybrid vehicles." -msgstr "" - -#: digiplan/templates/map.html:55 -msgid "Documentation" -msgstr "" - -#: digiplan/templates/map.html:59 -msgid "Sources" -msgstr "" - -#: digiplan/templates/map.html:63 digiplan/templates/offcanvas/contact.html:4 -msgid "Contact" -msgstr "" - -#: digiplan/templates/offcanvas/contact.html:7 -msgid "Project Lead" -msgstr "" - -#: digiplan/templates/offcanvas/contact.html:12 -msgid "Research Associate" -msgstr "" - -#: digiplan/templates/offcanvas/contact.html:24 -msgid "Phone" -msgstr "" - -#: digiplan/templates/offcanvas/contact.html:25 -msgid "Telefax" -msgstr "" - -#: digiplan/templates/popups/cluster.html:10 -msgid "Parameter" -msgstr "" - -#: digiplan/templates/popups/cluster.html:11 -msgid "Wert" -msgstr "" - -#: digiplan/templates/widgets/slider.html:18 -msgid "more" -msgstr "" From ccdd62e67608db8bc8609c94a6a8d9de253459b2 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Tue, 5 Sep 2023 10:40:54 +0200 Subject: [PATCH 11/73] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f30c6ce..a2c57702 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project tries to adhere to [Semantic Versioning](https://semver.org/spe ### Changed - +- Remove locale EN ### Fixed - various fixes in charts, texts and units From 101599a33be63bb5e70a155b872af2fde1c62e58 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 6 Sep 2023 15:47:35 +0200 Subject: [PATCH 12/73] Fix RES share calculation for SQ --- digiplan/map/calculations.py | 23 +++++++++++++++++++++-- digiplan/map/charts.py | 4 ++-- digiplan/map/popups.py | 2 +- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/digiplan/map/calculations.py b/digiplan/map/calculations.py index 207693e0..a1733522 100644 --- a/digiplan/map/calculations.py +++ b/digiplan/map/calculations.py @@ -202,6 +202,25 @@ def energy_shares_per_municipality() -> pd.DataFrame: """ Calculate energy shares of renewables from electric demand per municipality. + Returns + ------- + pd.DataFrame + Energy share per municipality (index) and technology (column) + """ + energies = energies_per_municipality() + demands = datapackage.get_power_demand() + total_demand = pd.concat([d["2022"] for d in demands.values()], axis=1).sum(axis=1) + energy_shares = energies.mul(1e3).div(total_demand, axis=0) + return energy_shares.mul(1e2) + + +def energy_shares_region() -> pd.DataFrame: + """ + Calculate energy shares of renewables from electric demand for region. + + Like energy_shares_per_municipality() but with weighted demand for correct + totals. + Returns ------- pd.DataFrame @@ -211,8 +230,8 @@ def energy_shares_per_municipality() -> pd.DataFrame: demands = datapackage.get_power_demand() total_demand = pd.concat([d["2022"] for d in demands.values()], axis=1).sum(axis=1) total_demand_share = total_demand / total_demand.sum() - energies = energies.reindex(range(20)) - return energies.mul(total_demand_share, axis=0) + energy_shares = energies.mul(1e3).div(total_demand, axis=0).mul(total_demand_share, axis=0).sum(axis=0) + return energy_shares.mul(1e2) def electricity_demand_per_municipality(year: int = 2022) -> pd.DataFrame: diff --git a/digiplan/map/charts.py b/digiplan/map/charts.py index 592bbef9..adf082dc 100644 --- a/digiplan/map/charts.py +++ b/digiplan/map/charts.py @@ -487,13 +487,13 @@ def get_chart_options(self) -> dict: class EnergyShareRegionChart(Chart): - """Chart for regional energy shares.""" + """Calculate RES energy shares for whole region.""" lookup = "capacity" def get_chart_data(self) -> None: """Calculate capacities for whole region.""" - return calculations.energy_shares_per_municipality().sum().round(1) + return calculations.energy_shares_region().round(1) def get_chart_options(self) -> dict: """Overwrite title and unit.""" diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index 80f71c29..3cceadc2 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -336,7 +336,7 @@ class EnergySharePopup(RegionPopup): title = _("Anteil Energie aus EE") def get_detailed_data(self) -> pd.DataFrame: # noqa: D102 - return calculations.energy_shares_per_municipality() + return calculations.energy_shares_per_municipality().round(1) def get_chart_options(self) -> dict: """Overwrite title and unit.""" From 51150b0e43c5b603ba29a78ff753c5cf7203a63b Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 6 Sep 2023 15:49:09 +0200 Subject: [PATCH 13/73] Add RES share for user scenario: calculation, charts, popup, choropleth --- config/settings/base.py | 7 ++++ digiplan/map/calculations.py | 35 +++++++++++++++++++ digiplan/map/charts.py | 21 +++++++++++ digiplan/map/choropleths.py | 8 ++++- digiplan/map/popups.py | 25 +++++++++++++ .../templates/components/panel_3_results.html | 2 +- 6 files changed, 96 insertions(+), 2 deletions(-) diff --git a/config/settings/base.py b/config/settings/base.py index 81277adb..6e71e874 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -404,6 +404,12 @@ def __getitem__(self, item): # noqa: D105, ANN001, ANN204 title=_("Anteil Erneuerbare Energien am Strombedarf"), unit="%", ), + setup.Choropleth( + "energy_share_2045", + layers=["municipality"], + title=_("Anteil Erneuerbare Energien am Strombedarf"), + unit="%", + ), setup.Choropleth( "energy_capita_statusquo", layers=["municipality"], @@ -510,6 +516,7 @@ def __getitem__(self, item): # noqa: D105, ANN001, ANN204 "energy_statusquo", "energy_2045", "energy_share_statusquo", + "energy_share_2045", "energy_capita_statusquo", "energy_capita_2045", "energy_square_statusquo", diff --git a/digiplan/map/calculations.py b/digiplan/map/calculations.py index a1733522..8afccef9 100644 --- a/digiplan/map/calculations.py +++ b/digiplan/map/calculations.py @@ -253,6 +253,41 @@ def electricity_demand_per_municipality(year: int = 2022) -> pd.DataFrame: return demands_per_sector * 1e-3 +def energy_shares_2045_per_municipality(simulation_id: int) -> pd.DataFrame: + """ + Calculate energy shares of renewables from electric demand per municipality in 2045. + + Returns + ------- + pd.DataFrame + Energy share per municipality (index) and technology (column) + """ + energies = energies_per_municipality_2045(simulation_id).mul(1e-3) + demands = electricity_demand_per_municipality_2045(simulation_id).sum(axis=1) + energy_shares = energies.div(demands, axis=0) + return energy_shares.astype(float).mul(1e2) + + +def energy_shares_2045_region(simulation_id: int) -> pd.DataFrame: + """ + Calculate energy shares of renewables from electric demand for region in 2045. + + Like energy_shares_2045_per_municipality() but with weighted demand for + correct totals. + + Returns + ------- + pd.DataFrame + Energy share per municipality (index) and technology (column) + """ + energies = energies_per_municipality_2045(simulation_id) + demands = electricity_demand_per_municipality_2045(simulation_id).sum(axis=1).mul(1e3) + + demand_share = demands / demands.sum() + energy_shares = energies.div(demands, axis=0).mul(demand_share, axis=0).sum(axis=0) + return energy_shares.astype(float).mul(1e2) + + def electricity_demand_per_municipality_2045(simulation_id: int) -> pd.DataFrame: """ Calculate electricity demand per sector per municipality in GWh in 2045. diff --git a/digiplan/map/charts.py b/digiplan/map/charts.py index adf082dc..1154b61b 100644 --- a/digiplan/map/charts.py +++ b/digiplan/map/charts.py @@ -503,6 +503,26 @@ def get_chart_options(self) -> dict: return chart_options +class EnergyShare2045RegionChart(SimulationChart): + """Chart for regional energy shares.""" + + lookup = "capacity" + + def get_chart_data(self) -> None: + """Calculate RES energy shares for whole region.""" + status_quo_data = calculations.energy_shares_region().round(1) + future_data = calculations.energy_shares_2045_region(self.simulation_id).round(1) + return list(zip(status_quo_data, future_data)) + + def get_chart_options(self) -> dict: + """Overwrite title and unit.""" + chart_options = super().get_chart_options() + del chart_options["title"]["text"] + chart_options["yAxis"]["name"] = _("%") + chart_options["xAxis"]["data"] = ["2022", "Dein\nSzenario"] + return chart_options + + class EnergyCapitaRegionChart(Chart): """Chart for regional energy shares per capita.""" @@ -956,6 +976,7 @@ def get_chart_options(self) -> dict: "energy_statusquo_region": EnergyRegionChart, "energy_2045_region": Energy2045RegionChart, "energy_share_statusquo_region": EnergyShareRegionChart, + "energy_share_2045_region": EnergyShare2045RegionChart, "energy_capita_statusquo_region": EnergyCapitaRegionChart, "energy_capita_2045_region": EnergyCapita2045RegionChart, "energy_square_statusquo_region": EnergySquareRegionChart, diff --git a/digiplan/map/choropleths.py b/digiplan/map/choropleths.py index 9409d07a..3cb6f62e 100644 --- a/digiplan/map/choropleths.py +++ b/digiplan/map/choropleths.py @@ -79,7 +79,12 @@ def render(self) -> JsonResponse: class EnergyShareChoropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 - return calculations.energy_shares_per_municipality().sum(axis=1).to_dict() + return calculations.energy_shares_per_municipality().sum(axis=1).round().to_dict() + + +class EnergyShare2045Choropleth(Choropleth): # noqa: D101 + def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 + return calculations.energy_shares_2045_per_municipality(self.map_state["simulation_id"]).sum(axis=1).to_dict() class EnergyChoropleth(Choropleth): # noqa: D101 @@ -271,6 +276,7 @@ def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 "energy_statusquo": EnergyChoropleth, "energy_2045": Energy2045Choropleth, "energy_share_statusquo": EnergyShareChoropleth, + "energy_share_2045": EnergyShare2045Choropleth, "energy_capita_statusquo": EnergyCapitaChoropleth, "energy_capita_2045": EnergyCapita2045Choropleth, "energy_square_statusquo": EnergySquareChoropleth, diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index 3cceadc2..e4c635e5 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -346,6 +346,30 @@ def get_chart_options(self) -> dict: return chart_options +class EnergyShare2045Popup(RegionPopup): + """Popup to show energy shares.""" + + lookup = "capacity" + title = _("Anteil Energie aus EE") + + def get_detailed_data(self) -> pd.DataFrame: # noqa: D102 + return calculations.energy_shares_2045_per_municipality(self.map_state["simulation_id"]) + + def get_chart_options(self) -> dict: + """Overwrite title and unit.""" + chart_options = super().get_chart_options() + chart_options["title"]["text"] = _("Energieanteile pro Technologie") + chart_options["yAxis"]["name"] = _("%") + chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] + return chart_options + + def get_chart_data(self) -> Iterable: + """Create capacity chart data for SQ and future scenario.""" + status_quo_data = calculations.energy_shares_per_municipality().loc[self.selected_id].round(1) + future_data = super().get_chart_data().round(1) + return list(zip(status_quo_data, future_data)) + + class EnergyCapitaPopup(RegionPopup): """Popup to show energy shares per population.""" @@ -885,6 +909,7 @@ def get_chart_options(self) -> dict: "energy_statusquo": EnergyPopup, "energy_2045": Energy2045Popup, "energy_share_statusquo": EnergySharePopup, + "energy_share_2045": EnergyShare2045Popup, "energy_capita_statusquo": EnergyCapitaPopup, "energy_capita_2045": EnergyCapita2045Popup, "energy_square_statusquo": EnergySquarePopup, diff --git a/digiplan/templates/components/panel_3_results.html b/digiplan/templates/components/panel_3_results.html index 7edbfe2d..9afef3b7 100644 --- a/digiplan/templates/components/panel_3_results.html +++ b/digiplan/templates/components/panel_3_results.html @@ -32,7 +32,7 @@

- Info Icon + Info Icon
diff --git a/digiplan/templates/components/panel_3_results.html b/digiplan/templates/components/panel_3_results.html index 9afef3b7..541ba4d5 100644 --- a/digiplan/templates/components/panel_3_results.html +++ b/digiplan/templates/components/panel_3_results.html @@ -83,7 +83,7 @@

- Info Icon + Info Icon

diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 534df6b7..fb7aab4a 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-04 13:24+0000\n" +"POT-Creation-Date: 2023-10-18 15:39+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1048,7 +1048,9 @@ msgid "Situation today" msgstr "Situation heute" #: digiplan/templates/components/panel_1_today.html:38 +#: digiplan/templates/components/panel_1_today.html:102 #: digiplan/templates/components/panel_3_results.html:33 +#: digiplan/templates/components/panel_3_results.html:86 msgid "Keine Auswahl" msgstr "" @@ -1253,10 +1255,6 @@ msgstr "" msgid "Heat Demand per Capita (kWh)" msgstr "Wärmebedarf je EinwohnerIn (kWh)" -#: digiplan/templates/components/panel_1_today.html:102 -msgid "Inhabitants 2021" -msgstr "Einwohner:innen 2021" - #: digiplan/templates/components/panel_2_settings.html:18 #: digiplan/templates/components/panel_3_results.html:112 #: digiplan/templates/components/results_view.html:37 @@ -1292,10 +1290,6 @@ msgstr "" "(Zukunfts-)Szenario wird aus der installierten Gesamtleistung berechnet, " "unter Verwendung einer Standardanlage mit einer Nennleistung von 6.5 MW." -#: digiplan/templates/components/panel_3_results.html:86 -msgid "Inhabitants" -msgstr "" - #: digiplan/templates/components/panel_3_results.html:94 msgid "View" msgstr "Ansicht" @@ -1515,19 +1509,19 @@ msgid "" "Individualverkehr ein:" msgstr "" -#: digiplan/templates/map.html:50 +#: digiplan/templates/map.html:49 msgid "App" msgstr "App" -#: digiplan/templates/map.html:55 +#: digiplan/templates/map.html:54 msgid "Documentation" msgstr "Dokumentation" -#: digiplan/templates/map.html:59 +#: digiplan/templates/map.html:58 msgid "Sources" msgstr "Quellen" -#: digiplan/templates/map.html:63 digiplan/templates/offcanvas/contact.html:4 +#: digiplan/templates/map.html:62 digiplan/templates/offcanvas/contact.html:4 msgid "Contact" msgstr "Kontakt" @@ -1564,6 +1558,3 @@ msgstr "" #: digiplan/templates/widgets/slider.html:18 msgid "more" msgstr "mehr" - -#~ msgid "English" -#~ msgstr "Englisch" From 175ad5b30a018cb5d490319926025eceb75a0be0 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 18 Oct 2023 22:18:15 +0200 Subject: [PATCH 60/73] Hide resgion result while simulating and clear selection afterwards --- digiplan/static/js/results.js | 54 +++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/digiplan/static/js/results.js b/digiplan/static/js/results.js index 60179950..3a1614b8 100644 --- a/digiplan/static/js/results.js +++ b/digiplan/static/js/results.js @@ -1,4 +1,3 @@ - import {statusquoDropdown, futureDropdown} from "./elements.js"; const imageResults = document.getElementById("info_tooltip_results"); @@ -21,7 +20,7 @@ const resultCharts = { // Disable settings form submit $('#settings').submit(false); -statusquoDropdown.addEventListener("change", function() { +statusquoDropdown.addEventListener("change", function () { if (statusquoDropdown.value === "") { deactivateChoropleth(); PubSub.publish(eventTopics.CHOROPLETH_DEACTIVATED); @@ -30,7 +29,7 @@ statusquoDropdown.addEventListener("change", function() { } imageResults.title = statusquoDropdown.options[statusquoDropdown.selectedIndex].title; }); -futureDropdown.addEventListener("change", function() { +futureDropdown.addEventListener("change", function () { if (futureDropdown.value === "") { deactivateChoropleth(); PubSub.publish(eventTopics.CHOROPLETH_DEACTIVATED); @@ -46,6 +45,8 @@ PubSub.subscribe(eventTopics.MENU_RESULTS_SELECTED, simulate); PubSub.subscribe(eventTopics.MENU_RESULTS_SELECTED, showSimulationSpinner); PubSub.subscribe(eventTopics.SIMULATION_STARTED, checkResultsPeriodically); PubSub.subscribe(eventTopics.SIMULATION_STARTED, hideResultButtons); +PubSub.subscribe(eventTopics.SIMULATION_STARTED, hideRegionChart); +PubSub.subscribe(eventTopics.SIMULATION_STARTED, resetResultDropdown); PubSub.subscribe(eventTopics.SIMULATION_FINISHED, showResultButtons); PubSub.subscribe(eventTopics.SIMULATION_FINISHED, showResults); PubSub.subscribe(eventTopics.SIMULATION_FINISHED, hideSimulationSpinner); @@ -61,21 +62,21 @@ function simulate(msg) { const formData = new FormData(settings); // jshint ignore:line if (store.cold.task_id != null) { $.ajax({ - url : "/oemof/terminate", - type : "POST", - data : {task_id: store.cold.task_id}, - success: function() { + url: "/oemof/terminate", + type: "POST", + data: {task_id: store.cold.task_id}, + success: function () { store.cold.task_id = null; } }); } $.ajax({ - url : "/oemof/simulate", - type : "POST", + url: "/oemof/simulate", + type: "POST", processData: false, contentType: false, - data : formData, - success : function(json) { + data: formData, + success: function (json) { store.cold.task_id = json.task_id; PubSub.publish(eventTopics.SIMULATION_STARTED); }, @@ -91,9 +92,9 @@ function checkResultsPeriodically(msg) { function checkResults() { $.ajax({ url: "/oemof/simulate", - type : "GET", - data : {task_id: store.cold.task_id}, - success: function(json) { + type: "GET", + data: {task_id: store.cold.task_id}, + success: function (json) { if (json.simulation_id == null) { setTimeout(checkResults, SIMULATION_CHECK_TIME); } else { @@ -102,7 +103,7 @@ function checkResults() { PubSub.publish(eventTopics.SIMULATION_FINISHED); } }, - error: function(json) { + error: function (json) { store.cold.task_id = null; map_store.cold.state.simulation_id = null; PubSub.publish(eventTopics.SIMULATION_FINISHED); @@ -112,13 +113,13 @@ function checkResults() { function showResults(msg, simulation_id) { $.ajax({ - url : "/visualization", - type : "GET", - data : { + url: "/visualization", + type: "GET", + data: { simulation_ids: simulation_id, visualization: "total_system_costs", }, - success : function(json) { + success: function (json) { console.log(json); }, }); @@ -172,15 +173,20 @@ function showResultCharts(msg) { return logMessage(msg); } -function showCharts(charts={}) { +function resetResultDropdown(msg) { + futureDropdown.selectedIndex = 0; + return logMessage(msg); +} + +function showCharts(charts = {}) { $.ajax({ - url : "/charts", - type : "GET", - data : { + url: "/charts", + type: "GET", + data: { "charts": Object.keys(charts), "map_state": map_store.cold.state }, - success : function(chart_options) { + success: function (chart_options) { for (const chart in charts) { createChart(charts[chart], chart_options[chart]); } From b2c92855ccb33d9ea7e3d0eecec5b0813113f9d2 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 18 Oct 2023 22:42:42 +0200 Subject: [PATCH 61/73] Show text while simulating... --- digiplan/static/js/results.js | 3 +++ digiplan/static/scss/layouts/_panel.scss | 5 +++++ digiplan/templates/components/panel_3_results.html | 7 ++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/digiplan/static/js/results.js b/digiplan/static/js/results.js index 3a1614b8..be89f748 100644 --- a/digiplan/static/js/results.js +++ b/digiplan/static/js/results.js @@ -4,6 +4,7 @@ const imageResults = document.getElementById("info_tooltip_results"); const simulation_spinner = document.getElementById("simulation_spinner"); const chartViewTab = document.getElementById("chart-view-tab"); const mapViewTab = document.getElementById("map-view-tab"); +const resultSimNote = document.getElementById("result_simnote"); const SIMULATION_CHECK_TIME = 5000; @@ -165,11 +166,13 @@ function showRegionChart(msg, lookup) { function hideRegionChart(msg) { clearChart("region_chart_statusquo"); clearChart("region_chart_2045"); + resultSimNote.innerText = "Berechnung läuft ..."; return logMessage(msg); } function showResultCharts(msg) { showCharts(resultCharts); + resultSimNote.innerText = ""; return logMessage(msg); } diff --git a/digiplan/static/scss/layouts/_panel.scss b/digiplan/static/scss/layouts/_panel.scss index 064c0c58..7a0867d4 100644 --- a/digiplan/static/scss/layouts/_panel.scss +++ b/digiplan/static/scss/layouts/_panel.scss @@ -28,6 +28,11 @@ @extend .flex-shrink-0; } + &__simnote { + @extend .pt-2; + color: #E6A100; + } + &__goal { @extend .d-flex; @extend .flex-column; diff --git a/digiplan/templates/components/panel_3_results.html b/digiplan/templates/components/panel_3_results.html index 541ba4d5..b644c433 100644 --- a/digiplan/templates/components/panel_3_results.html +++ b/digiplan/templates/components/panel_3_results.html @@ -85,11 +85,12 @@

Info Icon

+
-
-
+
+
+
-

{% translate "View" %}

From 6d0cb669cd90a21c2d8a05f129e6e1d181d0ecf1 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 18 Oct 2023 23:05:35 +0200 Subject: [PATCH 62/73] Popups: hide aggregated values and change title fontsize --- digiplan/static/scss/components/_popup.scss | 2 +- digiplan/templates/popups/base.html | 24 ++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/digiplan/static/scss/components/_popup.scss b/digiplan/static/scss/components/_popup.scss index b60a4813..a680ee39 100644 --- a/digiplan/static/scss/components/_popup.scss +++ b/digiplan/static/scss/components/_popup.scss @@ -13,7 +13,7 @@ &__title, &__municipality { - @extend .fs-4; + @extend .fs-5; @extend .fw-light; @extend .mb-0; letter-spacing: $letter-spacing-large; diff --git a/digiplan/templates/popups/base.html b/digiplan/templates/popups/base.html index 7673b79a..fffcb051 100644 --- a/digiplan/templates/popups/base.html +++ b/digiplan/templates/popups/base.html @@ -5,18 +5,18 @@

{{ title }}

- + + + + + + + + + + + + {% block chart %}{% endblock chart %} From 1670800946c98d6a12a9130a925cffd41b393446 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 06:41:00 +0200 Subject: [PATCH 63/73] Various fixes in result popup charts --- digiplan/map/charts.py | 2 +- digiplan/map/popups.py | 31 ++++++++++++++----------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/digiplan/map/charts.py b/digiplan/map/charts.py index 760259f0..8c0d35dd 100644 --- a/digiplan/map/charts.py +++ b/digiplan/map/charts.py @@ -691,7 +691,7 @@ def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() chart_options["title"]["text"] = "Region ABW" - chart_options["yAxis"]["name"] = "Anzahl Windenergieanlagen" + chart_options["yAxis"]["name"] = "WEA/km²" return chart_options diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index a5e54cb4..92f28c29 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -404,18 +404,17 @@ def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Energieanteile pro Technologie") - chart_options["yAxis"]["name"] = _("GWh") + chart_options["yAxis"]["name"] = _("MWh") chart_options["xAxis"]["data"] = ["2022", "Dein Szenario"] return chart_options def get_chart_data(self) -> Iterable: """Create capacity chart data for SQ and future scenario.""" status_quo_data = ( - calculations.calculate_capita_for_value(calculations.energies_per_municipality()) - .loc[self.selected_id] - .round(1) - ) - future_data = (super().get_chart_data() * 1e-3).round(1) + calculations.calculate_capita_for_value(calculations.energies_per_municipality()).loc[self.selected_id] + * 1e3 + ).round(1) + future_data = super().get_chart_data().round(1) return list(zip(status_quo_data, future_data)) @@ -458,11 +457,10 @@ def get_chart_options(self) -> dict: def get_chart_data(self) -> Iterable: """Create capacity chart data for SQ and future scenario.""" status_quo_data = ( - calculations.calculate_square_for_value(calculations.energies_per_municipality()) - .loc[self.selected_id] - .round(1) - ) - future_data = (super().get_chart_data() * 1e-3).round(1) + calculations.calculate_square_for_value(calculations.energies_per_municipality()).loc[self.selected_id] + * 1e3 + ).round(1) + future_data = super().get_chart_data().round(1) return list(zip(status_quo_data, future_data)) @@ -686,7 +684,7 @@ def get_chart_options(self) -> dict: """Overwrite title and unit.""" chart_options = super().get_chart_options() chart_options["title"]["text"] = _("Strombedarf") - chart_options["yAxis"]["name"] = _("ǴWh") + chart_options["yAxis"]["name"] = _("GWh") return chart_options @@ -755,11 +753,10 @@ def get_chart_data(self) -> Iterable: status_quo_data = ( calculations.calculate_capita_for_value( calculations.electricity_demand_per_municipality(), - ) - .loc[self.selected_id] - .round(1) - ) - future_data = super().get_chart_data().round(1) + ).loc[self.selected_id] + * 1e6 + ).round(1) + future_data = (super().get_chart_data() * 1e6).round(1) return list(zip(status_quo_data, future_data)) def get_chart_options(self) -> dict: From 1ae3f1c98751fbd96a2b9c3626eb70218605eee2 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 06:56:31 +0200 Subject: [PATCH 64/73] Change opacity of chroropleth maps --- digiplan/map/choropleths.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiplan/map/choropleths.py b/digiplan/map/choropleths.py index 3cb6f62e..6cc644d3 100644 --- a/digiplan/map/choropleths.py +++ b/digiplan/map/choropleths.py @@ -44,7 +44,7 @@ def get_paint_properties() -> dict: dict containing paint properties for choropleth layer in maplibre """ - return {"fill-opacity": 1} + return {"fill-opacity": 0.75} def get_fill_color(self, values: dict[int, float]) -> dict: """ From 1d5b9d28207c86c078e9e74f80e915af62ddeb87 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 07:16:03 +0200 Subject: [PATCH 65/73] Fix pop and pop density choropleths --- digiplan/map/choropleths.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/digiplan/map/choropleths.py b/digiplan/map/choropleths.py index 6cc644d3..d497c9b1 100644 --- a/digiplan/map/choropleths.py +++ b/digiplan/map/choropleths.py @@ -153,14 +153,14 @@ def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 class PopulationChoropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 - return models.Population.quantity_per_municipality_per_year().sum(axis=1).to_dict() + return models.Population.quantity_per_municipality_per_year()[2022].to_dict() class PopulationDensityChoropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 - population = models.Population.quantity_per_municipality_per_year() + population = models.Population.quantity_per_municipality_per_year()[2022] population_square = calculations.calculate_square_for_value(population) - return population_square.sum(axis=1).to_dict() + return population_square.to_dict() class EmployeesChoropleth(Choropleth): # noqa: D101 From 065ac1b796b3db878f269827e3fe65e4890462e2 Mon Sep 17 00:00:00 2001 From: Hendrik Huyskens Date: Thu, 19 Oct 2023 09:11:29 +0200 Subject: [PATCH 66/73] Fix population popups for missing data --- CHANGELOG.md | 1 + digiplan/map/popups.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 477f6934..b92aee12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project tries to adhere to [Semantic Versioning](https://semver.org/spe - Abort simulation run when switching to settings tab ### Fixed +- population popups for missing data - various fixes in charts, texts and units - RES share calculation for SQ - power and heat demand scaling for future scenario diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index 92f28c29..63ddb203 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -5,6 +5,7 @@ from collections.abc import Iterable from typing import Optional, Union +import numpy as np import pandas as pd from django.db.models import F from django.utils.translation import gettext_lazy as _ @@ -68,6 +69,7 @@ def get_chart_options(self) -> dict: chart data ready to use in ECharts in JS """ chart_data = self.get_chart_data() + chart_data = chart_data.replace([np.nan], [None]) return charts.create_chart(self.lookup, chart_data) @abc.abstractmethod From 5b7c04da74cb01ea2e8cd48b41cea2909799639d Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 11:09:17 +0200 Subject: [PATCH 67/73] Make linter happy --- digiplan/map/calculations.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/digiplan/map/calculations.py b/digiplan/map/calculations.py index 87d75879..e461c393 100644 --- a/digiplan/map/calculations.py +++ b/digiplan/map/calculations.py @@ -618,10 +618,14 @@ def electricity_overview_from_user(simulation_id: int) -> pd.Series: ] demand.index = demand.index.get_level_values(1) - # electricity_heat_production_result = electricity_heat_demand(simulation_id) - # demand["ABW-electricity-demand_hh"] += electricity_heat_production_result["electricity_heat_demand_hh"] - # demand["ABW-electricity-demand_cts"] += electricity_heat_production_result["electricity_heat_demand_cts"] - # demand["ABW-electricity-demand_ind"] += electricity_heat_production_result["electricity_heat_demand_ind"] + # Electric share of heat production + # electricity_heat_production_result = electricity_heat_demand(simulation_id) # noqa: ERA001 + # demand["ABW-electricity-demand_hh"] += electricity_heat_production_result[ + # "electricity_heat_demand_hh"] + # demand["ABW-electricity-demand_cts"] += electricity_heat_production_result[ + # "electricity_heat_demand_cts"] + # demand["ABW-electricity-demand_ind"] += electricity_heat_production_result[ + # "electricity_heat_demand_ind"] renewables = renewable_electricity_production(simulation_id) From 0d2920fd60ef3c331d52b444941bc3f80295b141 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 20:59:22 +0200 Subject: [PATCH 68/73] Fix legend position in ghg history chart --- digiplan/map/charts/ghg_history.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/digiplan/map/charts/ghg_history.json b/digiplan/map/charts/ghg_history.json index 3a262a39..125aa95f 100644 --- a/digiplan/map/charts/ghg_history.json +++ b/digiplan/map/charts/ghg_history.json @@ -1,6 +1,7 @@ { "legend": { - "show": true + "show": true, + "bottom": "-5" }, "tooltip": { "trigger": "item", From 3a021a366864bed6771cda4ce9911e5bebf3ae59 Mon Sep 17 00:00:00 2001 From: nesnoj Date: Thu, 19 Oct 2023 21:01:09 +0200 Subject: [PATCH 69/73] Amend text shown when sim is running --- digiplan/static/js/results.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiplan/static/js/results.js b/digiplan/static/js/results.js index be89f748..b38222a6 100644 --- a/digiplan/static/js/results.js +++ b/digiplan/static/js/results.js @@ -166,7 +166,7 @@ function showRegionChart(msg, lookup) { function hideRegionChart(msg) { clearChart("region_chart_statusquo"); clearChart("region_chart_2045"); - resultSimNote.innerText = "Berechnung läuft ..."; + resultSimNote.innerText = "Berechnung läuft ... (max. 3 min)"; return logMessage(msg); } From 753da8f1d11e331f320a7594c1a563af72f79054 Mon Sep 17 00:00:00 2001 From: Hendrik Huyskens Date: Fri, 20 Oct 2023 14:09:30 +0200 Subject: [PATCH 70/73] Fix popups --- digiplan/map/popups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiplan/map/popups.py b/digiplan/map/popups.py index 63ddb203..1befdcef 100644 --- a/digiplan/map/popups.py +++ b/digiplan/map/popups.py @@ -69,7 +69,7 @@ def get_chart_options(self) -> dict: chart data ready to use in ECharts in JS """ chart_data = self.get_chart_data() - chart_data = chart_data.replace([np.nan], [None]) + chart_data = chart_data.replace([np.nan], [None]) if isinstance(chart_data, pd.DataFrame) else chart_data return charts.create_chart(self.lookup, chart_data) @abc.abstractmethod From ea049bd069a844cd00e2c8d43213f5ce24c922e0 Mon Sep 17 00:00:00 2001 From: Hendrik Huyskens Date: Fri, 20 Oct 2023 14:22:17 +0200 Subject: [PATCH 71/73] Fix result choropleth values --- digiplan/map/choropleths.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/digiplan/map/choropleths.py b/digiplan/map/choropleths.py index d497c9b1..aaa1932d 100644 --- a/digiplan/map/choropleths.py +++ b/digiplan/map/choropleths.py @@ -94,7 +94,8 @@ def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 class Energy2045Choropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 - return calculations.energies_per_municipality_2045(self.map_state["simulation_id"]).sum(axis=1).to_dict() + energies = calculations.energies_per_municipality_2045(self.map_state["simulation_id"]).sum(axis=1) * 1e-3 + return energies.to_dict() class EnergyCapitaChoropleth(Choropleth): # noqa: D101 @@ -107,7 +108,7 @@ def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 class EnergyCapita2045Choropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 energies = calculations.energies_per_municipality_2045(self.map_state["simulation_id"]) - energies_per_capita = calculations.calculate_capita_for_value(energies) * 1e3 + energies_per_capita = calculations.calculate_capita_for_value(energies) return energies_per_capita.sum(axis=1).to_dict() @@ -121,7 +122,7 @@ def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 class EnergySquare2045Choropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 energies = calculations.energies_per_municipality_2045(self.map_state["simulation_id"]) - energies_per_square = calculations.calculate_square_for_value(energies) * 1e3 + energies_per_square = calculations.calculate_square_for_value(energies) return energies_per_square.sum(axis=1).to_dict() @@ -140,7 +141,7 @@ def get_values_per_feature(self) -> pd.DataFrame: # noqa: D102 class CapacitySquare2045Choropleth(Choropleth): # noqa: D101 def get_values_per_feature(self) -> dict[int, float]: # noqa: D102 capacities = calculations.capacities_per_municipality_2045(self.map_state["simulation_id"]) - capacities_per_square = calculations.calculate_square_for_value(capacities) * 1e3 + capacities_per_square = calculations.calculate_square_for_value(capacities) return capacities_per_square.sum(axis=1).to_dict() From 66884862545c6626698f5a47b2b7da4de264ed3e Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 1 Nov 2023 16:24:20 +0100 Subject: [PATCH 72/73] Add app version to doc modal --- digiplan/map/views.py | 3 +++ digiplan/templates/offcanvas/documentation.html | 1 + 2 files changed, 4 insertions(+) diff --git a/digiplan/map/views.py b/digiplan/map/views.py index 4cd57458..4a4d5e1d 100644 --- a/digiplan/map/views.py +++ b/digiplan/map/views.py @@ -9,6 +9,7 @@ from django.views.generic import TemplateView from django_mapengine import views +from digiplan import __version__ from digiplan.map import config from . import charts, choropleths, forms, map_config, popups, utils @@ -87,6 +88,8 @@ def get_context_data(self, **kwargs) -> dict: context["onboarding_pv_ground"] = charts.Chart("onboarding_pv_ground").render() context["onboarding_pv_roof"] = charts.Chart("onboarding_pv_roof").render() + context["app_version"] = str(__version__) + return context diff --git a/digiplan/templates/offcanvas/documentation.html b/digiplan/templates/offcanvas/documentation.html index 4e919dea..df565dd1 100644 --- a/digiplan/templates/offcanvas/documentation.html +++ b/digiplan/templates/offcanvas/documentation.html @@ -2,6 +2,7 @@
+

App-Version {{ app_version }}

Dokumentation

StEmp-ABW ist ein Stakeholder-Empowerment-Tool für die Region Anhalt-Bitterfeld-Wittenberg (ABW) und die Weiterentwicklung der ersten Version von 2019. Es wurde vom Reiner Lemoine Institut (RLI) im Rahmen des Projekts Heimat 2.0 im Programm Region gestalten entwickelt.

From a5feb80b9c8cefe122b52394e34eec93edce126f Mon Sep 17 00:00:00 2001 From: nesnoj Date: Wed, 1 Nov 2023 16:26:57 +0100 Subject: [PATCH 73/73] Bump version to 1.0.0 - prepare for release --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b92aee12..63fe2030 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,17 @@ and this project tries to adhere to [Semantic Versioning](https://semver.org/spe ## [Unreleased] ### Added + +### Changed + +### Fixed + +## [1.0.0] - 2023-11-01 +### Added - RES share charts and choropleth for user scenario - Battery storages hook to esys model - Add note on tech requirements to onboarding modal +- Version info in doc modal ### Changed - Remove locale EN