Skip to contents

This is the main function of the tdm family workflow. This function predicts subdaily meteorology from daily means using a linear regression modeling approach. It takes a dataset with daily resolution and temporally downscales it to hourly resolution using the statistics generated by gen.subdaily.models(). It references the predict.subdaily.function located in lm_ensemble_sims() which uses a linear regression based approach to downscale. We generate multiple ensembles of possible hourly values dictated from the models and betas generated in gen.subdaily.models. Each ensemble member is saved as a netCDF file in CF conventions and these files are ready to be used in the general PEcAn workflow.

Usage

predict_subdaily_met(
  outfolder,
  in.path,
  in.prefix,
  path.train,
  direction.filter = "forward",
  lm.models.base,
  yrs.predict = NULL,
  ens.labs = 1:3,
  resids = FALSE,
  adjust.pr = 1,
  force.sanity = TRUE,
  sanity.tries = 25,
  overwrite = FALSE,
  verbose = FALSE,
  seed = format(Sys.time(), "%m%d"),
  print.progress = FALSE,
  ...
)

Arguments

outfolder

- directory where output file will be stored

in.path

- base path to dataset you wish to temporally downscale; Note: in order for parallelization to work, the in.prefix will need to be appended as the final level of the file structure. For example, if prefix is GFDL.CM3.rcp45.r1i1p1, there should be a directory with that title in in.path.

in.prefix

- prefix of model dataset, i.e. if file is GFDL.CM3.rcp45.r1i1p1.2006 the prefix is 'GFDL.CM3.rcp45.r1i1p1'

path.train

- path to CF/PEcAn style training data where each year is in a separate file.

direction.filter

- Whether the model will be filtered backward or forwards in time. options = c("backward", "forwards") (default is forward; PalEON will go backward, anybody interested in the future will go forwards)

lm.models.base

- path to linear regression model folders generated using gen.subdaily.models

yrs.predict

- years for which you want to generate met. if NULL, all years in in.path will be done

ens.labs

- vector containing the labels (suffixes) for each ensemble member; this allows you to add to your ensemble rather than overwriting with a default naming scheme

resids

- logical stating whether to pass on residual data or not

adjust.pr

- adjustment factor fore precipitation when the extracted values seem off

force.sanity

- (logical) do we force the data to meet sanity checks?

sanity.tries

- how many time should we try to predict a reasonable value before giving up? We don't want to end up in an infinite loop

overwrite

logical: replace output file if it already exists?

verbose

logical: should ncdf4 functions print debugging information as they run?

seed

- manually set seed for results to be reproducible

print.progress

- print the progress bar?

...

further arguments, currently ignored

Details

Predict Subdaily Meteorology Predict Subdaily Meteorology based off of statistics created in gen.subdaily.models()

See also

Author

Christy Rollinson, James Simkins

Examples

if (FALSE) { # \dontrun{
library(PEcAn.data.atmosphere)
outfolder = '~/Downscaled_GCM'
in.path = '~/raw_GCM'
in.prefix = 'GFDL'
lm.models.base = 'sf_scratch/US-WCr'
dat.train_file = 'Training_data/US-WCr_dat.train.nc'
start_date = '2010-01-01'
end_date = '2014-12-31'
cores.max = 12
n.ens = 3} # }