Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensemble transform Kalman inversion #320

Closed
wants to merge 2 commits into from
Closed

Ensemble transform Kalman inversion #320

wants to merge 2 commits into from

Conversation

eviatarbach
Copy link
Contributor

@eviatarbach eviatarbach commented Aug 5, 2023

Closes #324

@eviatarbach
Copy link
Contributor Author

eviatarbach commented Aug 5, 2023

The initial implementation seems to be working, but still needs tests, documentation, and examples. Note that the ETKI does not work with localization.

The ETKI makes use of the inverse observation error covariance. Right now, the observation error covariance is inverted at every update time, but it may be worth storing in the process struct instead.

@odunbar
Copy link
Collaborator

odunbar commented Sep 14, 2023

Any developments here? It would be good maybe to just have the source code and unit tests in this PR, we can make another for examples & docs if you like

Copy link
Collaborator

@odunbar odunbar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! Thanks a lot for this!

  • In what you have implemented I only tiny comments here - it all looks good otherwise!
  • codecov has an issue, did you miss some testing out?
  • One final test suggestion: could we perform one update with an increasingly high-dimensional output sized output space? e.g. 10^2, 10^3, 10^4, 10^5 and time it? You could either just println the times, or you could compare loosely to theoretical scalings.

It would be good to have something like this to warn us in case future features corrupt the scalings for this method.

Once this is implemented, could you add the times to the PR description and I will be happy for merge!

src/EnsembleTransformKalmanInversion.jl Outdated Show resolved Hide resolved
src/EnsembleTransformKalmanInversion.jl Outdated Show resolved Hide resolved
test/EnsembleKalmanProcess/runtests.jl Outdated Show resolved Hide resolved
@eviatarbach eviatarbach closed this by deleting the head repository Oct 1, 2023
bors bot added a commit that referenced this pull request Oct 2, 2023
329: Ensemble tranform Kalman inversion r=eviatarbach a=eviatarbach

I somehow made some mistake with the branches and closed the last PR, #320, and couldn't reopen it. This should be ready to merge. Closes #324.

### Scaling test timings
For Julia v1 tests outputs:
```
ETKI with 10 observations took 0.013366613000000005 seconds.
ETKI with 100 observations took 0.026825424999999983 seconds.
ETKI with 1000 observations took 0.17781986400000005 seconds.
ETKI with 10000 observations took 1.249208766 seconds.
```

Co-authored-by: Eviatar Bach <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement and test ensemble transform Kalman inversion (ETKI)
2 participants