Changelog
FLAREr 3.9 (public release)
A major release introducing GLM-native restart files and serverless (FaaSr) execution. FLARE 3.9 requires a build of GLM-AED with the NetCDF restart capacity (GLM-AED version 4); see Restart files below for how to obtain it.
Data assimilation
- New optional
da_setupfields:use_inflation_factoranduse_one_step_lag(decouples state and parameter updates). - New required
add_random_noisefield controlling how process noise is added. - Optional log-space handling of water-quality observations via
log_transform_wq_obsandlog_transform_wq_zero_collapseto avoid zero-clamping bias. - Reflective bounds and a minimum parameter standard deviation to stabilise parameter estimation; fixes to parameter inflation.
- Option to initialize parameters from a normal distribution.
Observations
- New optional
assimilatecolumn inobservations_config.csv(integer0/1; defaults to1when absent). Settingassimilate = 0keeps a variable simulated, tracked, and written to forecast output but excludes it from the EnKF update. Existing configurations without the column are unaffected.
Restart files
- GLM-native restart support. Restart files are now zip archives containing the FLARE DA state (NetCDF) plus per-ensemble GLM restart files, rather than a plain NetCDF file. Old
.ncrestart files are not compatible with 4.0. -
Requires GLM-AED version 4, which adds the NetCDF restart capacity this feature depends on. GLM-AED 4 is currently available on the
v4alphabranch of GLM-AED and can be installed via theGLMAEDrpackage:remotes::install_github("flare-forecast/GLMAEDr"). - New
restart_save_timestepsoption inoutput_settingscontrols which timesteps (relative toforecast_start_datetime) are saved as restart files.
Storage backends and FaaSr
- All object I/O is routed through a single layer (
flare_io.R) that targets one of three backends —local,s3, orfaasr— selected by theuse_s3anduse_faasrflags inconfigure_run.yml. The default (bothFALSE) is local, so existing configurations are unaffected. - Integration with FaaSr for serverless execution on platforms such as GitHub Actions, AWS Lambda, and OpenWhisk. Setting
use_faasr: TRUEroutes I/O through the FaaSr runtime’s DataStore helpers. - New exported, backend-agnostic I/O wrappers:
flare_get_file(),flare_put_file(),flare_delete_file(),flare_get_folder_list(), andflare_arrow_s3_bucket(). - New
initialize_faasr()function validates FaaSr/S3 configuration at startup. Anonymous (public, read-only) S3 DataStores are supported.
Inputs and models
- GLM-AED phytoplankton parameter calibration: parameters stored in
aed_phyto_pars.csvcan now be calibrated by referencing that file in thepar_filecolumn ofparameter_calibration_config.csv. - Added support for the
GLMAEDrpackage for installing and managing the GLM binary. - Note: Windows is not currently supported, as GLM-AED version 4 binaries are not yet built for Windows. Use macOS or Linux (e.g. via WSL2) until Windows v4 binaries are available.
- Support for plunging inflows and dynamic benthic variables (the latter not assimilated).
Documentation and performance
- New and expanded vignettes: concepts, configuration, drivers, and DA hyperparameters.
- Performance improvements to
run_da_forecast()and the forecast write step.
Bug fixes
- Restored the weather uncertainty option.
- Fixed
system2()error handling inrun_glm.R. - Fixed an issue where targets were not pre-ordered.
- Fixed an inflow
sub_elevissue. - Fixed a FaaSr bucket bug.
FLAREr 3.0.3
- Added sim_name option to
run_flare()to support scenario based forecasting workflows.
FLAREr 3.0.2
- Fixed bug associated with the daily diagnostics where the depths defaulted to a logical if all depth values were NA
- Fixed bug associated with plotting daily diagnostics
FLAREr 3.0.1
- Fix bug in
check_noaa_ready()that assumed a specific value forfuture_met_model - Fixes to testing suite
FLAREr 3.0.0
- Able to one parameter from a set of parameters that share the same name (e.g., the temperature in one of three sediment zones)
- Separate inflow and outflow models
- Openmeteo API as an option for meteorological inputs
- Updates to restart capacity that now requires GLM-AED version 3.4 or higher
- Access to daily summaries (e.g., lake.csv) from GLM-AED in FLAREr output
- Flexible paths for directory and partitioning of driver files. Uses
glue::glueto create path from internal variables.