State Variable Data Assimilation: Ensemble Kalman Filter and Generalized ensemble filter
Source:R/sda.enkf_MultiSite.R
sda.enkf.multisite.RdCheck out SDA_control function for more details on the control arguments.
Usage
sda.enkf.multisite(
settings,
obs.mean,
obs.cov,
Q = NULL,
restart = NULL,
pre_enkf_params = NULL,
ensemble.samples = NULL,
control = list(trace = TRUE, TimeseriesPlot = FALSE, debug = FALSE, pause = FALSE,
Profiling = FALSE, OutlierDetection = FALSE, parallel_qsub = TRUE, send_email = NULL,
keepNC = TRUE, forceRun = TRUE, run_parallel = TRUE, MCMC.args = NULL),
cov_dir = NULL,
debias_start_year = NULL,
debias_drop_incomplete_covariates = TRUE,
debias_enforce_consistent_obs = TRUE,
debias_require_obs_at_t_for_predict = FALSE,
...
)Arguments
- settings
PEcAn settings object
- obs.mean
Lists of date times named by time points, which contains lists of sites named by site ids, which contains observation means for each state variables of each site for each time point.
- obs.cov
Lists of date times named by time points, which contains lists of sites named by site ids, which contains observation covariances for all state variables of each site for each time point.
- Q
Process covariance matrix given if there is no data to estimate it.
- restart
Used for iterative updating previous forecasts. Default NULL. List object includes file path to previous runs and start date for SDA.
- pre_enkf_params
Used for passing pre-existing time-series of process error into the current SDA runs to ignore the impact by the differences between process errors.
- ensemble.samples
Pass ensemble.samples from outside to avoid GitHub check issues.
- control
List of flags controlling the behavior of the SDA. `trace` for reporting back the SDA outcomes; `TimeseriesPlot` for post analysis examination; `debug` decide if we want to pause the code and examining the variables inside the function; `pause` decide if we want to pause the SDA workflow at current time point t; `Profiling` decide if we want to export the temporal SDA outputs in CSV file; `OutlierDetection` decide if we want to execute the outlier detection each time after the model forecasting; `parallel_qsub` decide if we want to execute the `qsub` job submission under parallel mode; `send_email` contains lists for sending email to report the SDA progress; `keepNC` decide if we want to keep the NetCDF files inside the out directory; `forceRun` decide if we want to proceed the Bayesian MCMC sampling without observations; `run_parallel` decide if we want to run the SDA under parallel mode for the `future_map` function; `MCMC.args` include lists for controling the MCMC sampling process (iteration, nchains, burnin, and nthin.).
- cov_dir
Directory containing yearly covariate stacks named like "covariates_YYYY.tiff".
- debias_start_year
Integer year (e.g., 2015). If `NULL`, debiasing is OFF.
- debias_drop_incomplete_covariates
Logical; drop sites with any NA covariates
- debias_enforce_consistent_obs
Logical; drop sites that lost any previously
- debias_require_obs_at_t_for_predict
Logical; only make residual predictions
- ...
Additional arguments, currently ignored
Details
Restart mode: Basic idea is that during a restart (primary case envisioned as an iterative forecast), a new workflow folder is created and the previous forecast for the start_time is copied over. During restart the initial run before the loop is skipped, with the info being populated from the previous run. The function then dives right into the first Analysis, then continues on like normal.
Author
Michael Dietze, Ann Raiho and Alexis Helgeson dietze@bu.edu