Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Initial dacycler with 3dvar * Update location indices when timefilt for obsvector, add ability to store error_sd * Observer now passes error_sd and error_bias to obs_vec * Working 3D var * Add one-stop cycle() method that runs DA all the way through (user-specified timesteps) * ETKF, work in progress * ETKF compute_analysis, work in progress * Functional ETKF, but error seems high * Change model_obj name to forecast_model * Var3d in Jax * Add store_as_jax option to observer * ETKF in Jax, except real_if_close isn't implemented yet. Very slow to run the actual cycle * Fully functioning (but slow) jax implementation of ETKF * Remove input type checks * Jax implementation (ish) of np.real_if_close * Cleaned up dacycler base class, added documentation * Cleaned up 3Dvar * Faster Jax etkf, but requires identical number of observations in each analysis window (WIP) * Add rest of modules to main __init__ * Rename forecast_model to model_obj in dacycler * Rename some things in var3d * ETKF support for non-linear observation operators (h) * Remove some unneeded debugging printing * Fix bug in 3dvar R calculation * Fix test failure, no location_indices specified * Tests for train/val/test split method * Store M and times as jax when appropriate * Basic code for backprop4d, running but not producing accurate results * Add slicing to obs_vec and state_vector * Fix time dim calculation for data slicing * Working bp4d dacycler, but some quirks to it (need to add one to the n_steps you think you might want) * Fix isclose to rtol=0, stops false equalities with large numbers * Fully jaxified backprop4d, MUCH faster (200 10-step cycles in under a minute depending on num_epochs) * Remove outdated comment * Edit for clarity when observing gridded values * Rename backprop4d to var4d_backprop * Dacycler base class docstrings * Updated top-level docstrings for da classes, plus init args * Clean up etkf, make step_cycle and step_forecast non-public methods * Cleanup var4d backprop * Update name of var4d backprop in init * Make step_cycle and step_forecast protected methods * Make _step_cycle and _step_forecast protected in var3d * Add reservoir computing model as sub-class of dab.model.Model * Use libmamba for workflow conda install * Use libmamba for all conda installs in workflow, works very fast * Set libmamba solver in config for workflow * Only use libmamba for the big install * Use environment for pytest workflow bc of libmamba problems * Fix problem with datetimes not working with isclose * Create blank environment then populate * Add full --file option to env update * Revert to base environment for pytest workflow, add pyqg to environment.yml during workflow * Install flake8 and pytest earlier in workflow * Add saving and loading weights to rc model * Fix for numpy arange floating point arithmetic error * Fix error in etkf time filter from last commit
- Loading branch information