Package: dwdwfsapi
dwdwfsapiPython client to retrieve data provided by DWD via their geoserver WFS APIThe DWD (Deutscher Wetterdienst) publishes various weather information for Germany.
The data is published via theirGeoserver. For a more information have a lookhereandhere.Installpip install dwdwfsapiUsageThe WFS API currently consists only of one module for retrieving the current weather warnings.Weather warnings moduleQuickstart examplePython codefrom dwdwfsapi import DwdWeatherWarningsAPI
dwd = DwdWeatherWarningsAPI('813073088')

if dwd.data_valid:
    print(f"Warncell id: {dwd.warncell_id}")
    print(f"Warncell name: {dwd.warncell_name}")
    print(f"Number of current warnings: {len(dwd.current_warnings)}")
    print(f"Current warning level: {dwd.current_warning_level}")
    print(f"Number of expected warnings: {len(dwd.expected_warnings)}")
    print(f"Expected warning level: {dwd.expected_warning_level}")
    print(f"Last update: {dwd.last_update}")
    print('-----------')
    for warning in dwd.current_warnings:
        print(warning)
        print('-----------')
    for warning in dwd.expected_warnings:
        print(warning)
        print('-----------')Result (formatted for better readability)Warncell id: 813073088
Warncell name: Stadt Stralsund
Number of current warnings: 0
Current warning level: 0
Number of expected warnings: 1
Expected warning level: 1
Last update: 2020-04-18 17:57:29.274000+00:00
-----------
{
    'start_time': datetime.datetime(2020, 4, 18, 23, 0, tzinfo=datetime.timezone.utc),
    'end_time': datetime.datetime(2020, 4, 19, 5, 0, tzinfo=datetime.timezone.utc),
    'event': 'FROST',
    'event_code': 22,
    'headline': 'Amtliche WARNUNG vor FROST',
    'description': 'Es tritt leichter Frost um 0 Â°C auf. In BodennÃ¤he wird leichter Frost bis -4 Â°C erwartet.',
    'instruction': None, 'level': 1,
    'parameters':
    {
        'Lufttemperatur': '~0 [Â°C]',
        'Bodentemperatur': '>-4 [Â°C]'
    },
    'color': '#ffff00'
}
-----------Detailed descriptionMethods:__init__(identifier)Create a new weather warnings API class instanceTheidentifiercan either be a so calledwarncell id(int), awarncell name(str) or agps location(tuple).
It is heavily advised to usewarncell idoverwarncell namebecause the name is not unique in some cases. Thegps locationconsists of the latitude and longitude in this order. Keeping this order for the tuple is important for
the query to work correctly.A list auf valid warncell ids and names can be foundhere.
Some of the warncells are outdated but still listed. If init fails search the list for a similar sounding warncell.Methodupdate()is automatically called at the end of a successfull init.update()Update data by querying DWD server and parsing resultFunction should be called regularly, e.g. every 15minutes, to update the data stored in the class attributes.Attributes (read only):data_valid : boolA flag wether or not the other attributes contain valid valueswarncell_id : intThe id of the selected warncellwarncell_name : strThe name of the selected warncellIf the name is not unique" (not unique used ID)!"will be added to the namelast_update : datetimeThe UTC timestamp of the last updatecurrent_warning_level : intHighest currently active warning levelRange: 0 (=no warning) to 4 (=extreme weather)current_warnings : list of dictsDictionary containing all currently active warnings ("Wetterwarnungen", urgency="immediate")See section warning dictionary for more detailsexpected_warning_level : intHighest expected warning levelRange: 0 (=no warning) to 4 (=extreme weather)expected_warnings : list of dictsDictionary containing all expected warnings ("Vorabinformationen", urgency="future")See section warning dictionary for more details
expected_warnings : dictWarning dictionarystart_time : datetimeUTC timestamp when the warning startsend_time : datetimeUTC timestamp when the warning endsevent: strString representation of the warning eventevent_code: intInteger representation of the warning eventFor more details have a lookhereheadline : strThe official warning headlinedescription : strA details warning descriptioninstruction : strInstructions and safety noticesurgency : strWarning urgency (either "immediate" or "future")level : intWarning levelRange: 0 (=no warning) to 4 (=extreme weather)parameters : dictDictionary containing warning specific parametersFor more details have a lookherecolor : strWarning color formatted #rrggbb