Passed
Pull Request — dev (#568)
by
unknown
04:44
created

data.metadata.sources()   B

Complexity

Conditions 1

Size

Total Lines 259
Code Lines 131

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 131
dl 0
loc 259
rs 7
c 0
b 0
f 0
cc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
import time
2
3
from geoalchemy2 import Geometry
4
from sqlalchemy import MetaData, Table
5
from sqlalchemy.dialects.postgresql.base import ischema_names
6
7
from egon.data.db import engine
8
9
10
def context():
11
    """
12
    Project context information for metadata
13
14
    Returns
15
    -------
16
    dict
17
        OEP metadata conform data license information
18
    """
19
20
    return {
21
        "homepage": "https://ego-n.org/",
22
        "documentation": "https://egon-data.readthedocs.io/en/latest/",
23
        "sourceCode": "https://github.com/openego/eGon-data",
24
        "contact": "https://ego-n.org/partners/",
25
        "grantNo": "03EI1002",
26
        "fundingAgency": "Bundesministerium für Wirtschaft und Energie",
27
        "fundingAgencyLogo": "https://www.innovation-beratung-"
28
        "foerderung.de/INNO/Redaktion/DE/Bilder/"
29
        "Titelbilder/titel_foerderlogo_bmwi.jpg?"
30
        "__blob=normal&v=3",
31
        "publisherLogo": "https://ego-n.org/images/eGon_logo_"
32
        "noborder_transbg.svg",
33
    }
34
35
36
def meta_metadata():
37
    """
38
    Meta data on metadata
39
40
    Returns
41
    -------
42
    dict
43
        OEP metadata conform metadata on metadata
44
    """
45
46
    return {
47
        "metadataVersion": "OEP-1.4.1",
48
        "metadataLicense": {
49
            "name": "CC0-1.0",
50
            "title": "Creative Commons Zero v1.0 Universal",
51
            "path": ("https://creativecommons.org/publicdomain/zero/1.0/"),
52
        },
53
    }
54
55
56
def licenses_datenlizenz_deutschland(attribution):
57
    """
58
    License information for Datenlizenz Deutschland
59
60
    Parameters
61
    ----------
62
    attribution : str
63
        Attribution for the dataset incl. © symbol, e.g. '© GeoBasis-DE / BKG'
64
65
    Returns
66
    -------
67
    dict
68
        OEP metadata conform data license information
69
    """
70
71
    return {
72
        "name": "dl-by-de/2.0",
73
        "title": "Datenlizenz Deutschland – Namensnennung – Version 2.0",
74
        "path": "www.govdata.de/dl-de/by-2-0",
75
        "instruction": (
76
            "Jede Nutzung ist unter den Bedingungen dieser „Datenlizenz "
77
            "Deutschland - Namensnennung - Version 2.0 zulässig.\nDie "
78
            "bereitgestellten Daten und Metadaten dürfen für die "
79
            "kommerzielle und nicht kommerzielle Nutzung insbesondere:"
80
            "(1) vervielfältigt, ausgedruckt, präsentiert, verändert, "
81
            "bearbeitet sowie an Dritte übermittelt werden;\n "
82
            "(2) mit eigenen Daten und Daten Anderer zusammengeführt und "
83
            "zu selbständigen neuen Datensätzen verbunden werden;\n "
84
            "(3) in interne und externe Geschäftsprozesse, Produkte und "
85
            "Anwendungen in öffentlichen und nicht öffentlichen "
86
            "elektronischen Netzwerken eingebunden werden.\n"
87
            "Bei der Nutzung ist sicherzustellen, dass folgende Angaben "
88
            "als Quellenvermerk enthalten sind:\n"
89
            "(1) Bezeichnung des Bereitstellers nach dessen Maßgabe,\n"
90
            "(2) der Vermerk Datenlizenz Deutschland – Namensnennung – "
91
            "Version 2.0 oder dl-de/by-2-0 mit Verweis auf den Lizenztext "
92
            "unter www.govdata.de/dl-de/by-2-0 sowie\n"
93
            "(3) einen Verweis auf den Datensatz (URI)."
94
            "Dies gilt nur soweit die datenhaltende Stelle die Angaben"
95
            "(1) bis (3) zum Quellenvermerk bereitstellt.\n"
96
            "Veränderungen, Bearbeitungen, neue Gestaltungen oder "
97
            "sonstige Abwandlungen sind im Quellenvermerk mit dem Hinweis "
98
            "zu versehen, dass die Daten geändert wurden."
99
        ),
100
        "attribution": attribution,
101
    }
102
103
104
def license_odbl(attribution):
105
    """
106
    License information for Open Data Commons Open Database License (ODbL-1.0)
107
108
    Parameters
109
    ----------
110
    attribution : str
111
        Attribution for the dataset incl. © symbol, e.g.
112
        '© OpenStreetMap contributors'
113
114
    Returns
115
    -------
116
    dict
117
        OEP metadata conform data license information
118
    """
119
    return {
120
        "name": "ODbL-1.0",
121
        "title": "Open Data Commons Open Database License 1.0",
122
        "path": "https://opendatacommons.org/licenses/odbl/1.0/index.html",
123
        "instruction": "You are free: To Share, To Create, To Adapt; "
124
        "As long as you: Attribute, Share-Alike, Keep open!",
125
        "attribution": attribution,
126
    }
127
128
129
def license_ccby(attribution):
130
    """
131
    License information for Creative Commons Attribution 4.0 International
132
    (CC-BY-4.0)
133
134
    Parameters
135
    ----------
136
    attribution : str
137
        Attribution for the dataset incl. © symbol, e.g. '© GeoBasis-DE / BKG'
138
139
    Returns
140
    -------
141
    dict
142
        OEP metadata conform data license information
143
    """
144
    return {
145
        "name": "CC-BY-4.0",
146
        "title": "Creative Commons Attribution 4.0 International",
147
        "path": "https://creativecommons.org/licenses/by/4.0/legalcode",
148
        "instruction": "You are free: To Share, To Create, To Adapt; "
149
        "As long as you: Attribute.",
150
        "attribution": attribution,
151
    }
152
153
154
def license_geonutzv(attribution):
155
    """
156
    License information for GeoNutzV
157
158
    Parameters
159
    ----------
160
    attribution : str
161
        Attribution for the dataset incl. © symbol, e.g. '© GeoBasis-DE / BKG'
162
163
    Returns
164
    -------
165
    dict
166
        OEP metadata conform data license information
167
    """
168
    return {
169
        "name": "geonutzv-de-2013-03-19",
170
        "title": "Verordnung zur Festlegung der Nutzungsbestimmungen für die "
171
        "Bereitstellung von Geodaten des Bundes",
172
        "path": "https://www.gesetze-im-internet.de/geonutzv/",
173
        "instruction": "Geodaten und Geodatendienste, einschließlich "
174
        "zugehöriger Metadaten, werden für alle derzeit "
175
        "bekannten sowie für alle zukünftig bekannten Zwecke "
176
        "kommerzieller und nicht kommerzieller Nutzung "
177
        "geldleistungsfrei zur Verfügung gestellt, soweit "
178
        "durch besondere Rechtsvorschrift nichts anderes "
179
        "bestimmt ist oder vertragliche oder gesetzliche "
180
        "Rechte Dritter dem nicht entgegenstehen.",
181
        "attribution": attribution,
182
    }
183
184
185
def license_agpl(attribution):
186
    """
187
    License information for GNU Affero General Public License v3.0
188
189
    Parameters
190
    ----------
191
    attribution : str
192
        Attribution for the dataset incl. © symbol, e.g. '© GeoBasis-DE / BKG'
193
194
    Returns
195
    -------
196
    dict
197
        OEP metadata conform data license information
198
    """
199
    return {
200
        "name": "AGPL-3.0 License",
201
        "title": "GNU Affero General Public License v3.0",
202
        "path": "https://www.gnu.org/licenses/agpl-3.0.de.html",
203
        "instruction": "Permissions of this strongest copyleft license are"
204
        "conditioned on making available complete source code of licensed "
205
        "works and modifications, which include larger works using a licensed"
206
        "work, under the same license. Copyright and license notices must be"
207
        "preserved. Contributors provide an express grant of patent rights."
208
        "When a modified version is used to provide a service over a network,"
209
        "the complete source code of the modified version must be made available.",
210
        "attribution": attribution,
211
    }
212
213
214
def generate_resource_fields_from_sqla_model(model):
215
    """Generate a template for the resource fields for metadata from a SQL
216
    Alchemy model.
217
218
    For details on the fields see field 14.6.1 of `Open Energy Metadata
219
    <https://github.com/OpenEnergyPlatform/ oemetadata/blob/develop/metadata/
220
    v141/metadata_key_description.md>`_ standard.
221
    The fields `name` and `type` are automatically filled, the `description`
222
    and `unit` must be filled manually.
223
224
    Examples
225
    --------
226
    >>> from egon.data.metadata import generate_resource_fields_from_sqla_model
227
    >>> from egon.data.datasets.zensus_vg250 import Vg250Sta
228
    >>> resources = generate_resource_fields_from_sqla_model(Vg250Sta)
229
230
    Parameters
231
    ----------
232
    model : sqlalchemy.ext.declarative.declarative_base()
233
        SQLA model
234
235
    Returns
236
    -------
237
    list of dict
238
        Resource fields
239
    """
240
241
    return [
242
        {
243
            "name": col.name,
244
            "description": "",
245
            "type": str(col.type).lower(),
246
            "unit": "none",
247
        }
248
        for col in model.__table__.columns
249
    ]
250
251
252
def generate_resource_fields_from_db_table(schema, table, geom_columns=None):
253
    """Generate a template for the resource fields for metadata from a
254
    database table.
255
256
    For details on the fields see field 14.6.1 of `Open Energy Metadata
257
    <https://github.com/OpenEnergyPlatform/ oemetadata/blob/develop/metadata/
258
    v141/metadata_key_description.md>`_ standard.
259
    The fields `name` and `type` are automatically filled, the `description`
260
    and `unit` must be filled manually.
261
262
    Examples
263
    --------
264
    >>> from egon.data.metadata import generate_resource_fields_from_db_table
265
    >>> resources = generate_resource_fields_from_db_table(
266
    ...     'openstreetmap', 'osm_point', ['geom', 'geom_centroid']
267
    ... )  # doctest: +SKIP
268
269
    Parameters
270
    ----------
271
    schema : str
272
        The target table's database schema
273
    table : str
274
        Database table on which to put the given comment
275
    geom_columns : list of str
276
        Names of all geometry columns in the table. This is required to return
277
        Geometry data type for those columns as SQL Alchemy does not recognize
278
        them correctly. Defaults to ['geom'].
279
280
    Returns
281
    -------
282
    list of dict
283
        Resource fields
284
    """
285
286
    # handle geometry columns
287
    if geom_columns is None:
288
        geom_columns = ["geom"]
289
    for col in geom_columns:
290
        ischema_names[col] = Geometry
291
292
    table = Table(
293
        table, MetaData(), schema=schema, autoload=True, autoload_with=engine()
294
    )
295
296
    return [
297
        {
298
            "name": col.name,
299
            "description": "",
300
            "type": str(col.type).lower(),
301
            "unit": "none",
302
        }
303
        for col in table.c
304
    ]
305
306
307
def sources():
308
    return {
309
        "bgr_inspee": {
310
            "title": "Salt structures in Northern Germany",
311
            "description": 'The application "Information System Salt Structures" provides information about the '
312
            "areal distribution of salt structures (stocks and pillows) in Northern Germany. With general structural "
313
            "describing information, such as depth, secondary thickness, types of use or state of exploration, queries "
314
            "can be conducted. Contours of the salt structures can be displayed at horizontal cross-sections at four "
315
            "different depths up to a maximum depth of 2000 m below NN. A data sheet with information and further "
316
            "reading is provided for every single salt structure. Taking into account the fact that this work was "
317
            "undertaken at a scale for providing an overview and not for investigation of single structures, the scale "
318
            "of display is limited to a minimum of 1:300.000. This web application is the product of a BMWi-funded "
319
            'research project "InSpEE" running from the year 2012 to 2015. The acronym stands for "Information system '
320
            "salt structures: planning basis, selection criteria and estimation of the potential for the construction "
321
            'of salt caverns for the storage of renewable energies (hydrogen and compressed air)".',
322
            "path": "https://produktcenter.bgr.de/terraCatalog/DetailResult.do?fileIdentifier=338136ea-261a-4569-a2bf-92999d09bad2",
323
            "license": [license_geonutzv("© BGR, Hannover, 2015")],
324
        },
325
        "bgr_inspeeds": {
326
            "title": "Flat layered salts in Germany",
327
            "description": "Which salt formations are suitable for storing hydrogen or compressed air? "
328
            "In the InSpEE-DS research project, scientists developed requirements and criteria for the assessment "
329
            "of suitable sites even if their exploration is still at an early stage and there is little knowledge of "
330
            "the salinaries' structures. Scientists at DEEP.KBB GmbH in Hanover, worked together with their project "
331
            "partners at the Federal Institute for Geosciences and Natural Resources and the Leibniz University "
332
            "Hanover, Institute for Geotechnics Hanover, to develop the planning basis for the site selection and for "
333
            "the construction of storage caverns in flat layered salt and multiple or double saliniferous formations. "
334
            "Such caverns could store renewable energy in the form of hydrogen or compressed air. While the previous "
335
            "project InSpEE was limited to salt formations of great thickness in Northern Germany, salt horizons of "
336
            "different ages have now been examined all over Germany. To estimate the potential, depth contour maps of "
337
            "the top and the base as well as thickness maps of the respective stratigraphic units and reference "
338
            "profiles were developed. Information on compressed air and hydrogen storage potential were given for the "
339
            "identified areas and for the individual federal states. The web service "
340
            '"Information system for flat layered salt" gives access to this data. The scale of display is limited '
341
            "to a minimum of 1:300.000. This geographic information is product of a BMWi-funded research project "
342
            '"InSpEE-DS" running from the year 2015 to 2019. The acronym stands for "Information system salt: '
343
            "planning basis, selection criteria and estimation of the potential for the construction of salt caverns "
344
            'for the storage of renewable energies (hydrogen and compressed air) - double saline and flat salt layers".',
345
            "path": "https://produktcenter.bgr.de/terraCatalog/DetailResult.do?fileIdentifier=630430b8-4025-4d6f-9a62-025b53bc8b3d",
346
            "license": [license_geonutzv("© BGR, Hannover, 2021")],
347
        },
348
        "bgr_inspeeds_data_bundle": {
349
            "title": "Informationssystem Salz: Planungsgrundlagen, Auswahlkriterien und Potenzialabschätzung für die "
350
            "Errichtung von Salzkavernen zur Speicherung von Erneuerbaren Energien (Wasserstoff und Druckluft) – "
351
            "Doppelsalinare und flach lagernde Salzschichten. Teilprojekt Bewertungskriterien und Potenzialabschätzung",
352
            "description": "Shapefiles corresponding to the data provided in figure 7-1 "
353
            "(Donadei, S., et al., 2020, p. 7-5). The energy storage potential data are provided per federal state "
354
            " in table 7-1 (Donadei, S., et al., 2020, p. 7-4). Note: Please include all bgr data sources when using "
355
            "the data.",
356
            "path": "https://dx.doi.org/10.5281/zenodo.4896526",
357
            "license": [license_geonutzv("???")],
358
        },
359
        "bgr_inspeeds_report": {
360
            "title": "Informationssystem Salz: Planungsgrundlagen, Auswahlkriterien und Potenzialabschätzung für die "
361
            "Errichtung von Salzkavernen zur Speicherung von Erneuerbaren Energien (Wasserstoff und Druckluft) – "
362
            "Doppelsalinare und flach lagernde Salzschichten. Teilprojekt Bewertungskriterien und Potenzialabschätzung",
363
            "description": "The report includes availability of saltstructures for energy storage and energy "
364
            "storage potential accumulated per federal state in Germany.",
365
            "path": "https://www.bgr.bund.de/DE/Themen/Nutzung_tieferer_Untergrund_CO2Speicherung/Downloads/InSpeeDS_TP_Bewertungskriterien.pdf?__blob=publicationFile&v=3",
366
            "license": [license_geonutzv("© BGR, Hannover, 2021")],
367
        },
368
        "demandregio": {
369
            "title": "DemandRegio",
370
            "description": "Harmonisierung und Entwicklung von Verfahren zur regionalen und "
371
            "zeitlichen Auflösung von Energienachfragen",
372
            "path": "https://doi.org/10.34805/ffe-119-20",
373
            "license": [license_ccby("© FZJ, TUB, FfE")],
374
        },
375
        "egon-data": {
376
            "titel": "eGon-data",
377
            "description": "Workflow to download, process and generate data sets"
378
            "suitable for the further research conducted in the project eGon (https://ego-n.org/)",
379
            "path": "https://github.com/openego/eGon-data",
380
            "licenses": [
381
                license_agpl(
382
                    "© 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"
383
                )
384
            ],
385
        },
386
        "Einspeiseatlas": {
387
            "title": "Einspeiseatlas",
388
            "description": "Im Einspeiseatlas finden sie sich die Informationen "
389
            "zu realisierten und geplanten Biomethanaufbereitungsanlagen - mit "
390
            "und ohne Einspeisung ins Gasnetz - in Deutschland und weltweit.",
391
            "path": "https://www.biogaspartner.de/einspeiseatlas/",
392
            "license": license_ccby("Deutsche Energie-Agentur (dena, 2021)"),
393
        },
394
        "era5": {
395
            "title": "ERA5 global reanalysis",
396
            "description": "ERA5 is the fifth generation ECMWF reanalysis for the global climate "
397
            "and weather for the past 4 to 7 decades. Currently data is available from 1950, "
398
            "split into Climate Data Store entries for 1950-1978 (preliminary back extension) and f"
399
            "rom 1979 onwards (final release plus timely updates, this page). ERA5 replaces the ERA-Interim reanalysis. "
400
            "See the online ERA5 documentation "
401
            "(https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation#ERA5:datadocumentation-Dataupdatefrequency) "
402
            "for more information.",
403
            "path": "https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation#ERA5:datadocumentation-Dataupdatefrequency",
404
            "license": [
405
                {
406
                    "name": "Licence to use Copernicus Products",
407
                    "title": "Licence to use Copernicus Products",
408
                    "path": "https://cds.climate.copernicus.eu/api/v2/terms/static/licence-to-use-copernicus-products.pdf",
409
                    "instruction": "This Licence is free of charge, worldwide, non-exclusive, royalty free and perpetual. "
410
                    "Access to Copernicus Products is given for any purpose in so far as it is lawful, whereas use "
411
                    "may include, but is not limited to: reproduction; distribution; communication to the public; "
412
                    "adaptation, modification and combination with other data and information; or any "
413
                    "combination of the foregoing",
414
                    "attribution": "Copernicus Climate Change Service (C3S) Climate Data Store",
415
                },
416
            ],
417
        },
418
        "hotmaps_industrial_sites": {
419
            "titel": "industrial_sites_Industrial_Database",
420
            "description": "Georeferenced industrial sites of energy-intensive industry sectors in EU28",
421
            "path": "https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database",
422
            "licenses": [
423
                license_ccby("© 2016-2018: Pia Manz, Tobias Fleiter")
424
            ],
425
        },
426
        "hotmaps_scen_buildings": {
427
            "titel": "scen_current_building_demand",
428
            "description": "Energy demand scenarios in buidlings until the year 2050 - current policy scenario",
429
            "path": "https://gitlab.com/hotmaps/scen_current_building_demand",
430
            "licenses": [
431
                license_ccby(
432
                    "© 2016-2018: Michael Hartner, Lukas Kranzl, Sebastian Forthuber, Sara Fritz, Andreas Müller"
433
                )
434
            ],
435
        },
436
        "mastr": {
437
            "title": "open-MaStR power unit registry",
438
            "description": "Raw data download Marktstammdatenregister (MaStR) data "
439
            "using the webservice. All data from the Marktstammdatenregister is included."
440
            "There are duplicates included. For further information read in the documentation"
441
            "of the original data source: https://www.marktstammdatenregister.de/MaStRHilfe/subpages/statistik.html",
442
            "path": "https://sandbox.zenodo.org/record/808086",
443
            "licenses": [
444
                licenses_datenlizenz_deutschland(
445
                    "© 2021 Bundesnetzagentur für Elektrizität, Gas, Telekommunikation, Post und Eisenbahnen"
446
                )
447
            ],
448
        },
449
        "nep2021": {
450
            "title": "Netzentwicklungsplan Strom 2035, Version 2021, erster Entwurf",
451
            "description": "Die vier deutschen Übertragungsnetzbetreiber zeigen mit "
452
            "diesem ersten Entwurf des Netzentwicklungsplans 2035, Version 2021, den "
453
            "benötigten Netzausbau für die nächsten Jahre auf. Der NEP-Bericht beschreibt "
454
            "keine konkreten Trassenverläufe von Übertragungsleitungen, sondern er "
455
            "dokumentiert den notwendigen Übertragungsbedarf zwischen Netzknoten. "
456
            "Das heißt, es werden Anfangs- und Endpunkte von zukünftigen Leitungsverbindungen "
457
            "definiert sowie konkrete Empfehlungen für den Aus- und Neubau der Übertragungsnetze "
458
            "an Land und auf See in Deutschland gemäß den Detailanforderungen im § 12 EnWG gegeben.",
459
            "path": "https://zenodo.org/record/5743452#.YbCoz7so8go",
460
            "license": [license_ccby("© Übertragungsnetzbetreiber")],
461
        },
462
        "openffe_gas": {
463
            "title": "Load Curves of the Industry Sector – eXtremOS solidEU Scenario (Europe NUTS-3)",
464
            "description": "Load Curves of the Industry Sector for the eXtremOS solidEU Scenario Scenario at NUTS-3-Level. "
465
            "More information at https://extremos.ffe.de/.",
466
            "path": "http://opendata.ffe.de/dataset/load-curves-of-the-industry-sector-extremos-solideu-scenario-europe-nuts-3/",
467
            "license": [license_ccby("© FfE, eXtremOS Project")],
468
        },
469
        "openstreetmap": {
470
            "title": "OpenStreetMap Data Extracts (Geofabrik)",
471
            "description": "Full data extract of OpenStreetMap data for defined"
472
            "spatial extent at ''referenceDate''",
473
            "path": "https://download.geofabrik.de/europe/germany-210101.osm.pbf",
474
            "licenses": [license_odbl("© OpenStreetMap contributors")],
475
        },
476
        "peta": {
477
            "title": "Pan-European Thermal Atlas, Peta version 5.0.1",
478
            "description": "Modelled Heat Demand distribution (in GJ per hectare grid cell) for residential and service "
479
            "heat demands for space heating and hot water for the year 2015 using HRE4 data and the combined "
480
            "top-down bottom-up approach of HRE4. "
481
            "National sector-specific heat demand data, derived by the FORECAST model in HRE4 for residential "
482
            "(delivered energy, for space heating and hot water) and service-sector (delivered energy, for space heating, hot "
483
            "water and process heat) buildings for the year 2015, were distributed using modelled, spatial "
484
            "statistics based floor areas in 100x100m grids and a population grid. "
485
            "For further information please see the documentation available on the Heat Roadmap Europe website, "
486
            "in particular D2.3 report 'Methodologies and assumptions used in the mapping'.",
487
            "path": "https://s-eenergies-open-data-euf.hub.arcgis.com/search",
488
            "license": [
489
                license_ccby(
490
                    "© Europa-Universität Flensburg, Halmstad University and Aalborg University"
491
                )
492
            ],
493
        },
494
        "pipeline_classification": {
495
            "title": "Technical pipeline characteristics for high pressure pipelines",
496
            "description": "Parameters for the classification of gas pipelines, "
497
            "the whole documentation could is available at: "
498
            "https://www.econstor.eu/bitstream/10419/173388/1/1011162628.pdf",
499
            "path": "https://zenodo.org/record/5743452",
500
            "license": license_ccby("© DIW Berlin, 2017"),
501
        },
502
        "schmidt": {
503
            "title": "Supplementary material to the masters thesis: "
504
            "NUTS-3 Regionalization of Industrial Load Shifting Potential in Germany using a Time-Resolved Model",
505
            "description": "Supplementary material to the named masters thesis, containing data on industrial processes"
506
            "for the estimation of NUTS-3 load shifting potential of suitable electrically powered industrial processes"
507
            "(cement milling, mechanical pulping, paper production, air separation).",
508
            "path": "https://zenodo.org/record/3613767",
509
            "licenses": [license_ccby("© 2019 Danielle Schmidt")],
510
        },
511
        "SciGRID_gas": {
512
            "title": "SciGRID_gas IGGIELGN",
513
            "description": "The SciGRID_gas dataset represents the European "
514
            "gas transport network (pressure levels of 20 bars and higher) "
515
            "including the geo-referenced transport pipelines,  compressor "
516
            "stations, LNG terminals, storage, production sites, gas power "
517
            "plants, border points, and demand time series. ",
518
            "path": "https://dx.doi.org/10.5281/zenodo.4896526",
519
            "license": license_ccby(
520
                " Jan Diettrich; Adam Pluta; Wided Medjroubi (DLR-VE)"
521
            ),
522
        },
523
        "seenergies": {
524
            "title": "D5 1 Industry Dataset With Demand Data",
525
            "description": "Georeferenced EU28 industrial sites with quantified annual excess heat volumes and demand data"
526
            "within main sectors: Chemical industry, Iron and steel, Non-ferrous metals, Non-metallic minerals, Paper and printing, and Refineries.",
527
            "path": "https://s-eenergies-open-data-euf.hub.arcgis.com/datasets/5e36c0af918040ed936b4e4c101f611d_0/about",
528
            "licenses": [license_ccby("© Europa-Universität Flensburg")],
529
        },
530
        "tyndp": {
531
            "title": "Ten-Year Network Development Plan (TYNDP) 2020 Scenarios",
532
            "description": "ENTSOs’ TYNDP 2020 Scenario Report describes possible European energy futures up to 2050. "
533
            "Scenarios are not forecasts; they set out a range of possible futures used by the ENTSOs to test future "
534
            "electricity and gas infrastructure needs and projects. The scenarios are ambitious as they deliver "
535
            "a low carbon energy system for Europe by 2050. The ENTSOs have developed credible scenarios that are "
536
            "guided by technically sound pathways, while reflecting country by country specifics, so that a pan-European "
537
            "low carbon future is achieved.",
538
            "path": "https://tyndp.entsoe.eu/maps-data",
539
            "license": [license_ccby("© ENTSO-E and ENTSOG")],
540
        },
541
        "vg250": {
542
            "title": "Verwaltungsgebiete 1:250 000 (Ebenen)",
543
            "description": "Der Datenbestand umfasst sämtliche Verwaltungseinheiten der "
544
            "hierarchischen Verwaltungsebenen vom Staat bis zu den Gemeinden "
545
            "mit ihren Grenzen, statistischen Schlüsselzahlen, Namen der "
546
            "Verwaltungseinheit sowie die spezifische Bezeichnung der "
547
            "Verwaltungsebene des jeweiligen Landes.",
548
            "path": "https://daten.gdz.bkg.bund.de/produkte/vg/vg250_ebenen_0101/2020/vg250_01-01.geo84.shape.ebenen.zip",
549
            "licenses": [
550
                licenses_datenlizenz_deutschland(
551
                    "© Bundesamt für Kartographie und Geodäsie "
552
                    "2020 (Daten verändert)"
553
                )
554
            ],
555
        },
556
        "zensus": {
557
            "title": "Statistisches Bundesamt (Destatis) - Ergebnisse des Zensus 2011 zum Download",
558
            "description": "Als Download bieten wir Ihnen auf dieser Seite zusätzlich zur "
559
            "Zensusdatenbank CSV- und teilweise Excel-Tabellen mit umfassenden Personen-, Haushalts- "
560
            "und Familien- sowie Gebäude- und Wohnungs­merkmalen. Die Ergebnisse liegen auf Bundes-, "
561
            "Länder-, Kreis- und Gemeinde­ebene vor. Außerdem sind einzelne Ergebnisse für Gitterzellen verfügbar.",
562
            "path": "https://www.zensus2011.de/SharedDocs/Aktuelles/Ergebnisse/DemografischeGrunddaten.html;jsessionid=E0A2B4F894B258A3B22D20448F2E4A91.2_cid380?nn=3065474",
563
            "license": [
564
                licenses_datenlizenz_deutschland(
565
                    "© Statistische Ämter des Bundes und der Länder 2014"
566
                )
567
            ],
568
        },
569
    }
570
571
572
def contributors(authorlist):
573
    contributors_dict = {
574
        "am": {
575
            "title": "Aadit Malla",
576
            "email": "https://github.com/aadit879",
577
        },
578
        "an": {
579
            "title": "Amélia Nadal",
580
            "email": "https://github.com/AmeliaNadal",
581
        },
582
        "cb": {
583
            "title": "Clara Büttner",
584
            "email": "https://github.com/ClaraBuettner",
585
        },
586
        "ce": {
587
            "title": "Carlos Epia",
588
            "email": "https://github.com/CarlosEpia",
589
        },
590
        "fw": {
591
            "title": "Francesco Witte",
592
            "email": "https://github.com/fwitte",
593
        },
594
        "gp": {
595
            "title": "Guido Pleßmann",
596
            "email": "https://github.com/gplssm",
597
        },
598
        "ik": {
599
            "title": "Ilka Cußmann",
600
            "email": "https://github.com/IlkaCu",
601
        },
602
        "ja": {
603
            "title": "Jonathan Amme",
604
            "email": "https://github.com/nesnoj",
605
        },
606
        "je": {
607
            "title": "Jane Doe",
608
            "email": "https://github.com/JaneDoe",
609
        },
610
        "ke": {
611
            "title": "Katharina Esterl",
612
            "email": "https://github.com/KathiEsterl",
613
        },
614
        "sg": {
615
            "title": "Stephan Günther",
616
            "email": "https://github.com/gnn",
617
        },
618
        "um": {
619
            "title": "Ulf Müller",
620
            "email": "https://github.com/ulfmueller",
621
        },
622
    }
623
    return [
624
        {key: value for key, value in contributors_dict[author].items()}
625
        for author in authorlist
626
    ]
627