Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update documentation #5

Merged
merged 1 commit into from
Nov 22, 2024
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
27 changes: 22 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,34 @@ Til nå viser repoet:
- Håndtering av hemmeligheter
- Bruk av konfigurasjonsfiler ved hjelp av [Dynaconf]. Filstier, perioder osv. legges
in konfigurasjonsfil i stedet for å hardkodes i hver enkelt notebook.
- Versjonering av filer
- Versjonering av filer (delvis)
- Bruk av kodekvalitetsverktøy
- Organisering i form av funksjoner og automatisert kjøring av disse.
- Enhetstesting, det vil si testing av logikken i funksjonene.
- Automatisert testing ved hjelp av GitHub Actions
- Datatilstander: Fram til ferdige kildedata
- Kildomaten
- Datatilstander: Fram til pre-inndata

Det neste på blokka:

- Kildomaten
- Datatilstand: Fram til tilstand pre-inndata.
- Datatilstand: Fram til inndata.

## Konfigurasjonsfil og miljøer

I `config`-katalogen ligger det `settings.toml`-fil hvor man setter opp felles
konfigurasjon. Der definerer man blant annet navn på dapla-team, kortnavn på
statistikken, filstier, perioder osv. Den definerer tre "miljøer":

- **default:** Bruk av bøtter, enten på gamle Dapla eller på DaplaLab
- **daplalab_files:** Bruk bøtter montert som filer på DaplaLab
- **local_files:** Bruk av lokale filer under en `data`-katalog i repoet.

Valg av miljø gjør man i filen `src/functions/config.py`.

I koden brukes det gjennomgående type `str` for å angi filstier i bøtter,
og type `pathlib.Path` for å angi stier til filer på et filsystem.
Funksjonene som bruker filstier er generelle, og sjekker om filsti-typen er `str`
eller `pathlib.Path` for å bestemme hvilken implementasjon som skal velges.

## Hvordan komme i gang?

Expand Down Expand Up @@ -72,7 +89,7 @@ Hvis du vil teste det hos deg, så sett `env="local_files"` i fila

Nå er alt klart til å kjøre koden.

Foreløpig er det bare datafangst som er på plass.
Foreløpig er det bare det fra datafangst og fram til pre-inndata som er på plass.

Kjør filen `src/notebooks/collect_data.py` enten ved å åpne den i vscode eller Jupyter,
og kjør den derfra. Eller fra kommandolinja:
Expand Down
324 changes: 162 additions & 162 deletions tests/testdata/observations_p2011_v1.json
Original file line number Diff line number Diff line change
@@ -1,164 +1,164 @@
[
{
"sourceId": "SN18700:0",
"referenceTime": "2011-01-01T00:00:00.000Z",
"observations": [
{
"elementId": "min(air_temperature P1D)",
"value": -2.3,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "1",
"qualityCode": 2
},
{
"elementId": "mean(air_temperature P1D)",
"value": 2.1,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 0
},
{
"elementId": "max(air_temperature P1D)",
"value": 5.1,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "1",
"qualityCode": 2
},
{
"elementId": "sum(precipitation_amount P1D)",
"value": 0,
"unit": "mm",
"timeOffset": "PT6H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "max(wind_speed P1D)",
"value": 10,
"unit": "m/s",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 10
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
}
]
},
{
"sourceId": "SN5590:0",
"referenceTime": "2011-01-01T00:00:00.000Z",
"observations": [
{
"elementId": "min(air_temperature P1D)",
"value": -7.7,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "mean(air_temperature P1D)",
"value": -3.7,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 0
},
{
"elementId": "max(air_temperature P1D)",
"value": 0.8,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "sum(precipitation_amount P1D)",
"value": 0.6,
"unit": "mm",
"timeOffset": "PT6H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "max(wind_speed P1D)",
"value": 5.9,
"unit": "m/s",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 10
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
}
]
}
{
"sourceId": "SN18700:0",
"referenceTime": "2011-01-01T00:00:00.000Z",
"observations": [
{
"elementId": "min(air_temperature P1D)",
"value": -2.3,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "1",
"qualityCode": 2
},
{
"elementId": "mean(air_temperature P1D)",
"value": 2.1,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 0
},
{
"elementId": "max(air_temperature P1D)",
"value": 5.1,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "1",
"qualityCode": 2
},
{
"elementId": "sum(precipitation_amount P1D)",
"value": 0,
"unit": "mm",
"timeOffset": "PT6H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "max(wind_speed P1D)",
"value": 10,
"unit": "m/s",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 10
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
}
]
},
{
"sourceId": "SN5590:0",
"referenceTime": "2011-01-01T00:00:00.000Z",
"observations": [
{
"elementId": "min(air_temperature P1D)",
"value": -7.7,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "mean(air_temperature P1D)",
"value": -3.7,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 0
},
{
"elementId": "max(air_temperature P1D)",
"value": 0.8,
"unit": "degC",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 2
},
"timeOffset": "PT18H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "sum(precipitation_amount P1D)",
"value": 0.6,
"unit": "mm",
"timeOffset": "PT6H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
},
{
"elementId": "max(wind_speed P1D)",
"value": 5.9,
"unit": "m/s",
"level": {
"levelType": "height_above_ground",
"unit": "m",
"value": 10
},
"timeOffset": "PT0H",
"timeResolution": "P1D",
"timeSeriesId": 0,
"performanceCategory": "C",
"exposureCategory": "2",
"qualityCode": 2
}
]
}
]