Hopp til innhold
  • Kategorier
  • Emneord
  • Siste
  • Populære
  • Brukere
  • Grupper
Lukk
Logo
K

kyrre.nordhagen

@kyrre.nordhagen
Om
Innlegg
1
Emner
1
Delinger
0
Grupper
0
Følgere
0
Følger
0

Innlegg

Siste Best Kontroversiell

  • Magasinstatistikk
    K kyrre.nordhagen

    Når politikere, analytikere eller andre skal forklare, eller bortforklare 😊, kraftprisene henvises det ofte til magasinfyllingen i norske vannmagasiner. Nå er spørsmålet, vil vi ha nok vann til vinteren?

    De underliggende dataene er enklere tilgjengelig enn hva mange kanskje tror. Norges vassdrags- og energidirektorat (NVE) har åpne API-er for disse datasettene som oppdateres ukentlig. I datakatalogen kan du finne veien til magasinstatistikk fra NVE. Mer informasjon om oppbyggingen av datasettet finnes her.

    API-er for magasinstatistikk
    Det er flere API-er fra denne statistikken. Her har vi to av de:

    • https://nvebiapi.nve.no/api/Magasinstatistikk/HentOffentligDataMinMaxMedian. API-et gir et datasett over minimum-, maksimum- og medianverdier.

    • https://nvebiapi.nve.no/api/Magasinstatistikk/HentOffentligData. API-et gir et datasett med ca. 13 000 rader med ukentlig oppdatering fra 1995.

    Disse dataene kan benyttes for mange formål og fremstillinger. Nedenfor har jeg vist et par eksempler.

    Eksempel: Utvikling av fyllingsgraden for hele landet så langt i år

    Magasin_NO_ggplot.jpeg

    I grafen ser vi utviklingen av fyllingsgraden for Norge i år, mot historisk minimums- og maksimumsnivåer. Vi ser at fyllingsgraden i dag er rett under 70% for landet samlet sett.

    Eksempel: Store variasjoner i fyllingsgrad mellom de ulike områdene

    Magasin_plot_grid.jpeg

    Grafene viser fyllingsgraden for ulike prisområder i Norge. For Østlandet (NO1) og Sør-Norge (NO2), de to øverste grafene, er det historisk lav fyllingsgrad. Det er situasjonen her som har bidratt til spekulasjonene om vi har nok vann til vinteren. For Nord-Norge (NO4) derimot, er det historisk høy fyllingsgrad på 90%. Disse variasjonene er ett viktig element til de store prisforskjellene en har sett mellom nord og sør.

    Grafene er utarbeidet i R, men kan følgelig utarbeides i mange andre verktøy. Legger ved koden for de siste eksemplet, som sikkert har rom for forbedringer.

    #pakker(samlinger av funksjonalitet i R) for oppgaven NB! Må installeres først
    library(jsonlite) 
    library(tidyverse) #inneholder bl.a. ggplot2 som vi benytter for plot
    library(httr)
    library(gridExtra) #for flere plot
    #1) Henter inn datasettene
    dat1 <- "https://nvebiapi.nve.no/api/Magasinstatistikk/HentOffentligDataMinMaxMedian" %>%
     fromJSON() #datasett over min, max og median
     
    dat2 <- "https://nvebiapi.nve.no/api/Magasinstatistikk/HentOffentligData" %>%
     fromJSON() #datasett over magasinfylling siden 1995 med ca 13000 rader
    
    #2) Strukturerer data
    df1 <- dat1[dat1$omrType %in% c("EL"), ]
    df1 <- df1[,c(2,3,4,8)]
    colnames(df1)<- c("omrnr","Uke", "min", "maks")
    df1 <- gather(df1, Aar, fyllingsgrad, min:maks, factor_key = FALSE)
    
    df2 <- dat2[dat2$omrType %in% c("EL"), ]
    df2 <- df2[,(3:6)]
    colnames(df2) <- c("omrnr","Aar","Uke","fyllingsgrad")
    df2 <- df2[df2$Aar %in% c(2022), ] 
    df2$Aar = paste0('yr', df2$Aar)
    
    df3 <- bind_rows(df1, df2) #lager en tabell av df1 og df2
    
    #3)Lager og formaterer plot (det som er felles). Benytter ggplot-pakken. 
    p1 <- ggplot(df3, aes(x = Uke, y = fyllingsgrad*100, colour = Aar, size = Aar))+  
     labs(x= "Ukenummer", y = "Fyllingsgrad (%)", size = 0.7)+
     theme(panel.background = element_rect(fill="grey95"))+
     theme(legend.position = "bottom",legend.justification="top", legend.title = element_blank())+
     scale_x_continuous(breaks = seq(0, 52, by = 5))+
     scale_y_continuous(breaks = seq(0, 100, by = 10), limits = c(0,100))+
     scale_color_manual(values = c(maks = "black", yr2022 = "red", min = "black"))+
     scale_size_manual(name= "", values = c(maks = 0.7, yr2022 = 0.9, min = 0.7), guide = "none")
    
    #4) Lager de ulike plotene (dataene er forskjellig) for de ulike prisomraadene:
    NO1 <- p1 + 
     geom_line(data = df3[df3$omrnr %in% c(1), ], ) + 
     labs(title = "Magasinfylling i ulike prisomraader mot min- og maksimumsnivaer", subtitle =   "Prisomraade: NO1", caption = "")
    
    NO2 <- p1 + 
     geom_line(data = df3[df3$omrnr %in% c(2),], ) + 
     labs(title = "", subtitle = "Prisomrade: NO2", caption = "")
    
    NO3 <- p1 + 
     geom_line(data = df3[df3$omrnr %in% c(3), ], ) + 
     labs(title = "", subtitle = "Prisomrade: NO3", caption = "")
    
    NO4 <- p1 + 
     geom_line(data = df3[df3$omrnr %in% c(4), ], ) + 
     labs(title = "", subtitle = "Prisomrade: NO4", caption = "Data: www.nve.no")
    
    #5) De ulike plotene:   
    grid.arrange(NO1,NO2,NO3, NO4, nrow=2, ncol=2)
    
    
    Gode eksempler på bruk energi magasinstatistikk nve strømpriser
  • Logg inn

  • Logg inn eller registrer deg for å søke.
  • Første innlegg
    Nyeste innlegg
0
  • Kategorier
  • Emneord
  • Siste
  • Populære
  • Brukere
  • Grupper