{"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/generating-physically-consistent-high","title":"Hard-Constrained Deep Learning for Climate Downscaling","arxiv_id":"2208.05424","date":"2022-08-08","proceeding":null,"authors":["Paula Harder","Alex Hernandez-Garcia","Venkatesh Ramesh","Qidong Yang","Prasanna Sattigeri","Daniela Szwarcman","Campbell Watson","David Rolnick"],"abstract":"The availability of reliable, high-resolution climate and weather data is important to inform long-term decisions on climate adaptation and mitigation and to guide rapid responses to extreme events. Forecasting models are limited by computational costs and, therefore, often generate coarse-resolution predictions. Statistical downscaling, including super-resolution methods from deep learning, can provide an efficient method of upsampling low-resolution data. However, despite achieving visually compelling results in some cases, such models frequently violate conservation laws when predicting physical variables. In order to conserve physical quantities, here we introduce methods that guarantee statistical constraints are satisfied by a deep learning downscaling model, while also improving their performance according to traditional metrics. We compare different constraining approaches and demonstrate their applicability across different neural architectures as well as a variety of climate and weather data sets. Besides enabling faster and more accurate climate predictions through downscaling, we also show that our novel methodologies can improve super-resolution for satellite data and natural images data sets.","url_abs":"https://arxiv.org/abs/2208.05424v9","url_pdf":"https://arxiv.org/pdf/2208.05424v9.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":"abstracts"},"code_links":[{"paper_slug":"generating-physically-consistent-high","repo_url":"https://github.com/rolnicklab/constrained-downscaling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-learning","task_name":"Deep Learning"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2208.05424","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2208.05424"}},"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/rolnicklab/constrained-downscaling","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"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":"18fbe72ffac82ee3","entry":"conv3x3","repo":"rolnicklab/constrained-downscaling","repo_kind":"official","path":"models.py","file_url":"https://github.com/rolnicklab/constrained-downscaling/blob/HEAD/models.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"18fbe72ffac82ee3"}},{"code_sha256_prefix":"0bcee60a90a51b11","entry":"meshgrid","repo":"rolnicklab/constrained-downscaling","repo_kind":"official","path":"models.py","file_url":"https://github.com/rolnicklab/constrained-downscaling/blob/HEAD/models.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0bcee60a90a51b11"}},{"code_sha256_prefix":"aa8e026cf82a0f06","entry":"gan_optimizer_step","repo":"rolnicklab/constrained-downscaling","repo_kind":"official","path":"training.py","file_url":"https://github.com/rolnicklab/constrained-downscaling/blob/HEAD/training.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa8e026cf82a0f06"}},{"code_sha256_prefix":"b9087c041eb91178","entry":"get_optimizer","repo":"rolnicklab/constrained-downscaling","repo_kind":"official","path":"utils.py","file_url":"https://github.com/rolnicklab/constrained-downscaling/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b9087c041eb91178"}},{"code_sha256_prefix":"81dae2bf46e6e130","entry":"load_data","repo":"rolnicklab/constrained-downscaling","repo_kind":"official","path":"utils.py","file_url":"https://github.com/rolnicklab/constrained-downscaling/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81dae2bf46e6e130"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}