Comments (5)
I was looking at the code for iEnKS in DAPPER and I realise it is a bit different from the Bocquet and Sakov 2013 (BS13) paper.
Within the Gauss-Newton iteration, BS13 does not update the ensemble anomaly. In DAPPER, you update the ensemble anomaly in each iteration.
Yes, I'm aware, as you can see in the comments here. Good spot though. It makes very little difference, in my benchmarks, so I have yet to put it in the docstring. I chose this way because I think it is more rigorous to update the entire ensemble (but Bocquet views the method more as a "var" type method, which is why he prefers to not update the anomalies that way), and it is a lot more natural for the stochastic (not sqrt) formulations.
For SDA, the observation anomaly is ‘de-conditioned’, and the ‘de-condition’ is not applied to MDA. This treatment is intuitively reasonable as this propagate the new observation assimilation into all DA window, but I wonder if you know/have any literature/reference that can back this treatment?
I'm not sure what exactly you're pointing at here... Is it related to the previous point? Anyway there is a discussion around de-conditioning in my paper
from dapper.
Hi Patrick
I vaguely feel the current implementation might not actually update ensemble anomaly.
The Tinv here seems de-updated the ensemble anomaly, while Tinv kept as identity during MDA implementation.
from dapper.
I just notice the paper. I will have a look then. Thanks!
from dapper.
Hi Patrick
Thanks for your comments.
I hope I understand these correctly.
-
DAPPER blends the bundle method (EPS) and transform/projection method (T) to approximate the Jacobian of observation operator.
-
The MDA (multiple data assimilation) in DAPPER uses annealing (progressive assimilation). Does this method come from this paper (SE15)?
-
I feel that, there are discrepancies between BS14 and the annealing method/ensemble smoother. I hope my following understanding is correct:
-
In the annealing/DAPPER, one observation at time step k, y(k), is progressively assimilated within one fixed DA windows (0:L). At each step/iteration, the state vector x(0:L) assimilate a part of y(k).
-
In BS14, the DA window moves forward. For example, in DA window (0:L), one observation at time step k, y(k), is partly (say half) assimilated for (0:L). Then, in the DA window (1:L+1), the other half of y(k) is assimilated. Each part of y(k) is assimilated by different DAW.
Is my understanding correct? If not, is there anything I'm missing? I suggest to add SE15 into the documentation of iEnKS in DAPPER.
-
Thanks.
from dapper.
- DAPPER blends the bundle method (EPS) and transform/projection method (T) to approximate the Jacobian of observation operator.
Yes.
- The MDA (multiple data assimilation) in DAPPER uses annealing (progressive assimilation). Does this method come from this paper (SE15)?
Yes, it uses annealing. It original paper for is this one
which I have now cited in the docstring (dev1 branch).
Yes, the paper you cite is building on that. It's the same idea as BS14, but they use it "on top of" Gauss-Newton, whereas DAPPER only has the code to do it instead of Gauss-Newton.
- In the annealing/DAPPER, one observation at time step k, y(k), is progressively assimilated within one fixed DA windows (0:L). At each step/iteration, the state vector x(0:L) assimilate a part of y(k).
Yes. the DAPPER implementation only does what BS14 calls SDA, x(k-L) assimilates y(k) fully.
- In BS14, the DA window moves forward. For example, in DA window (0:L), one observation at time step k, y(k), is partly (say half) assimilated for (0:L). Then, in the DA window (1:L+1), the other half of y(k) is assimilated. Each part of y(k) is assimilated by different DAW.
Yes, that is correct. And DAPPER does not yet support it. But it has been added as TODO items in the dev1 branch. If you wish you could try to tackle it. Let me know. I suspect it won't be very easy. At least I think the tests for the iEnKS are in pretty good shape, which should help.
from dapper.
Related Issues (20)
- Variational method: nIter default value in documentation
- Ensemble random forest filter: An alternative to the ensemble Kalman filter for inverse modeling HOT 1
- Implement sequential EnOpt
- Extreme value statistics
- Random number generation HOT 3
- Definition of Ko in chrono HOT 2
- Small Assimilation Increment in EnKF Analysis Function HOT 2
- JOSS Review | Failing Test Case `test_HMM` HOT 2
- Stocahstic Differential Equation Models / Integration Schemes HOT 3
- Travis CI changed its pricing policy HOT 1
- Citation of DAPPER in publications HOT 1
- Auto-generate docs using GitHub actions
- Support pyqg HOT 3
- Fix and simplify Chronology
- Make "Persistence" da_method HOT 2
- Connecting an external dynamical model HOT 2
- Problem with examples on jupyter lab and python 3.9 on anaconda HOT 3
- QG Model Observation Vector / State Vector Relative Indexing HOT 8
- Finding parameters of Lorenz63 HOT 2
- Observations object HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dapper.