{"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/stochastic-super-resolution-for-downscaling","title":"Stochastic Super-Resolution for Downscaling Time-Evolving Atmospheric Fields with a Generative Adversarial Network","arxiv_id":"2005.10374","date":"2020-05-20","proceeding":null,"authors":["Jussi Leinonen","Daniele Nerini","Alexis Berne"],"abstract":"Generative adversarial networks (GANs) have been recently adopted for super-resolution, an application closely related to what is referred to as \"downscaling\" in the atmospheric sciences: improving the spatial resolution of low-resolution images. The ability of conditional GANs to generate an ensemble of solutions for a given input lends itself naturally to stochastic downscaling, but the stochastic nature of GANs is not usually considered in super-resolution applications. Here, we introduce a recurrent, stochastic super-resolution GAN that can generate ensembles of time-evolving high-resolution atmospheric fields for an input consisting of a low-resolution sequence of images of the same field. We test the GAN using two datasets, one consisting of radar-measured precipitation from Switzerland, the other of cloud optical thickness derived from the Geostationary Earth Observing Satellite 16 (GOES-16). We find that the GAN can generate realistic, temporally consistent super-resolution sequences for both datasets. The statistical properties of the generated ensemble are analyzed using rank statistics, a method adapted from ensemble weather forecasting; these analyses indicate that the GAN produces close to the correct amount of variability in its outputs. As the GAN generator is fully convolutional, it can be applied after training to input images larger than the images used to train it. It is also able to generate time series much longer than the training sequences, as demonstrated by applying the generator to a three-month dataset of the precipitation radar data. The source code to our GAN is available at https://github.com/jleinonen/downscaling-rnn-gan.","url_abs":"https://arxiv.org/abs/2005.10374v4","url_pdf":"https://arxiv.org/pdf/2005.10374v4.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":"stochastic-super-resolution-for-downscaling","repo_url":"https://github.com/jleinonen/downscaling-rnn-gan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"Generative Adversarial Network"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"time-series","task_name":"Time Series Analysis"},{"task_slug":"weather-forecasting","task_name":"Weather Forecasting"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2005.10374","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.10374"}},"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/jleinonen/downscaling-rnn-gan","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"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":"693f7625441b5824","entry":"MultiScaleSSIM","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/msssim.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/msssim.py","link_basis":"first_harvest_node","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":"693f7625441b5824"}},{"code_sha256_prefix":"8ec6dff5b9b4b4be","entry":"balanced_spatial_average","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/rainfarm.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/rainfarm.py","link_basis":"first_harvest_node","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":"8ec6dff5b9b4b4be"}},{"code_sha256_prefix":"17f1e068c67986de","entry":"crps_ensemble","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/crps.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/crps.py","link_basis":"first_harvest_node","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":"17f1e068c67986de"}},{"code_sha256_prefix":"0397bd2d5a36751a","entry":"ensure_list","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/meta.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/meta.py","link_basis":"first_harvest_node","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":"0397bd2d5a36751a"}},{"code_sha256_prefix":"2abd6399586eaf5b","entry":"generator_initialized","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/models.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/models.py","link_basis":"first_harvest_node","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":"2abd6399586eaf5b"}},{"code_sha256_prefix":"469ba9d8738ccef8","entry":"input_shapes","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/meta.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/meta.py","link_basis":"first_harvest_node","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":"469ba9d8738ccef8"}},{"code_sha256_prefix":"1d9fc5224f2c9ec9","entry":"log_slope","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/rainfarm.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/rainfarm.py","link_basis":"first_harvest_node","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":"1d9fc5224f2c9ec9"}},{"code_sha256_prefix":"8effcdaf0cd7e987","entry":"radial_average","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/rainfarm.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/rainfarm.py","link_basis":"first_harvest_node","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":"8effcdaf0cd7e987"}},{"code_sha256_prefix":"e0e94f7ff0dd7bcb","entry":"resize_lanczos","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/plots.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/plots.py","link_basis":"first_harvest_node","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":"e0e94f7ff0dd7bcb"}},{"code_sha256_prefix":"41421d55d26f881d","entry":"wasserstein_loss","repo":"jleinonen/downscaling-rnn-gan","repo_kind":"official","path":"dsrnngan/gan.py","file_url":"https://github.com/jleinonen/downscaling-rnn-gan/blob/HEAD/dsrnngan/gan.py","link_basis":"first_harvest_node","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":"41421d55d26f881d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}