The 4DVar data assimilation technique implemented with the Lorenz '63 model
This repository contains an implementation of the 4DVar technique with the Lorenz '63 model. The code is intended to be a simple introduction to this technique, and includes both the "plain" formulation of the 4DVar technique, as well as the incremental form (in the "incremental" branch).
Minimisation is currently performed with a very simple gradient descent method. In the future I would like to implement a conjugate gradient technique.
Simply git clone
the repository. Then run make
to build the system and ./main
to run it. The output will be stored in a serious of plaintext files. The output can be visualised by running python plot.py
. This will require matplotlib and numpy.
Some tests for the tangent linear and adjoint models are included in the test
repository. To build these, first make sure to run make clean
in the parent directory (the one containing test
). Then cd
to test
and run make
to build and ./test
to run.