1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # RF temperature modeling
- #
- # Read in data
- library(tidyverse)
- library(lubridate)
- # Read in the data as a dataframe
- temps <- read_csv('raw_temps.csv')
- # Make sure all readings are from same station
- temps <- dplyr::filter(temps, NAME == 'SEATTLE TACOMA INTERNATIONAL AIRPORT, WA US')
- # Create month, day, and week columns
- temps <- mutate(temps, year = lubridate::year(DATE),
- month = lubridate::month(DATE),
- day = lubridate::day(DATE),
- week = lubridate::wday(DATE, label = TRUE)) %>%
- arrange(DATE)
- # Create the past max temperature columns
- temps$temp_1 <- c(NA, temps$TMAX[1:{nrow(temps) - 1}])
- temps$temp_2 <- c(NA, NA, temps$TMAX[1:{nrow(temps) - 2}])
- # Shift the average wind speed, precipitation, and snow depth
- temps$AWND <- c(NA, temps$AWND[1:{nrow(temps) - 1}])
- temps$PRCP <- c(NA, temps$PRCP[1:{nrow(temps) - 1}])
- temps$SNWD <- c(NA, temps$SNWD[1:{nrow(temps) - 1}])
- # Read in the averages as a dataframe
- averages <- read_csv('hist_averages.csv')
- # Create columns for the month and day
- averages$month <- as.numeric(substr(averages$DATE, 5, 6))
- averages$day <- as.numeric(substr(averages$DATE, 7, 8))
- # Join the averages to the temperature measurements
- temps <- merge(temps, averages[, c('month', 'day', 'DLY-TMAX-NORMAL')],
- by = c('month', 'day'), all.x = TRUE) %>% arrange(DATE)
- # Select and order relevant columns
- temps <- dplyr::select(temps, year, month, day, week, AWND, PRCP, SNWD,
- temp_2, temp_1, `DLY-TMAX-NORMAL`, TMAX)
- # Rename columns
- names(temps) <- c('year', 'month', 'day', 'weekday', 'ws_1', 'prcp_1', 'snwd_1',
- 'temp_2', 'temp_1', 'average', 'actual')
- # Friend predictions
- temps$friend <- sapply(temps$average, function(x)
- round(runif(1, min = x - 20, max = x + 20)))
- # Remove first two rows
- temps <- temps[-c(1,2), ]
- # Remove na
- temps <- temps[complete.cases(temps), ]
- # Summary of data
- summary(temps)
- # Write to csv file
- write_csv(temps, 'temps_extended.csv')
|