{"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/data-driven-equation-discovery-of-a-cloud","title":"Data-Driven Equation Discovery of a Cloud Cover Parameterization","arxiv_id":"2304.08063","date":"2023-04-17","proceeding":null,"authors":["Arthur Grundner","Tom Beucler","Pierre Gentine","Veronika Eyring"],"abstract":"A promising method for improving the representation of clouds in climate models, and hence climate projections, is to develop machine learning-based parameterizations using output from global storm-resolving models. While neural networks can achieve state-of-the-art performance within their training distribution, they can make unreliable predictions outside of it. Additionally, they often require post-hoc tools for interpretation. To avoid these limitations, we combine symbolic regression, sequential feature selection, and physical constraints in a hierarchical modeling framework. This framework allows us to discover new equations diagnosing cloud cover from coarse-grained variables of global storm-resolving model simulations. These analytical equations are interpretable by construction and easily transferable to other grids or climate models. Our best equation balances performance and complexity, achieving a performance comparable to that of neural networks ($R^2=0.94$) while remaining simple (with only 11 trainable parameters). It reproduces cloud cover distributions more accurately than the Xu-Randall scheme across all cloud regimes (Hellinger distances $<0.09$), and matches neural networks in condensate-rich regimes. When applied and fine-tuned to the ERA5 reanalysis, the equation exhibits superior transferability to new data compared to all other optimal cloud cover schemes. Our findings demonstrate the effectiveness of symbolic regression in discovering interpretable, physically-consistent, and nonlinear equations to parameterize cloud cover.","url_abs":"https://arxiv.org/abs/2304.08063v3","url_pdf":"https://arxiv.org/pdf/2304.08063v3.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":"data-driven-equation-discovery-of-a-cloud","repo_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.08063","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.08063"}},"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/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","reach":null}],"summary":{"ran_fixture":2,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"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":0,"samples":[{"code_sha256_prefix":"4872abe81c380787","entry":"compute_cdf","repo":"EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","repo_kind":"official","path":"sec3_data-driven_modeling/sec321_linear_models_and_polynomials/multivariate_polynomial_fit_v2.py","file_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover/blob/HEAD/sec3_data-driven_modeling/sec321_linear_models_and_polynomials/multivariate_polynomial_fit_v2.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4872abe81c380787"}},{"code_sha256_prefix":"89cd18ac4f676e47","entry":"compute_inverse_cdf","repo":"EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","repo_kind":"official","path":"sec3_data-driven_modeling/sec321_linear_models_and_polynomials/multivariate_polynomial_fit_v2.py","file_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover/blob/HEAD/sec3_data-driven_modeling/sec321_linear_models_and_polynomials/multivariate_polynomial_fit_v2.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"89cd18ac4f676e47"}},{"code_sha256_prefix":"69d774755a5e1526","entry":"add_derivatives","repo":"EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","repo_kind":"official","path":"sec2_data/functions.py","file_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover/blob/HEAD/sec2_data/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"69d774755a5e1526"}},{"code_sha256_prefix":"1af7ffeacd9b7364","entry":"differentiate","repo":"EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","repo_kind":"official","path":"sec2_data/functions.py","file_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover/blob/HEAD/sec2_data/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1af7ffeacd9b7364"}},{"code_sha256_prefix":"3661a10fa520cbb7","entry":"differentiate_multiple","repo":"EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover","repo_kind":"official","path":"sec2_data/functions.py","file_url":"https://github.com/EyringMLClimateGroup/grundner23james_EquationDiscovery_CloudCover/blob/HEAD/sec2_data/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3661a10fa520cbb7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}