Package: a5R 0.5.0

Hugh Graham

a5R: 'A5' Discrete Global Grid System

Bindings for the "A5 geospatial index" <https://a5geo.org/>. 'A5' partitions the Earth's surface into pentagonal cells across 31 resolution levels using an equal-area projection onto a dodecahedron. Provides functions for indexing coordinates to cells, traversing the cell hierarchy, computing cell boundaries, and compacting/uncompacting cell sets. Powered by the 'A5' 'Rust' crate via 'extendr'.

Authors:Hugh Graham [aut, cre], belian.earth [cph]

a5R_0.5.0.tar.gz
a5R_0.5.0.tar.gz(r-4.7-arm64)a5R_0.5.0.tar.gz(r-4.7-x86_64)a5R_0.5.0.tar.gz(r-4.6-arm64)a5R_0.5.0.tar.gz(r-4.6-x86_64)
a5R_0.5.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
a5R/json (API)

# Install 'a5R' in R:
install.packages('a5R', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/belian-earth/a5r/issues

Pkgdown/docs site:https://belian-earth.github.io

On CRAN:

Conda:

rustcargo

4.32 score 21 scripts 624 downloads 27 exports 8 dependencies

Last updated from:44902acd77. Checks:4 NOTE, 2 OK. Indexed: no.

TargetResultTimeFilesSyslog
linux-devel-arm64NOTE196
linux-devel-x86_64NOTE177
source / vignettesOK300
linux-release-arm64NOTE167
linux-release-x86_64NOTE168
wasm-releaseOK184

Exports:a5_cella5_cell_areaa5_cell_distancea5_cell_from_arrowa5_cell_to_arrowa5_cell_to_boundarya5_cell_to_childrena5_cell_to_lonlata5_cell_to_parenta5_compacta5_get_num_cellsa5_get_num_childrena5_get_res0_cellsa5_get_resolutiona5_get_threadsa5_grid_diska5_hex_to_u64a5_is_valida5_linestring_to_cellsa5_lonlat_to_cella5_polygon_to_cellsa5_set_threadsa5_spherical_capa5_u64_to_hexa5_uncompactas_a5_cellis_a5_cell

Dependencies:cligluelifecycleRcpprlangunitsvctrswk

Getting started with a5R
Index a point | Cell boundaries | Hierarchy and compaction | Compact and uncompact | Traversal | Converting geometries to a5 cells | Tracing a line

Last update: 2026-05-14
Started: 2026-03-16

How a5R stores cell IDs without strings
The problem | The solution: eight raw-byte fields | R-side: a vctrs record type | Why this matters | NA handling | Summary

Last update: 2026-05-14
Started: 2026-03-26

Multi-threading
Setting the thread count | What gets parallelised | When is it worthwhile? | Thread safety

Last update: 2026-05-14
Started: 2026-03-16

Traversal and distance
Selecting cells around a point | Distance heatmap | Distance methods

Last update: 2026-05-14
Started: 2026-03-16

Working with Arrow and Parquet
The uint64 problem | The solution: a5_cell_from_arrow() and a5_cell_to_arrow() | Writing and reading Parquet | How it works under the hood

Last update: 2026-05-14
Started: 2026-03-26