diff --git a/README.md b/README.md index 4354a6c..d5c10d8 100644 --- a/README.md +++ b/README.md @@ -1 +1,53 @@ # Anvendt mappe + +### Mappe del 1 + +#### Vår visjon av oppgaven +Vår visjon, og ønske om sluttprodukt, er en værapplikasjon med mange muligheter som: +- Velge ønsket sted, å få relevant tidsdata for dagen. +- Velge ønsket tidsperiode, på inntil 7-dager, og sted for å få hisoriske værdata. +- Velge ønsket tidsperiode, og 2 steder for å sammenligne værdata innenfor samme tidsperiode. +- Velge ønsket sted, og sammenligne to like lange tidsperioder fra ønsket år, enten samme tid eller to forsjellige tider. +- Velge ønsket sted, å få en prediksjon på fremtidig vær. + +#### Oppgave 1 - Sett opp utviklingsmiljø +I oppsettet av utviklingmsiljøet har vi fokusert på å innstallere relevante biblioteker, s.feks: +- Numpy +- Matplotlib +- Pandas +- Jupyper Notebook + +#### Oppgave 2 - Datainnsamling +For å finne data, startet vi å lete på Kaggle, og fant et interessant datasett, men som ikke passet helt til prosjektets behov. + +Da begynte vi å lete etter API-er, først på Metrologisk Institutt: +- [Airqualityforecast](https://api.met.no/weatherapi/airqualityforecast/0.1/documentation) + - Vanskelig å kunne hente data fra ønsket sted, komplisert request med masse data +- [Frost](https://frost.met.no/index.html) + - Vanskelig å kunne hente data fra ønsket sted, stasjonsbasert +- [Locationforecast](https://api.met.no/weatherapi/locationforecast/2.0/documentation) + - Enkel å finne data fra ønsket sted, men bare en forecast, så finner ikke historiske data + +Ettersom ingen av de fra MET funket etter vårt ønske, søkte vi videre på nettet, og kom over: +- [OpenWeatherMap API](https://openweathermap.org/) + - Denne inneholder forecast data, men det er også mulig å hente historiske data. + - Med en student profil, får vi gratis tilgang på masse data. Dermed vil vi kunne requeste historiske data fra API-en. + +##### Henting av data +For å hente data fra OpenWeatherMap API-en har vi skrevet en funskjon som tar inn stedsnavn, startdato og sluttdato, den legger da ønskede verdier inn i url-en og requester for ønsket sted og tidsperiode, sammen med API-key som er lagret i en env-fil og importert. + +Funksjonen er lagt inn i Juputer notebook filen, som spør brukeren etter input. Når funksjonen er kjørt og vi får tilbake respons-koden '200', som betyr ok, vil det printes at dataen er hentet. Om koden ikke er '200' vil vi få en feilmelding, og koden printes. + +##### Skriving av data til fil +Når dataen er hentet velger vi å skrive den over på en json-fil, som gjør det lettere å hente ut ønsket data senere. + +Funksjonen tar inn data og ønsket filnavn, og sjekker om vi har mappen 'data', med en annen mappe 'output_stedsnavn'. Dersom vi ikke skulle ha de mappene, som er tilfellet da vi har lagt denne mappen i .gitignore for å unngå kopiering av individuelle test-data ol., vil funksjonen lage mappene og deretter skrive dataen til en json-fil med navnet 'data_{filnavn}.json. + +Funksjonen returnerer en print setning når dataen er skrevet, og legger ved filpath + + +##### Hente data fra fil + + + +#### Oppgave 3 - Databehandling diff --git a/src/my_package/fetch_data.py b/src/my_package/fetch_data.py index edbc9bc..a3097ef 100644 --- a/src/my_package/fetch_data.py +++ b/src/my_package/fetch_data.py @@ -26,7 +26,7 @@ def fetch_data(start_date, end_date, city_name): # f-string url, to add the "custom" variables to the API-request - url = f"https://history.openweathermap.org/data/2.5/history/city?q={city_name},{"NO"}&units=metric&type=hour&start={start_date}&end={end_date}&appid={API_KEY}" + url = f"https://history.openweathermap.org/data/2.5/history/city?q={city_name},NO&units=metric&type=hour&start={start_date}&end={end_date}&appid={API_KEY}" # Saves the API-request for the url response = requests.get(url)