Drop hier links of afbeeldingen om ze aan de editor toe te voegen.
Dit is een vervolg van METAR verwerken voor luchtvaart (deel 3). 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.csv 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.csv 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.