{"id":18725321,"url":"https://github.com/sintefmath/multilevelda","last_synced_at":"2025-11-11T18:30:18.594Z","repository":{"id":261438039,"uuid":"589535622","full_name":"sintefmath/multilevelDA","owner":"sintefmath","description":"Notebooks for multilevel data assimilation based on `metno/gpuocean`","archived":false,"fork":false,"pushed_at":"2024-11-12T14:27:59.000Z","size":170293,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-28T13:15:00.079Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sintefmath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-16T10:55:45.000Z","updated_at":"2024-11-12T14:28:03.000Z","dependencies_parsed_at":"2024-11-06T15:51:13.294Z","dependency_job_id":null,"html_url":"https://github.com/sintefmath/multilevelDA","commit_stats":null,"previous_names":["sintefmath/multilevelda"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FmultilevelDA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FmultilevelDA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FmultilevelDA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FmultilevelDA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sintefmath","download_url":"https://codeload.github.com/sintefmath/multilevelDA/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239592979,"owners_count":19664855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T14:09:46.694Z","updated_at":"2025-11-11T18:30:18.558Z","avatar_url":"https://github.com/sintefmath.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-level data assimilation for ocean forecasting using the shallow-water equations\nThis repository contains code, scripts and notebooks related to the work presented in the paper \"Multi-level data assimilation for ocean forecasting using the shallow-water equations\" by Beiser, Holm, Lye and Eidsvik.\nThe motivation is to setup multi-level Monte Carlo ensembles of simplified ocean models and evaluate the usability of multi-level data assimilating in the presence of sparse observations of ocean currents.\nWe then use the posterior multi-level ensemble to forecast the ocean state and drift trajectories.\n\nAll code relies heavily on [GPU Ocean](https://github.com/gpuocean/gpuocean) v1.3.0.\n\n## Result Reproduction\nAlthough the exact figures from the paper will be hard to reproduce due to stochastic processes, the figures can be qualitatively reproduced as follows:\n\n- Figure 0: tikz \n\n- Figure 1: tikz\n\n- Figure 2: `scripts/DoubleJetPracticalCost_square.py`\n\n- Figure 3: `notebooks/DoubleJet-Truth4paper.ipynb` (requires running `scripts/DoubleJetTruth.py -L 9`, but results are stochastic)\n\n- Figure 4: `notebooks/DoubleJet-Resoltions4paper.ipynb` (results are seeded)\n\n- Figure 5: tikz + requires running `scripts/DoubleJetVarianceLevel-DA.py` + `scripts/DoubleJetVarianceLevel-DA-PP.py`\n(The first script save results in a newly created putput folder. The second script requries to set `source_path` to the output folder of the first script. Moreover, for different functionals, follow the instructions in the second script to create the a- and b-plot. Also the second script saves results in a newly created output folder.) \n\n- Table 1: `notebooks/DoubleJet-SpeedUp.ipynb` (requires to set the output folders of the previous cost and variance experiments are manual inputs)\n\n\u003e The next figures require running\n\u003e - `scripts/DoubleJetSLDA.py -L 9` \n\u003e\n\u003e Then set the output folder of this script as `truth_path` in the following scripts\n\u003e\n\u003e - `scripts/DoubleJetSLDA.py -L 9 -Ne 50`, and \n\u003e - e.g. `scripts/DoubleJetMLDA.py -ls 6 7 8 9 -Nes 275 134 46 13` \n\u003e\n\u003e Again, output folders are created and those folders paths have to be manually set in the following notebooks!\n\n- Figure 6: `notebooks/DoubleJet-DA-PostProcessing-ERR4paper.ipynb` (set folder path as explained above)\n\n- Figure 7: `notebooks/DoubleJet-DA-PostProcessing-ERRloc4paper.ipynb` (set folder path as explained above) + requires running `scripts/DoubleJetMLDA.py -ls 6 7 8 9 -Nes 275 134 46 13` (with right `truth_path` for the output of the truth AND `min_localisation_level=1` see comment in the upper part of the script)\n\n- Figure 8: `notebooks/DoubleJet-MLDA-PostProcessing-MLscores4paper.ipynb` (set folder path as explained above)\n\n- Figure 9: `notebooks/DoubleJet-MLRanks-PostProcessing4paper.ipynb` (set folder path as explained above)  + requires running `scripts/DoubleJetMLRanks.py`\n\n- Figure 10: `notebooks/DoubleJet-DA-PostProcessing-Drifter4paper.ipynb` (set folder path as explained above)\n\n- Figure 11: `notebooks/DoubleJet-DA-PostProcessing-DrifterERR4paper.ipynb` (set folder path as explained above)\n\n- Figure 12: `notebooks/DoubleJet-DA-PostProcessing-DrifterKDE4paper.ipynb` (set folder path as explained above) \n\n- Table 2: `notebooks/DoubleJet-DA-PostProcessing-DrifterKDE4paper.ipynb` (set folder path as explained above, see far down in the notebook) \n\nA lot of parameters are collected in `utils/DoubleJetParametersReproduction.py`. \n\n\n### Funding\nThis work is funded by the Norwegian Research Council under grant number 310515 (Havvarsel).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintefmath%2Fmultilevelda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsintefmath%2Fmultilevelda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintefmath%2Fmultilevelda/lists"}