{"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/sphere2vec-multi-scale-representation","title":"Sphere2Vec: Multi-Scale Representation Learning over a Spherical Surface for Geospatial Predictions","arxiv_id":"2201.10489","date":"2022-01-25","proceeding":null,"authors":["Gengchen Mai","Yao Xuan","Wenyun Zuo","Krzysztof Janowicz","Ni Lao"],"abstract":"Generating learning-friendly representations for points in a 2D space is a fundamental and long-standing problem in machine learning. Recently, multi-scale encoding schemes (such as Space2Vec) were proposed to directly encode any point in 2D space as a high-dimensional vector, and has been successfully applied to various (geo)spatial prediction tasks. However, a map projection distortion problem rises when applying location encoding models to large-scale real-world GPS coordinate datasets (e.g., species images taken all over the world) - all current location encoding models are designed for encoding points in a 2D (Euclidean) space but not on a spherical surface, e.g., earth surface. To solve this problem, we propose a multi-scale location encoding model called Sphere2V ec which directly encodes point coordinates on a spherical surface while avoiding the mapprojection distortion problem. We provide theoretical proof that the Sphere2Vec encoding preserves the spherical surface distance between any two points. We also developed a unified view of distance-reserving encoding on spheres based on the Double Fourier Sphere (DFS). We apply Sphere2V ec to the geo-aware image classification task. Our analysis shows that Sphere2V ec outperforms other 2D space location encoder models especially on the polar regions and data-sparse areas for image classification tasks because of its nature for spherical surface distance preservation.","url_abs":"https://arxiv.org/abs/2201.10489v1","url_pdf":"https://arxiv.org/pdf/2201.10489v1.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":"sphere2vec-multi-scale-representation","repo_url":"https://github.com/gengchenmai/sphere2vec","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[{"method_slug":"gps","method_name":"GPS"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2201.10489","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2201.10489"}},"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/gengchenmai/sphere2vec","reach":null}],"summary":{"ran_fixture":1,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"listed":{"samples":4,"ran":3,"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":4,"samples":[{"code_sha256_prefix":"eccb2504e6bf75c5","entry":"compute_mrr_by_lat","repo":"gengchenmai/sphere2vec","repo_kind":"listed","path":"main/eval_analysis.py","file_url":"https://github.com/gengchenmai/sphere2vec/blob/HEAD/main/eval_analysis.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":"eccb2504e6bf75c5"}},{"code_sha256_prefix":"f0c8a19e7f1331fe","entry":"compute_mrr_by_latlongrid","repo":"gengchenmai/sphere2vec","repo_kind":"listed","path":"main/eval_analysis.py","file_url":"https://github.com/gengchenmai/sphere2vec/blob/HEAD/main/eval_analysis.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f0c8a19e7f1331fe"}},{"code_sha256_prefix":"b6dbb6a8dbe80516","entry":"plot_locs","repo":"gengchenmai/sphere2vec","repo_kind":"listed","path":"main/eval_analysis.py","file_url":"https://github.com/gengchenmai/sphere2vec/blob/HEAD/main/eval_analysis.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b6dbb6a8dbe80516"}},{"code_sha256_prefix":"0e60fa29baf88f8c","entry":"test","repo":"gengchenmai/sphere2vec","repo_kind":"listed","path":"main/train_tang_baseline.py","file_url":"https://github.com/gengchenmai/sphere2vec/blob/HEAD/main/train_tang_baseline.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0e60fa29baf88f8c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}