Skip to content

Hanne - README changes #17

Merged
merged 6 commits into from
May 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,18 @@ Et eksempel på hvordan vi har implementert en enkel statistisk analyse for å u
##### Håndtering av skjevheter
Vi har møtt på noen skjevheter som for eksempel at temperaturen har vært urealistisk i perioder, for å rydde opp i dette har vi sjekket uteliggere, altså sjekket om verdiene ligger mer enn 3 standardavvik fra gjennomsnittet. Om en verdi ligger mer enn 3 standardavvik over eller under gjennomsnittet, har vi brukt `interpolate(method='linear', limit_direction='both')`, som "gjetter" verdien basert på veriden før og etter.

##### Visualiseringer av funnene våre
Vi har laget mange grafer som viser både temperatur, nedbør i både regn og snø, og vindmålinger for å visuelt formidle funnene våre. Disse grafene kan du finne i våre notebooks.
#### Visualiseringer av funnene våre
Vi har laget mange grafer som viser både temperatur, nedbør i både regn og snø, og vindmålinger for å visuelt formidle funnene våre. Disse grafene kan du finne i våre notebooks å se visuelt selv, men vil her gi mer detaljert dokumentasjon for visualiserings valgene våre.

I dette prosjektet har vi valgt å bruke ulike typer diagrammer for å visualisere værdata, spesielt temperatur og nedbør. Notebooksene våre inneholder ulike egenskaper, blant annet værdata for ulike tidsperioder. Vi har time for time av en valgt dag og sted, periode over flere dager (dager og sted blir valgt av bruker) og for et år (her velger bruker kun sted). Målet har vært å gjøre dataene forståelige og lett sammenlignbare for brukeren, samtidig som det gir en nøyaktig og tydelig fremstilling.

Ettersom temperatur er en kontinuerlig variabel som endrer seg gradvis over tid har vi valgt å bruke linjediagram for å visualisere temperaturdataen. Vi gikk for dette type diagrammet for temperatur fordi det viser utviklingen på en jevn og oversiktelig måte og gjør det lett å følge temperaturens stigning og fall. I tillegg, spesielt på diagrammet for et års periode, kan det gi brukeren en god forståelse av trender og sesongvariasjoner da x-aksen vår er månedene i året. Linjediagrammet gjør det også lettere enn for eksempel søylediagram, å lese mønstre og identifisere tidsperioder med veldig høy eller lav temperatur.

Søylediagram derimot følte vi var det beste alternative for visualisering av nedbør av snø og regn. Siden nedbør måles i mengde per tidsenhet (millimeter) gjør søylediagrammet det lett å sammenligne hvor mye nedbør som har falt i ulike perioder. Vi har også ulike farger på snø og regn for å enkelt kunne skille de. Søylediagrammet gjør det også lett å identifisere perioder med mye nedbør eller ingen nedbør basert på om søylen er høy eller lav/ikke eksisterende.

Scatterplot er et annet diagram vi har brukt. Dette mente vi var best egnet blant annet til når vi skulle visualisere temperaturverdiene for en dag opp mot gjennomsnittstemperaturen den dagen. Den gir en tydelig og enkel oversikt med punkter for temperaturen per time for en dag og bruker kan lett lese av diagrammet om punktene er over eller under gjennomsnittsstreken. Diagrammet gir en tydelig fremstilling av variasjonen i temperaturen i løpet av dagen og hvordan enkelttimer skiller seg fra resten og gjennomsnittet. Scatterplot egner seg godt her fordi det viser detaljene i hver enkelt måling, samtidig som det gir rom for å indikere trender på en presis måte uten å koble punktene sammen.

Vi har også lagt til en notebook med interaktive visualiseringer. Denne notebooken har nokså lik kode som `notebook_one_day_data`, men på den er det ikke interaktivt, noe som `notebook_interactive_data` tilbyr. Dette for at brukeren selv kan få bestemme visualiseringen de selv synes er best og kan få endre litt på effekter som for eksempel farge, scatterplotsstørrelse, om rutenett og gjennomsnitt er med eller ikke.


#### Oppgave 5 - Visualisering
Expand Down
Binary file added docs/KI_one_declaration.pdf
Binary file not shown.
6 changes: 5 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Documents
KI - declaration

Første deklarasjon:
[Se KI-deklarasjonen](./KI_one_declaration.pdf)
- Må åpnes som pdf view, dette kan installeres i extentions dersom man ikke har. Søk på pdf view og installer for eksempel: vscode-pdf eller PDF Viewer.

KI - declaration
Andre deklarasjon:
175 changes: 165 additions & 10 deletions notebooks/notebook_current_data.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,25 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/hanne/Documents/anvendt prosjekt/anvendt_mappe/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n",
" warnings.warn(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data fetch: ok\n"
]
}
],
"source": [
"import sys\n",
"import os\n",
Expand Down Expand Up @@ -51,15 +67,23 @@
"Skriv inn navn for til filen du vil lagre med dataen.\n",
"\n",
"Eks. test\n",
"Da vil filen lagres som data_**test**.json, i mappen \"../data/output_stedsnavn/data_{filnavn}.json\"\n",
"Da vil filen lagres som data_**test**.json, i mappen \"../data/output_current/data_{filnavn}.json\"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data has been written to /Users/hanne/Documents/anvendt prosjekt/anvendt_mappe/data/../data/output_current_data/data_ttggs.json\n"
]
}
],
"source": [
"# Gets the absolute path to the src folder\n",
"sys.path.append(os.path.abspath(\"../src\"))\n",
Expand All @@ -84,9 +108,45 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{'coord': {'lon': 10.7461, 'lat': 59.9127},\n",
" 'weather': [{'id': 800,\n",
" 'main': 'Clear',\n",
" 'description': 'clear sky',\n",
" 'icon': '01d'}],\n",
" 'base': 'stations',\n",
" 'main': {'temp': 15.97,\n",
" 'feels_like': 14.48,\n",
" 'temp_min': 13.64,\n",
" 'temp_max': 16.09,\n",
" 'pressure': 1017,\n",
" 'humidity': 33,\n",
" 'sea_level': 1017,\n",
" 'grnd_level': 993},\n",
" 'visibility': 10000,\n",
" 'wind': {'speed': 2.68, 'deg': 200, 'gust': 4.47},\n",
" 'clouds': {'all': 5},\n",
" 'dt': 1746536672,\n",
" 'sys': {'type': 2,\n",
" 'id': 46775,\n",
" 'country': 'NO',\n",
" 'sunrise': 1746500507,\n",
" 'sunset': 1746559526},\n",
" 'timezone': 7200,\n",
" 'id': 3143244,\n",
" 'name': 'Oslo',\n",
" 'cod': 200}"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import json\n",
"\n",
Expand Down Expand Up @@ -119,9 +179,104 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>main.temp</th>\n",
" <th>main.feels_like</th>\n",
" <th>main.pressure</th>\n",
" <th>main.humidity</th>\n",
" <th>main.sea_level</th>\n",
" <th>main.grnd_level</th>\n",
" <th>wind.speed</th>\n",
" <th>wind.gust</th>\n",
" <th>clouds.all</th>\n",
" <th>sys.country</th>\n",
" <th>sys.sunrise</th>\n",
" <th>sys.sunset</th>\n",
" </tr>\n",
" <tr>\n",
" <th>dt</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2025-05-06 13:04:32</th>\n",
" <td>Oslo</td>\n",
" <td>15.97</td>\n",
" <td>14.48</td>\n",
" <td>1017</td>\n",
" <td>33</td>\n",
" <td>1017</td>\n",
" <td>993</td>\n",
" <td>2.68</td>\n",
" <td>4.47</td>\n",
" <td>5</td>\n",
" <td>NO</td>\n",
" <td>2025-05-06 03:01:47</td>\n",
" <td>2025-05-06 19:25:26</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name main.temp main.feels_like main.pressure \\\n",
"dt \n",
"2025-05-06 13:04:32 Oslo 15.97 14.48 1017 \n",
"\n",
" main.humidity main.sea_level main.grnd_level \\\n",
"dt \n",
"2025-05-06 13:04:32 33 1017 993 \n",
"\n",
" wind.speed wind.gust clouds.all sys.country \\\n",
"dt \n",
"2025-05-06 13:04:32 2.68 4.47 5 NO \n",
"\n",
" sys.sunrise sys.sunset \n",
"dt \n",
"2025-05-06 13:04:32 2025-05-06 03:01:47 2025-05-06 19:25:26 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"\n",
Expand Down Expand Up @@ -178,7 +333,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.5"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
Loading