Dit is een vervolg van METAR verwerken voor luchtvaart (deel 3)1. Je mag vertrekken van de oplossing van die oefening.

Er zijn twee functies parse_wolkenformaties en parse_weerfenomeen(weerfenomeen) waar een if-else gebruikt werd. Dit wordt nu aangepast door het gebruik van een dictionary. Bovendien worden nu veel meer weerfenomenen correct verwerkt:


ElementsyntaxVertalingUitleg
BKN038 Bestaat altijd uit 3 letters en 3 cijfers. met aanzienlijke wolken op 3800 voet Wolkenformaties: de eerste 3 letters geven aan weinig (FEW = few), verspreide (SCT =scattered), aanzienlijke (BKN = broken) of overtrokken (OVC = overcast).
De 3 laatste cijfers bepalen de hoogte van de wolken in honderden voet.
RA+ Bestaat uit 2 of 3 tekens Het regent zwaar. In Metar.csv2 vind je de vertaling van alle weerfenomenen die moeten werwerkt worden.
Er is geen aparte verwerking nodig voor +/- .

Opdracht

Gebruik in beide functies een dictionary. Je mag dus if enkel gebruiken in de functie parse_wolkenformaties om de lengte van de parameter te controleren.
  1. In de functie parse_wolkenformaties initialiseer je in de code de dictionary met de vier mogelijke wolkenformaties (="hard-gecodeerd").
  2. In de functie parse_weerfenomeen(weerfenomeen) gebruik je Metar.csv3 om de dictionary te initialiseren

Voorbeelden met correcte uitvoer

>>> parse_wolkenformaties("BKN012")
met aanzienlijke wolken op 1200 voet.
>>> parse_weerfenomeen("SQ")
Er zijn zware windstoten.
>>> parse_weerfenomeen("RA+")
Het regent zwaar.