{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/interpretable-structural-model-error","title":"Interpretable structural model error discovery from sparse assimilation increments using spectral bias-reduced neural networks: A quasi-geostrophic turbulence test case","arxiv_id":"2309.13211","date":"2023-09-22","proceeding":null,"authors":["Rambod Mojgani","Ashesh Chattopadhyay","Pedram Hassanzadeh"],"abstract":"Earth system models suffer from various structural and parametric errors in their representation of nonlinear, multi-scale processes, leading to uncertainties in their long-term projections. The effects of many of these errors (particularly those due to fast physics) can be quantified in short-term simulations, e.g., as differences between the predicted and observed states (analysis increments). With the increase in the availability of high-quality observations and simulations, learning nudging from these increments to correct model errors has become an active research area. However, most studies focus on using neural networks, which while powerful, are hard to interpret, are data-hungry, and poorly generalize out-of-distribution. Here, we show the capabilities of Model Error Discovery with Interpretability and Data Assimilation (MEDIDA), a general, data-efficient framework that uses sparsity-promoting equation-discovery techniques to learn model errors from analysis increments. Using two-layer quasi-geostrophic turbulence as the test case, MEDIDA is shown to successfully discover various linear and nonlinear structural/parametric errors when full observations are available. Discovery from spatially sparse observations is found to require highly accurate interpolation schemes. While NNs have shown success as interpolators in recent studies, here, they are found inadequate due to their inability to accurately represent small scales, a phenomenon known as spectral bias. We show that a general remedy, adding a random Fourier feature layer to the NN, resolves this issue enabling MEDIDA to successfully discover model errors from sparse observations. These promising results suggest that with further development, MEDIDA could be scaled up to models of the Earth system and real observations.","url_abs":"https://arxiv.org/abs/2309.13211v2","url_pdf":"https://arxiv.org/pdf/2309.13211v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"interpretable-structural-model-error","repo_url":"https://github.com/rmojgani/MEDIDA_QG","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"interpretable-structural-model-error","repo_url":"https://github.com/rmojgani/rmojgani","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2309.13211","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.13211"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rmojgani/rmojgani","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rmojgani/MEDIDA_QG","reach":null}],"summary":{"ran_draft_wrong":2,"ran_fixture":2,"ran_honours":2},"by_repo_kind":{"official":{"samples":6,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":6,"samples":[{"code_sha256_prefix":"e128171ffd96f977","entry":"ConvSmoother","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/PDE_FIND.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/PDE_FIND.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e128171ffd96f977"}},{"code_sha256_prefix":"bf39835367f81033","entry":"FiniteDiff","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/PDE_FIND.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/PDE_FIND.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bf39835367f81033"}},{"code_sha256_prefix":"8890dd668beaf10a","entry":"TikhonovDiff","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/PDE_FIND.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/PDE_FIND.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8890dd668beaf10a"}},{"code_sha256_prefix":"ffc6489887aaa263","entry":"cutandvectorize","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/main_QGdry.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/main_QGdry.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ffc6489887aaa263"}},{"code_sha256_prefix":"c0098e2f58801a97","entry":"ptq1","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/main_QGdry.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/main_QGdry.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c0098e2f58801a97"}},{"code_sha256_prefix":"74b488d54bc89b33","entry":"ptq2","repo":"rmojgani/MEDIDA_QG","repo_kind":"official","path":"experiments/QG/main_QGdry.py","file_url":"https://github.com/rmojgani/MEDIDA_QG/blob/HEAD/experiments/QG/main_QGdry.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"74b488d54bc89b33"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}