{"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/spherical-fourier-neural-operators-learning","title":"Spherical Fourier Neural Operators: Learning Stable Dynamics on the Sphere","arxiv_id":"2306.03838","date":"2023-06-06","proceeding":null,"authors":["Boris Bonev","Thorsten Kurth","Christian Hundt","Jaideep Pathak","Maximilian Baust","Karthik Kashinath","Anima Anandkumar"],"abstract":"Fourier Neural Operators (FNOs) have proven to be an efficient and effective method for resolution-independent operator learning in a broad variety of application areas across scientific machine learning. A key reason for their success is their ability to accurately model long-range dependencies in spatio-temporal data by learning global convolutions in a computationally efficient manner. To this end, FNOs rely on the discrete Fourier transform (DFT), however, DFTs cause visual and spectral artifacts as well as pronounced dissipation when learning operators in spherical coordinates since they incorrectly assume a flat geometry. To overcome this limitation, we generalize FNOs on the sphere, introducing Spherical FNOs (SFNOs) for learning operators on spherical geometries. We apply SFNOs to forecasting atmospheric dynamics, and demonstrate stable auto\\-regressive rollouts for a year of simulated time (1,460 steps), while retaining physically plausible dynamics. The SFNO has important implications for machine learning-based simulation of climate dynamics that could eventually help accelerate our response to climate change.","url_abs":"https://arxiv.org/abs/2306.03838v1","url_pdf":"https://arxiv.org/pdf/2306.03838v1.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":"spherical-fourier-neural-operators-learning","repo_url":"https://github.com/nvidia/torch-harmonics","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"spherical-fourier-neural-operators-learning","repo_url":"https://github.com/bernatj/ai-based-attribution","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"spherical-fourier-neural-operators-learning","repo_url":"https://github.com/nvidia/earth2mip","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"operator-learning","task_name":"Operator learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2306.03838","atlas_url":"https://app.syntology.ai/?focus=2306.03838","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.03838"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/nvidia/torch-harmonics","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nvidia/earth2mip","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bernatj/ai-based-attribution","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":2,"unverified":1},"by_repo_kind":{"listed":{"samples":3,"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":"5cd92c0695d2d1e1","entry":"calculate_trajectory","repo":"bernatj/ai-based-attribution","repo_kind":"listed","path":"3_extreme_events_case_studies/hurricane_florence_2018/tropical_cyclone_functions.py","file_url":"https://github.com/bernatj/ai-based-attribution/blob/HEAD/3_extreme_events_case_studies/hurricane_florence_2018/tropical_cyclone_functions.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5cd92c0695d2d1e1"}},{"code_sha256_prefix":"a16c9c0d4c6220e7","entry":"haversine","repo":"bernatj/ai-based-attribution","repo_kind":"listed","path":"3_extreme_events_case_studies/hurricane_florence_2018/tropical_cyclone_functions.py","file_url":"https://github.com/bernatj/ai-based-attribution/blob/HEAD/3_extreme_events_case_studies/hurricane_florence_2018/tropical_cyclone_functions.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a16c9c0d4c6220e7"}},{"code_sha256_prefix":"f54ecc0b9a873dce","entry":"flip_lon_360_2_180","repo":"bernatj/ai-based-attribution","repo_kind":"listed","path":"3_extreme_events_case_studies/shared/utils.py","file_url":"https://github.com/bernatj/ai-based-attribution/blob/HEAD/3_extreme_events_case_studies/shared/utils.py","link_basis":"harvester_set","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":"f54ecc0b9a873dce"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}