R/input_NCDC_CDO_rf.R

Defines functions input_NCDC_CDO_rf

#' read input rainfall data
#'
#' \code{input_NCDC_CDO_rf} takes as input a csv file and reads the rainfall data
#'
#' @param file csv file of rainfall data from NCDC airport - can be downloaded here:
#' https://www.ncdc.noaa.gov/cdo-web/orders?email=lhenneman@gmail.com&id=875479
#' @return This function returns a list of dates and rainfall amounts for each location

input_NCDC_CDO_rf <- function( file){
  #import data file
  rf.data <- fread( file,
                    na.strings = c('-9999','unknown'),
                    data.table = F)

  #determine dates
  rf.data$DATE <- as.Date( as.character( rf.data$DATE), format = '%Y%m%d')
  rf.date <- sort( unique( rf.data$DATE))

  #list stations, rename to shorter names
  station.names <- c( 'GULFPORT BILOXI AIRPORT MS US' = 'GFP',
                     'PENSACOLA REGIONAL AIRPORT FL US' = 'PNS',
                     'BIRMINGHAM AIRPORT AL US' = 'BHM',
                     'ATLANTA HARTSFIELD INTERNATIONAL AIRPORT GA US' = 'ATL')
  rf.data$STATION_NAME <- revalue( rf.data$STATION_NAME, station.names)
  rf.stations <- unique( rf.data$STATION_NAME)

  #fill missing dates with NA
  rf.df <- data.frame(	date = rf.date,
                       GFP  = fill_dates(rf.data, 'GFP', rf.date),
                       PNS  = fill_dates(rf.data, 'PNS', rf.date),
                       BHM  = fill_dates(rf.data, 'BHM', rf.date),
                       ATL  = fill_dates(rf.data, 'ATL', rf.date))

  #combine into list, export
  stations.names.short <- c('GFP','PNS','BHM','ATL')
  listify <- function(n,df) list( date = df$date,
                                  Precip = df[,n])
  out <- lapply( stations.names.short,
                 listify ,
                 rf.df)
  names(out) <- stations.names.short
  return( out)
}
lhenneman/searchAQ documentation built on Oct. 2, 2019, 7:26 a.m.