diff --git a/src/egon/data/datasets/etrago_setup.py b/src/egon/data/datasets/etrago_setup.py index 50b8c5c79..92bb70441 100755 --- a/src/egon/data/datasets/etrago_setup.py +++ b/src/egon/data/datasets/etrago_setup.py @@ -25,14 +25,7 @@ from egon.data import db from egon.data.datasets import Dataset -from egon.data.metadata import ( - context, - contributors, - generate_resource_fields_from_sqla_model, - license_ccby, - meta_metadata, - sources, -) +from egon.data.metadata import context, contributors, meta_metadata, sources Base = declarative_base() metadata = Base.metadata @@ -42,11 +35,23 @@ network.component_attrs["Storage"] = network.component_attrs["StorageUnit"] -def get_pypsa_field_descriptors(component): +def get_pypsa_field_descriptors(component, timeseries=False): ident = component.lower() + "_id" data = network.component_attrs[component].rename({"name": ident}) + data = data[data.status != "Output"] + + if timeseries: + data = data[data["type"].str.contains("series")] + data.loc["temp_id"] = [ + "integer", + "n/a", + "n/a", + "Unique identifyier of temporal index", + "Input", + ] + data.loc[ident, "type"] = "int" data.loc["scn_name"] = [ "string", @@ -55,7 +60,8 @@ def get_pypsa_field_descriptors(component): "Name of the eGon scenario", "Input", ] - + data.unit.fillna("none", inplace=True) + data.default.fillna("n/a", inplace=True) return data @@ -66,11 +72,15 @@ def get_meta( source_list=[], license_list=[], contributor_list=[], + timeseries=False, ): table = "egon_etrago_" + component.lower() + + if timeseries: + table = table + "_timeseries" fields = ( - get_pypsa_field_descriptors(component) + get_pypsa_field_descriptors(component, timeseries) .reset_index() .to_dict(orient="records") ) @@ -106,7 +116,10 @@ def get_meta( "primaryKey": ["scn_name", component.lower() + "_id"], "foreignKeys": [], }, - "dialect": {"delimiter": None, "decimalSeparator": "."}, + "dialect": { + "delimiter": "", + "decimalSeparator": "" + }, } ], "metaMetadata": meta_metadata(), @@ -129,8 +142,35 @@ def __init__(self, dependencies): class EgonPfHvBus(Base): + + source_list = [ + sources()["egon-data"], + sources()["openstreetmap"], + sources()["peta"], + sources()["SciGRID_gas"], + sources()["bgr_inspeeds_data_bundle"], + ] + + contributor_list = contributors(["ic", "cb", "ke", "an", "fw"]) + contributor_list[0]["comment"] = "Added electricity substations" + contributor_list[1]["comment"] = "Added heat buses" + contributor_list[2]["comment"] = "Added DSM buses" + contributor_list[3]["comment"] = "Added CH4 sector buses" + contributor_list[4]["comment"] = "Added H2 sector buses" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_bus" - __table_args__ = {"schema": "grid", "comment": get_meta("grid", "Bus")} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Bus", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } scn_name = Column(String, primary_key=True, nullable=False) bus_id = Column(BigInteger, primary_key=True, nullable=False) @@ -147,8 +187,28 @@ class EgonPfHvBus(Base): class EgonPfHvBusTimeseries(Base): + + source_list = [ + sources()["egon-data"], + ] + + contributor_list = contributors(["cb"]) + contributor_list[0]["comment"] = "Added metadata" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_bus_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Bus", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) bus_id = Column(BigInteger, primary_key=True, nullable=False) @@ -156,10 +216,38 @@ class EgonPfHvBusTimeseries(Base): class EgonPfHvGenerator(Base): + + source_list = [ + sources()["egon-data"], + sources()["openstreetmap"], + sources()["mastr"], + sources()["nep2021"], + sources()["tyndp"], + sources()["SciGRID_gas"], + sources()["Einspeiseatlas"], + sources()["technology-data"], + sources()["vg250"], + ] + + contributor_list = contributors(["ic", "cb", "ce", "an", "ke"]) + contributor_list[0]["comment"] = "Added hydro and biomass plants" + contributor_list[1]["comment"] = "Added solar and geothermal plants" + contributor_list[2]["comment"] = "Added wind on- and offshore plants" + contributor_list[3]["comment"] = "Added gas feedin generators" + contributor_list[4]["comment"] = "Added pv ground mounted" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_generator" __table_args__ = { "schema": "grid", - "comment": get_meta("grid", "Generator"), + "comment": get_meta( + "grid", + "Generator", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), } scn_name = Column(String, primary_key=True, nullable=False) @@ -199,8 +287,31 @@ class EgonPfHvGenerator(Base): class EgonPfHvGeneratorTimeseries(Base): + + source_list = [ + sources()["egon-data"], + sources()["era5"], + ] + + contributor_list = contributors(["cb"]) + contributor_list[0][ + "comment" + ] = "Added p_max_pu timeseries for pv and wind" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_generator_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Generator", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) generator_id = Column(Integer, primary_key=True, nullable=False) @@ -213,8 +324,29 @@ class EgonPfHvGeneratorTimeseries(Base): class EgonPfHvLine(Base): + + source_list = [ + sources()["egon-data"], + sources()["openstreetmap"], + ] + + contributor_list = contributors(["ic", "cb"]) + contributor_list[0]["comment"] = "Added lines from osmTGmod tables" + contributor_list[1]["comment"] = "Added meta data" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_line" - __table_args__ = {"schema": "grid", "comment": get_meta("grid", "Line")} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Line", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } scn_name = Column(String, primary_key=True, nullable=False) line_id = Column(BigInteger, primary_key=True, nullable=False) @@ -246,8 +378,31 @@ class EgonPfHvLine(Base): class EgonPfHvLineTimeseries(Base): + + source_list = [ + sources()["egon-data"], + sources()["nep2021"], + sources()["era5"], + ] + + contributor_list = contributors(["ce", "cb"]) + contributor_list[0]["comment"] = "Added s_max_pu timeseries" + contributor_list[1]["comment"] = "Added meta data" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_line_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Line", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) line_id = Column(BigInteger, primary_key=True, nullable=False) @@ -256,6 +411,44 @@ class EgonPfHvLineTimeseries(Base): class EgonPfHvLink(Base): + + source_list = [ + sources()["egon-data"], + sources()["openstreetmap"], + sources()["nep2021"], + sources()["peta"], + sources()["mastr"], + sources()["SciGRID_gas"], + sources()["pipeline_classification"], + sources()["technology-data"], + sources()["dsm-heitkoetter"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["demandregio"], + ] + + contributor_list = contributors(["ic", "cb", "ke", "ja", "fw", "an"]) + contributor_list[0]["comment"] = "Added DC lines from osmTGmod tables" + contributor_list[1]["comment"] = "Added CHPs and heat links" + contributor_list[2]["comment"] = "Added DSM links" + contributor_list[3]["comment"] = "Added e-Mobility links" + contributor_list[4]["comment"] = "Added H2 related links" + contributor_list[5]["comment"] = "Added CH4 links" + + license_list = [data["licenses"][0] for data in source_list] + + __tablename__ = "egon_etrago_link" + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Link", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } + __tablename__ = "egon_etrago_link" __table_args__ = {"schema": "grid", "comment": get_meta("grid", "Link")} @@ -284,8 +477,37 @@ class EgonPfHvLink(Base): class EgonPfHvLinkTimeseries(Base): + source_list = [ + sources()["egon-data"], + sources()["era5"], + sources()["dsm-heitkoetter"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["openstreetmap"], + sources()["demandregio"], + ] + + contributor_list = contributors(["cb", "ke", "ja"]) + contributor_list[0][ + "comment" + ] = "Added efficiency timeseries for heat pumps" + contributor_list[1]["comment"] = "Added dsm link timeseries" + contributor_list[2]["comment"] = "Added e mobility link timeseries" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_link_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Link", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) link_id = Column(BigInteger, primary_key=True, nullable=False) @@ -298,8 +520,38 @@ class EgonPfHvLinkTimeseries(Base): class EgonPfHvLoad(Base): + + source_list = [ + sources()["egon-data"], + sources()["demandregio"], + sources()["nep2021"], + sources()["peta"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["openstreetmap"], + sources()["openffe_gas"], + sources()["tyndp"], + ] + + contributor_list = contributors(["ic", "cb", "an", "ja"]) + contributor_list[0]["comment"] = "Added electrical demands" + contributor_list[1]["comment"] = "Added heat deands" + contributor_list[2]["comment"] = "Added gas demands" + contributor_list[3]["comment"] = "Added mobility demands" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_load" - __table_args__ = {"schema": "grid", "comment": get_meta("grid", "Load")} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Load", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } scn_name = Column(String, primary_key=True, nullable=False) load_id = Column(BigInteger, primary_key=True, nullable=False) @@ -312,8 +564,39 @@ class EgonPfHvLoad(Base): class EgonPfHvLoadTimeseries(Base): + source_list = [ + sources()["egon-data"], + sources()["demandregio"], + sources()["nep2021"], + sources()["peta"], + sources()["openffe_gas"], + sources()["tyndp"], + sources()["era5"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["openstreetmap"], + ] + + contributor_list = contributors(["cb", "ic", "ja", "an"]) + contributor_list[0]["comment"] = "Added heat load timeseries" + contributor_list[1]["comment"] = "Added electricity load timeseries" + contributor_list[2]["comment"] = "Added e mobility load timeseries" + contributor_list[3]["comment"] = "Added gas load timeseries" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_load_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Load", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) load_id = Column(BigInteger, primary_key=True, nullable=False) @@ -323,8 +606,26 @@ class EgonPfHvLoadTimeseries(Base): class EgonPfHvCarrier(Base): + source_list = [ + sources()["egon-data"], + ] + + contributor_list = contributors(["fw"]) + contributor_list[0]["comment"] = "Added list of carriers" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_carrier" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Carrier", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } name = Column(Text, primary_key=True, nullable=False) co2_emissions = Column(Float(53), server_default="0.") @@ -334,8 +635,32 @@ class EgonPfHvCarrier(Base): class EgonPfHvStorage(Base): + + source_list = [ + sources()["egon-data"], + sources()["nep2021"], + sources()["mastr"], + sources()["technology-data"], + ] + + contributor_list = contributors(["ic"]) + contributor_list[0][ + "comment" + ] = "Added battery and pumped hydro storage units" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_storage" - __table_args__ = {"schema": "grid", "comment": get_meta("grid", "Storage")} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Storage", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), + } scn_name = Column(String, primary_key=True, nullable=False) storage_id = Column(BigInteger, primary_key=True, nullable=False) @@ -367,8 +692,27 @@ class EgonPfHvStorage(Base): class EgonPfHvStorageTimeseries(Base): + source_list = [ + sources()["egon-data"], + ] + + contributor_list = contributors(["cb"]) + contributor_list[0]["comment"] = "Added metadata" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_storage_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Storage", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) storage_id = Column(BigInteger, primary_key=True, nullable=False) @@ -384,17 +728,28 @@ class EgonPfHvStorageTimeseries(Base): class EgonPfHvStore(Base): source_dict = sources() + source_list = [ source_dict["bgr_inspee"], source_dict["bgr_inspeeds"], source_dict["bgr_inspeeds_data_bundle"], - source_dict["bgr_inspeeds_data_bundle"], source_dict["bgr_inspeeds_report"], + source_dict["SciGRID_gas"], + sources()["technology-data"], + sources()["dsm-heitkoetter"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["openstreetmap"], + sources()["demandregio"], ] - contributor_list = contributors(["an", "fw"]) + contributor_list = contributors(["an", "fw", "ke", "cb", "ja"]) contributor_list[0]["comment"] = "Add H2 storage" contributor_list[1]["comment"] = "Add CH4 storage" - license_list = [data["license"] for data in source_list] + contributor_list[2]["comment"] = "Add DSM storage" + contributor_list[3]["comment"] = "Add heat storage" + contributor_list[4]["comment"] = "Add e-mobility storage" + + license_list = [data["licenses"][0] for data in source_list] __tablename__ = "egon_etrago_store" __table_args__ = { "schema": "grid", @@ -431,9 +786,33 @@ class EgonPfHvStore(Base): class EgonPfHvStoreTimeseries(Base): - __tablename__ = "egon_etrago_store_timeseries" - __table_args__ = {"schema": "grid"} + source_dict = sources() + # TODO: Add other sources for dsm + source_list = [ + sources()["technology-data"], + sources()["dsm-heitkoetter"], + sources()["schmidt"], + sources()["hotmaps_industrial_sites"], + sources()["openstreetmap"], + sources()["demandregio"], + ] + contributor_list = contributors(["ke", "ja"]) + contributor_list[0]["comment"] = "Add DSM storage" + contributor_list[1]["comment"] = "Add e-mobility storage" + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_store_timeseries" + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Store", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) store_id = Column(BigInteger, primary_key=True, nullable=False) temp_id = Column(Integer, primary_key=True, nullable=False) @@ -455,10 +834,28 @@ class EgonPfHvTempResolution(Base): class EgonPfHvTransformer(Base): + + source_list = [ + sources()["egon-data"], + sources()["openstreetmap"], + ] + + contributor_list = contributors(["ic", "cb"]) + contributor_list[0]["comment"] = "Added transformes from osmTGmod tables" + contributor_list[1]["comment"] = "Added meta data" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_transformer" __table_args__ = { "schema": "grid", - "comment": get_meta("grid", "Transformer"), + "comment": get_meta( + "grid", + "Transformer", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + ), } scn_name = Column(String, primary_key=True, nullable=False) @@ -491,8 +888,27 @@ class EgonPfHvTransformer(Base): class EgonPfHvTransformerTimeseries(Base): + source_list = [ + sources()["egon-data"], + ] + + contributor_list = contributors(["cb"]) + contributor_list[0]["comment"] = "Added meta data" + + license_list = [data["licenses"][0] for data in source_list] + __tablename__ = "egon_etrago_transformer_timeseries" - __table_args__ = {"schema": "grid"} + __table_args__ = { + "schema": "grid", + "comment": get_meta( + "grid", + "Transformer", + source_list=source_list, + license_list=license_list, + contributor_list=contributor_list, + timeseries=True, + ), + } scn_name = Column(String, primary_key=True, nullable=False) trafo_id = Column(BigInteger, primary_key=True, nullable=False) diff --git a/src/egon/data/metadata.py b/src/egon/data/metadata.py index e7cbb5a7d..d9fa5270e 100755 --- a/src/egon/data/metadata.py +++ b/src/egon/data/metadata.py @@ -320,7 +320,7 @@ def sources(): "salt structures: planning basis, selection criteria and estimation of the potential for the construction " 'of salt caverns for the storage of renewable energies (hydrogen and compressed air)".', "path": "https://produktcenter.bgr.de/terraCatalog/DetailResult.do?fileIdentifier=338136ea-261a-4569-a2bf-92999d09bad2", - "license": [license_geonutzv("© BGR, Hannover, 2015")], + "licenses": [license_geonutzv("© BGR, Hannover, 2015")], }, "bgr_inspeeds": { "title": "Flat layered salts in Germany", @@ -343,7 +343,7 @@ def sources(): "planning basis, selection criteria and estimation of the potential for the construction of salt caverns " 'for the storage of renewable energies (hydrogen and compressed air) - double saline and flat salt layers".', "path": "https://produktcenter.bgr.de/terraCatalog/DetailResult.do?fileIdentifier=630430b8-4025-4d6f-9a62-025b53bc8b3d", - "license": [license_geonutzv("© BGR, Hannover, 2021")], + "licenses": [license_geonutzv("© BGR, Hannover, 2021")], }, "bgr_inspeeds_data_bundle": { "title": "Informationssystem Salz: Planungsgrundlagen, Auswahlkriterien und Potenzialabschätzung für die " @@ -354,7 +354,7 @@ def sources(): " in table 7-1 (Donadei, S., et al., 2020, p. 7-4). Note: Please include all bgr data sources when using " "the data.", "path": "https://dx.doi.org/10.5281/zenodo.4896526", - "license": [license_geonutzv("???")], + "licenses": [license_geonutzv("© BGR, Hannover, 2021")], }, "bgr_inspeeds_report": { "title": "Informationssystem Salz: Planungsgrundlagen, Auswahlkriterien und Potenzialabschätzung für die " @@ -363,14 +363,14 @@ def sources(): "description": "The report includes availability of saltstructures for energy storage and energy " "storage potential accumulated per federal state in Germany.", "path": "https://www.bgr.bund.de/DE/Themen/Nutzung_tieferer_Untergrund_CO2Speicherung/Downloads/InSpeeDS_TP_Bewertungskriterien.pdf?__blob=publicationFile&v=3", - "license": [license_geonutzv("© BGR, Hannover, 2021")], + "licenses": [license_geonutzv("© BGR, Hannover, 2021")], }, "demandregio": { "title": "DemandRegio", "description": "Harmonisierung und Entwicklung von Verfahren zur regionalen und " "zeitlichen Auflösung von Energienachfragen", "path": "https://doi.org/10.34805/ffe-119-20", - "license": [license_ccby("© FZJ, TUB, FfE")], + "licenses": [license_ccby("© FZJ, TUB, FfE")], }, "egon-data": { "titel": "eGon-data", @@ -379,7 +379,7 @@ def sources(): "path": "https://github.com/openego/eGon-data", "licenses": [ license_agpl( - "© Jonathan Amme, Clara Büttner, Ilka Cußmann, Julian Endres, Carlos Epia, Stephan Günther, Ulf Müller, Amélia Nadal, Guido Pleßmann, Francesco Witte" + "© eGon development team" ) ], }, @@ -389,7 +389,7 @@ def sources(): "zu realisierten und geplanten Biomethanaufbereitungsanlagen - mit " "und ohne Einspeisung ins Gasnetz - in Deutschland und weltweit.", "path": "https://www.biogaspartner.de/einspeiseatlas/", - "license": license_ccby("Deutsche Energie-Agentur (dena, 2021)"), + "licenses": [license_ccby("Deutsche Energie-Agentur (dena, 2021)")], }, "era5": { "title": "ERA5 global reanalysis", @@ -401,7 +401,7 @@ def sources(): "(https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation#ERA5:datadocumentation-Dataupdatefrequency) " "for more information.", "path": "https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation#ERA5:datadocumentation-Dataupdatefrequency", - "license": [ + "licenses": [ { "name": "Licence to use Copernicus Products", "title": "Licence to use Copernicus Products", @@ -415,6 +415,22 @@ def sources(): }, ], }, + "dsm-heitkoetter": { + "title": "Assessment of the regionalised demand response potential " + "in Germany using an open source tool and dataset", + "description": "With the expansion of renewable energies in Germany, " + "imminent grid congestion events occur more often. One approach for " + "avoiding curtailment of renewable energies is to cover excess feed-in " + "by demand response. As curtailment is often a local phenomenon, in " + "this work we determine the regional demand response potential for " + "the 401 German administrative districts with a temporal resolution " + "of 15 min, including technical, socio-technical and economic " + "restrictions.", + "path": "https://doi.org/10.1016/j.adapen.2020.100001", + "licenses": [ + license_ccby("© 2020 German Aerospace Center (DLR), " + "Institute of Networked Energy Systems.")], + }, "hotmaps_industrial_sites": { "titel": "industrial_sites_Industrial_Database", "description": "Georeferenced industrial sites of energy-intensive industry sectors in EU28", @@ -457,14 +473,14 @@ def sources(): "definiert sowie konkrete Empfehlungen für den Aus- und Neubau der Übertragungsnetze " "an Land und auf See in Deutschland gemäß den Detailanforderungen im § 12 EnWG gegeben.", "path": "https://zenodo.org/record/5743452#.YbCoz7so8go", - "license": [license_ccby("© Übertragungsnetzbetreiber")], + "licenses": [license_ccby("© Übertragungsnetzbetreiber")], }, "openffe_gas": { "title": "Load Curves of the Industry Sector – eXtremOS solidEU Scenario (Europe NUTS-3)", "description": "Load Curves of the Industry Sector for the eXtremOS solidEU Scenario Scenario at NUTS-3-Level. " "More information at https://extremos.ffe.de/.", "path": "http://opendata.ffe.de/dataset/load-curves-of-the-industry-sector-extremos-solideu-scenario-europe-nuts-3/", - "license": [license_ccby("© FfE, eXtremOS Project")], + "licenses": [license_ccby("© FfE, eXtremOS Project")], }, "openstreetmap": { "title": "OpenStreetMap Data Extracts (Geofabrik)", @@ -485,7 +501,7 @@ def sources(): "For further information please see the documentation available on the Heat Roadmap Europe website, " "in particular D2.3 report 'Methodologies and assumptions used in the mapping'.", "path": "https://s-eenergies-open-data-euf.hub.arcgis.com/search", - "license": [ + "licenses": [ license_ccby( "© Europa-Universität Flensburg, Halmstad University and Aalborg University" ) @@ -497,7 +513,7 @@ def sources(): "the whole documentation could is available at: " "https://www.econstor.eu/bitstream/10419/173388/1/1011162628.pdf", "path": "https://zenodo.org/record/5743452", - "license": license_ccby("© DIW Berlin, 2017"), + "licenses": [license_ccby("© DIW Berlin, 2017")], }, "schmidt": { "title": "Supplementary material to the masters thesis: " @@ -516,9 +532,9 @@ def sources(): "stations, LNG terminals, storage, production sites, gas power " "plants, border points, and demand time series. ", "path": "https://dx.doi.org/10.5281/zenodo.4896526", - "license": license_ccby( - " Jan Diettrich; Adam Pluta; Wided Medjroubi (DLR-VE)" - ), + "licenses": [license_ccby( + "Jan Diettrich; Adam Pluta; Wided Medjroubi (DLR-VE)" + ),] }, "seenergies": { "title": "D5 1 Industry Dataset With Demand Data", @@ -527,6 +543,21 @@ def sources(): "path": "https://s-eenergies-open-data-euf.hub.arcgis.com/datasets/5e36c0af918040ed936b4e4c101f611d_0/about", "licenses": [license_ccby("© Europa-Universität Flensburg")], }, + "technology-data": { + "titel": "Energy System Technology Data v0.3.0", + "description": "This script compiles assumptions on energy system " + "technologies (such as costs, efficiencies, lifetimes, etc.) for " + "chosen years (e.g. [2020, 2030, 2050]) from a variety of sources " + "into CSV files to be read by energy system modelling software. " + "The merged outputs have standardized cost years, technology names, " + "units and source information.", + "path": "https://github.com/PyPSA/technology-data/tree/v0.3.0", + "licenses": [ + license_agpl( + "© Marta Victoria (Aarhus University), Kun Zhu (Aarhus University), Elisabeth Zeyen (TUB), Tom Brown (TUB)" + ) + ], + }, "tyndp": { "title": "Ten-Year Network Development Plan (TYNDP) 2020 Scenarios", "description": "ENTSOs’ TYNDP 2020 Scenario Report describes possible European energy futures up to 2050. " @@ -536,7 +567,7 @@ def sources(): "guided by technically sound pathways, while reflecting country by country specifics, so that a pan-European " "low carbon future is achieved.", "path": "https://tyndp.entsoe.eu/maps-data", - "license": [license_ccby("© ENTSO-E and ENTSOG")], + "licenses": [license_ccby("© ENTSO-E and ENTSOG")], }, "vg250": { "title": "Verwaltungsgebiete 1:250 000 (Ebenen)", @@ -560,7 +591,7 @@ def sources(): "und Familien- sowie Gebäude- und Wohnungs­merkmalen. Die Ergebnisse liegen auf Bundes-, " "Länder-, Kreis- und Gemeinde­ebene vor. Außerdem sind einzelne Ergebnisse für Gitterzellen verfügbar.", "path": "https://www.zensus2011.de/SharedDocs/Aktuelles/Ergebnisse/DemografischeGrunddaten.html;jsessionid=E0A2B4F894B258A3B22D20448F2E4A91.2_cid380?nn=3065474", - "license": [ + "licenses": [ licenses_datenlizenz_deutschland( "© Statistische Ämter des Bundes und der Länder 2014" ) @@ -595,7 +626,7 @@ def contributors(authorlist): "title": "Guido Pleßmann", "email": "https://github.com/gplssm", }, - "ik": { + "ic": { "title": "Ilka Cußmann", "email": "https://github.com/IlkaCu", },