Weer en klimaat zijn van groot belang in onze hedendaagse maatschappij. Krachtigere supercomputers laten gelukkig ook toe om steeds nauwkeurigere weersvoorspellingen te maken op basis van lokale informatie over het weer.

weerstation:vlinder17
Leerlingen van het Sint-Augustinusinstituut (Bree) zijn net klaar met het installeren van VLINDER weerstation 17 in Oudsbergen.

VLINDER1 is een unieke citizen science project dat gecoördineerd wordt door de Universiteit Gent (België). Vandaag beheert het een netwerk van 70 weerstations in zeer diverse landschappen. De locaties zijn gekozen zodat uiteenlopende landschappen in Vlaanderen en Brussel vertegenwoordigd zijn. Sommige meetstations bevinden zich in sterk verstedelijkte en industriële omgevingen, maar er zijn er ook in duinen, bossen en meren. Heel wat meetstations konden geplaatst worden dankzij medewerking en sponsoring van scholen, lokale overheid en bedrijven.

Opgave

Het tekstbestand weather.csv2 bevat een reeks metingen die verzameld werden via de weerstations uit het VLINDER-netwerk. De eerste regel van het bestand bevat een hoofding. Elke volgende regel bevat meetresultaten van een weerstation op een bepaald moment, bestaande uit elf velden die telkens van elkaar worden gescheiden door een komma: i) unieke code van meetstation (Station), ii) stad of gemeente waar meetstation staat (City), iii) plaatsbeschrijving van meetstation (Name), iv) sponsor van meetstation (Sponsor), v) tijdstip waarop meting gebeurde (Time), vi) luchtvochtigheid (Humidity), vii) luchtdruk (Pressure), viii) neerslagintensiteit (RainIntensity), ix) neerslagvolume (RainVolume), x) temperatuur (Temperature) en xi) windsnelheid (WindSpeed). De inhoud van een veld bevat zelf geen komma's.

Gevraagd wordt om — gebruikmakend van de teksteditors vi of vim — een reeks commando's op te stellen die achtereenvolgens de volgende opdrachten uitvoeren. Probeer voor elke opdracht zo weinig mogelijk commando's te gebruiken en zorg er voor dat elk van deze commando's bestaat uit zo weinig mogelijk tekens. Alle opdrachten moeten na elkaar uitgevoerd worden. De opdrachten mogen de eerste regel (hoofding) niet wijzigen, tenzij dit expliciet anders vermeld staat. Ter controle kan je gebruikmaken van de meegeleverde bestanden weather.i.csv (ZIP3), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Verwijder alle meetresultaten van weerstations zonder sponsor. Zo moet

    Station,City,Name,Sponsor,Time,Humidity,Pressure,RainIntensity,RainVolume,Temperature,WindSpeed
    vlinder71,Gent,Sterrenwacht A. Pien,UGent Volkssterrenwacht Armand Pien,Thu 18 Aug 2022 05:50:00 UTC,44.0,1004.71,0.0,0.0,25.4,4.8
    vlinder59,Melle,Proefhoeve 2,Universiteit Gent,Wed 17 Aug 2022 16:00:00 UTC,89.0,1011.56,0.0,0.2,20.8,3.0
    vlinder23,Sint-Laureins,Boerekreek,De Boerekreek,Wed 17 Aug 2022 15:05:00 UTC,91.0,1011.86,0.0,0.0,21.0,0.7
    vlinder17,Oudsbergen,Oudsberg,Nationaal Park Hoge Kempen,Thu 18 Aug 2022 03:50:00 UTC,95.0,1012.7,0.0,0.2,17.1,2.1
    vlinder19,Brussel,Koninklijk Paleis,,Wed 17 Aug 2022 17:45:00 UTC,77.0,1010.91,0.0,0.0,22.4,0.9
    vlinder49,Sint-Niklaas,Centrum,Stad Sint-Niklaas,Thu 18 Aug 2022 02:50:00 UTC,92.0,1014.14,0.0,2.0,17.0,0.0
    …

    bijvoorbeeld omgezet worden naar (weather.1.csv4)

    Station,City,Name,Sponsor,Time,Humidity,Pressure,RainIntensity,RainVolume,Temperature,WindSpeed
    vlinder71,Gent,Sterrenwacht A. Pien,UGent Volkssterrenwacht Armand Pien,Thu 18 Aug 2022 05:50:00 UTC,44.0,1004.71,0.0,0.0,25.4,4.8
    vlinder59,Melle,Proefhoeve 2,Universiteit Gent,Wed 17 Aug 2022 16:00:00 UTC,89.0,1011.56,0.0,0.2,20.8,3.0
    vlinder23,Sint-Laureins,Boerekreek,De Boerekreek,Wed 17 Aug 2022 15:05:00 UTC,91.0,1011.86,0.0,0.0,21.0,0.7
    vlinder17,Oudsbergen,Oudsberg,Nationaal Park Hoge Kempen,Thu 18 Aug 2022 03:50:00 UTC,95.0,1012.7,0.0,0.2,17.1,2.1
    vlinder49,Sint-Niklaas,Centrum,Stad Sint-Niklaas,Thu 18 Aug 2022 02:50:00 UTC,92.0,1014.14,0.0,2.0,17.0,0.0
    vlinder07,Mechelen,Noord,Stad Mechelen,Thu 18 Aug 2022 07:55:00 UTC,92.0,1014.41,0.0,2.4,19.2,0.9
    …
  2. Zet het tijdstip waarop de metingen gebeurde (Time) om naar formaat YYYY-MM-DD hh:mm. Zo moet het tijdstip Wed 17 Aug 2022 18:25:00 UTC bijvoorbeeld omgezet worden naar 2022-08-17 18:25. Hierbij mag je gebruikmaken van het feit dat alle metingen in het bestand gebeurden in de maand augustus en telkens op exact nul seconden van de minuut. We krijgen dan (weather.2.csv5)

    Station,City,Name,Sponsor,Time,Humidity,Pressure,RainIntensity,RainVolume,Temperature,WindSpeed
    vlinder71,Gent,Sterrenwacht A. Pien,UGent Volkssterrenwacht Armand Pien,2022-08-18 05:50,44.0,1004.71,0.0,0.0,25.4,4.8
    vlinder59,Melle,Proefhoeve 2,Universiteit Gent,2022-08-17 16:00,89.0,1011.56,0.0,0.2,20.8,3.0
    vlinder23,Sint-Laureins,Boerekreek,De Boerekreek,2022-08-17 15:05,91.0,1011.86,0.0,0.0,21.0,0.7
    vlinder17,Oudsbergen,Oudsberg,Nationaal Park Hoge Kempen,2022-08-18 03:50,95.0,1012.7,0.0,0.2,17.1,2.1
    vlinder49,Sint-Niklaas,Centrum,Stad Sint-Niklaas,2022-08-18 02:50,92.0,1014.14,0.0,2.0,17.0,0.0
    …
  3. Verwijder (ook in de hoofding) het veld met de neerslagintensiteit (RainIntensity) en hernoem het veld met het neerslagvolume (RainVolume) in de hoofding naar Rain. We krijgen dan (weather.3.csv6)

    Station,City,Name,Sponsor,Time,Humidity,Pressure,Rain,Temperature,WindSpeed
    vlinder71,Gent,Sterrenwacht A. Pien,UGent Volkssterrenwacht Armand Pien,2022-08-18 05:50,44.0,1004.71,0.0,25.4,4.8
    vlinder59,Melle,Proefhoeve 2,Universiteit Gent,2022-08-17 16:00,89.0,1011.56,0.2,20.8,3.0
    vlinder23,Sint-Laureins,Boerekreek,De Boerekreek,2022-08-17 15:05,91.0,1011.86,0.0,21.0,0.7
    vlinder17,Oudsbergen,Oudsberg,Nationaal Park Hoge Kempen,2022-08-18 03:50,95.0,1012.7,0.2,17.1,2.1
    vlinder49,Sint-Niklaas,Centrum,Stad Sint-Niklaas,2022-08-18 02:50,92.0,1014.14,2.0,17.0,0.0
    …
  4. Vervang de inhoud van het sponsorveld (Sponsor) door stad of gemeente als het meetstation dat de meting uitvoerde gesponsord werd door de stad (resp. de gemeente) waar het meetstation staat (City). Dit laatste is het geval als een meetstation in stad X (resp. gemeente X) (City) een sponsor (Sponsor) heeft die beschreven wordt als stad X (resp. gemeente X), waarbij we geen onderscheid maken tussen hoofdletters en kleine letters. Zo moet

    Station,City,Name,Sponsor,Time,Humidity,Pressure,Rain,Temperature,WindSpeed
    …
    vlinder49,Sint-Niklaas,Centrum,Stad Sint-Niklaas,2022-08-18 02:50,92.0,1014.14,2.0,17.0,0.0
    vlinder07,Mechelen,Noord,Stad Mechelen,2022-08-18 07:55,92.0,1014.41,2.4,19.2,0.9
    vlinder63,Mechelen,Nekkerspoel,Stad Mechelen,2022-08-17 21:20,91.0,1012.92,0.2,18.2,0.0
    vlinder15,Asse,Koereit,AllThingsTalk,2022-08-18 07:25,95.0,1014.25,1.4,18.5,0.9
    vlinder02,Gent,Sterre,Universiteit Gent,2022-08-18 02:40,97.0,1014.41,25.6,16.2,0.2
    …
    vlinder32,Heist-op-den-Berg,centrum,Gemeente Heist-op-den-Berg,2022-08-18 08:05,95.0,1014.53,3.8,18.2,0.0
    vlinder35,Keerbergen,Campus,Gemeente Keerbergen,2022-08-17 19:20,86.0,1012.02,0.0,20.1,0.0
    …

    bijvoorbeeld omgezet worden naar (weather.4.csv7)

    Station,City,Name,Sponsor,Time,Humidity,Pressure,Rain,Temperature,WindSpeed
    …
    vlinder49,Sint-Niklaas,Centrum,stad,2022-08-18 02:50,92.0,1014.14,2.0,17.0,0.0
    vlinder07,Mechelen,Noord,stad,2022-08-18 07:55,92.0,1014.41,2.4,19.2,0.9
    vlinder63,Mechelen,Nekkerspoel,stad,2022-08-17 21:20,91.0,1012.92,0.2,18.2,0.0
    vlinder15,Asse,Koereit,AllThingsTalk,2022-08-18 07:25,95.0,1014.25,1.4,18.5,0.9
    vlinder02,Gent,Sterre,Universiteit Gent,2022-08-18 02:40,97.0,1014.41,25.6,16.2,0.2
    …
    vlinder32,Heist-op-den-Berg,centrum,gemeente,2022-08-18 08:05,95.0,1014.53,3.8,18.2,0.0
    vlinder35,Keerbergen,Campus,gemeente,2022-08-17 19:20,86.0,1012.02,0.0,20.1,0.0
    …
  5. Rangschik alle metingen alfabetisch op stad/gemeente (City), oplopend volgens tijdstip waarop de meting gebeurde (Time) en aflopend volgens temperatuur (Temperature). We krijgen dan (weather.5.csv8)

    Station,City,Name,Sponsor,Time,Humidity,Pressure,Rain,Temperature,WindSpeed
    vlinder10,Aalst,Centrum,SOLVA,2022-08-17 11:50,84.0,1011.3,0.0,21.9,0.1
    vlinder09,Aalst,Heuvelpark,SOLVA,2022-08-17 11:50,85.0,1011.37,0.0,21.3,1.6
    vlinder10,Aalst,Centrum,SOLVA,2022-08-17 11:55,83.0,1011.31,0.0,22.0,4.6
    vlinder09,Aalst,Heuvelpark,SOLVA,2022-08-17 11:55,84.0,1011.41,0.0,21.4,1.8
    vlinder10,Aalst,Centrum,SOLVA,2022-08-17 12:00,82.0,1011.43,0.0,22.1,2.7
    …