-
Notifications
You must be signed in to change notification settings - Fork 125
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
Reproducing grudzien2020 #77
Conversation
This will introduce the L96s model as a unique model in the colllection so that we can integrate some special features here first as a test case. However, integration.py can be minimally adjusted to rigorously include the Euler-Maruyama and four-stage Runge-Kutta schemes for SDEs with additive noise with minimal changes.
Initial simplifications have been introduced to homogenize the code with the rest of the repo. The simple case of a Fourier truncation with p=1 is emphasized, as this is all that matters for order 2.0 convergence. The general scheme discussed in the manuscript is not of particular interest for DA so we neglect this implementation, included in that manucript's repo.
Using the stock Jacobian implementation in the extras file, changing normal sampler to the standard univariate normal of appropriate dimension for broadcasting. Yet to be run on test cases, tomorrow will most likely put additional time developing the model and testing it for the overal integration with DAPPER for merge / push tutorial worksheets.
This is a very rough draft, needs to be discussed in the following days for how to integrate this into the DAPPER framework further
Co-authored-by: Patrick N. Raanes <[email protected]>
Co-authored-by: Patrick N. Raanes <[email protected]>
The initial results reproduce the basic conclusions of Grudzien2020numerical as in the bib entry. In short, we acheive adequate performance with Ne=100, pert obs EnKF, no inflation or localization when using a statistically robust SDE solver like Runge-Kutta with dt=0.1, but we experience filter divergence with the Euler-Maruyama scheme (also order 1.0) in the same setting. Full analysis and a wider simulation range for parameters are in the reference.
Needed to make a re-install of some components with updates in Matplotlib, re-ran the update of the bib files to sync all changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will just close the other PR anyway.
Hint: you can apply the suggested changes (if you're fine with them) in the GitHub interface. Probably you want to add them to a single batch before committing (still in the GitHub interface). Then you can pull from origin to get those changes locally. Then you can add your own changes locally (for example to address comments without suggested changes) and push, which should update this PR.
Co-authored-by: Patrick N. Raanes <[email protected]>
Co-authored-by: Patrick N. Raanes <[email protected]>
I have made the document generation automatic. So please remove all html files listed under "Conflicting files" right below. Also, there is a conflict in |
Co-authored-by: Patrick N. Raanes <[email protected]>
Co-authored-by: Patrick N. Raanes <[email protected]>
Co-authored-by: Patrick N. Raanes <[email protected]>
Nice, will do. I have plans to finish off some of this merger today, along with hopefully having time after meetings to build some exercises and further examples. Take a look at the example if you got a chance -- the simulation is looking good, confirming the results of the GMD work. |
Yeah, I think it should be fun to play with some of these time series, especially tuning the amount of stochasticity. It begins to look more and more like a Brownian motion with enough noise, or more like the standard Lorenz 96 in the small noise, there should be some nice exercises to look at in an Jupyter notebook. |
Merging with Patrick's integrator changes
Sorry my bad, incorrectly was merging changes. Let's see how the new pushes look. |
The tests are crashing coz it still says I'm offline rest of the evening! Will check in tomorrow |
Co-authored-by: Patrick N. Raanes <[email protected]>
Some notations for the ensemble and state dimensions didn't match post merger, these are now fixed along with references in the example.
Sorry, I am on holiday and am not active. How's this looking? AFAICT there's still some suggested changes and comments have not been addressed. |
No worries, getting back to finishing some of this off tomorrow, just
juggling this with finishing off some other loose ends.
…On 7/25/21 4:31 AM, Patrick N. Raanes wrote:
Sorry, I am on holiday and am not active. How's this looking? AFAICT
there's still some suggested changes and comments have not been addressed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#77 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABXIPFTDXWUVAHK5BVJ4ZJTTZPYZBANCNFSM5AOQXCEA>.
|
__init__.py has been edited mostly for style changes, grudzien example has been edited but remains somewhat incomplete -- will push additional sections including mutiple stages for the example as I have a chance to add some more docs and a chance to play with the visualizations further, itegration has been modified to include more information in the doc string with a full stage / order of convergence table.
Apart from the suggested changes in |
The interactive plot is set for a toy setting and parameter range is now set in order to reproduce the reference. Plotting is incomplete but it seems like the results for the Euler-Maruyama are much more pessimistic than in the reference when using a low-precision setting in a noise driven dynamical system. This may need additional debugging in addition to finishing the plotting scripts.
I just upgraded the documentation for Also added to I also think you should mainly build on |
Don't worry, I'm probably not going to touch this again this week --
most of the template for the replication based on basic_3 is already
done though, I just need to make some plotting scripts.
…On 7/28/21 5:07 AM, Patrick N. Raanes wrote:
I just upgraded the documentation for |setup|
<https://nansencenter.github.io/DAPPER/dapper/xp_launch.html#dapper.xp_launch.run_experiment>
quite a bit. Please have a look.
Also added to |bib.py|, unfortunately causing conflict. Please pull,
resolve, push.
I also think you should mainly build on |basic_2|, not |basic_3|.
Because although |basic_3| illustrates the use of |setup| it also
contains other complications. So start with |basic_2|. Use a simple
for-loop to generate several |xp|s, not the methods shown in
|basic_3|. Sorry I don't have time right now to look in more detail.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#77 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABXIPFXPVT5TMGKEDUJIX2TTZ7XJHANCNFSM5AOQXCEA>.
|
Yeah, it just seems to me like there might be some confusion still, and it is much easier to consult on this when the script follows the template of |
Need to work on plotting scripts still, but the data generation based on combinator is working correctly now and has fully reproduced the results of the reference. This has now been added in the README along with a few additional references that I think are worth mentioning. Will work on plotting scripts next week more than likely.
No worries, I had meetings cancelled and had extra time today, got this
debugged and fully reproducing results from the manuscript now. The
README is updated accordingly, along with some additional references
that I think are useful... including my own Julia code base hehehe.
I'll work on plotting probably next week.
…On 7/28/21 10:39 AM, Patrick N. Raanes wrote:
Yeah, it just seems to me like there might be some confusion still,
and it is much easier to consult on this when the script follows the
template of |basic_2|, without the complications of |basic_3|. Maybe
just stash the plotting stuff for later?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#77 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABXIPFUS3E4ZABRWBQMFVNLT2A6DZANCNFSM5AOQXCEA>.
|
Initial commit to remove the table, will edit description slightly more shortly. Co-authored-by: Patrick N. Raanes <[email protected]>
Note, I'm not sure if the two or three stage Runge-Kutta schemes extend the same way for SDEs as they do for deterministic systems, so for lack of a better answer I only specify one stage and four stage options in the description.
Will probably spend some time on plotting scripts later this week, minor changes have addressed items above. If you have any extra docs or comments to push to the plotting example based on basic 3, let me know, otherwise I'll just try tinkering with this more. |
In fact, I'm getting bogged down a bit on the plotting code, I'm thinking to remove the draft that I have currently, push the change and go for a merger of branches for now. Does that sound good? I'll get back to this again shortly but I'll need a bit of lead time as I'm prepping for the semester. |
Will redo some plotting of this later, for now the results are fully reproduced and I want to finish the initial merger of the additional functionality into the upstream branch.
Re #70 I'm not sure that my new commits made it into my old pull request -- if this is redundant we can kill this request. In any case, I have an updated example for you to take a look at.