% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/a5R-package.R
\docType{package}
\name{a5R-package}
\alias{a5R}
\alias{a5R-package}
\title{a5R: A5 Pentagonal Geospatial Index for R}
\description{
R bindings for the \href{https://a5geo.org/}{A5} pentagonal geospatial index /
discrete global grid system, powered by the a5 Rust crate via extendr.
}
\section{Cell type}{

\itemize{
\item \code{\link[=a5_cell]{a5_cell()}} --- construct cell ID vectors
\item \link[=a5_cell]{is_a5_cell()} / \link[=a5_cell]{a5_is_valid()} --- type test and
validation
\item \code{\link[=a5_u64_to_hex]{a5_u64_to_hex()}} / \link[=a5_u64_to_hex]{a5_hex_to_u64()} --- hex string
conversion
}
}

\section{Indexing}{

\itemize{
\item \code{\link[=a5_lonlat_to_cell]{a5_lonlat_to_cell()}} --- coordinates to cell IDs
\item \code{\link[=a5_cell_to_lonlat]{a5_cell_to_lonlat()}} --- cell IDs to centre coordinates
}
}

\section{Geometry}{

\itemize{
\item \code{\link[=a5_cell_to_boundary]{a5_cell_to_boundary()}} --- cell boundary polygons (WKB or WKT)
\item \code{\link[=a5_cell_area]{a5_cell_area()}} --- cell area at a given resolution
\item \code{\link[=a5_cell_distance]{a5_cell_distance()}} --- distance between cell centroids
\item \code{\link[=a5_get_num_cells]{a5_get_num_cells()}} --- total cell count at a resolution
\item \code{\link[=a5_get_num_children]{a5_get_num_children()}} --- child count between resolutions
}
}

\section{Hierarchy}{

\itemize{
\item \code{\link[=a5_get_resolution]{a5_get_resolution()}} --- extract resolution from cell IDs
\item \code{\link[=a5_cell_to_parent]{a5_cell_to_parent()}} --- navigate to coarser cells
\item \code{\link[=a5_cell_to_children]{a5_cell_to_children()}} --- navigate to finer cells
\item \code{\link[=a5_get_res0_cells]{a5_get_res0_cells()}} --- the 12 root cells
\item \code{\link[=a5_compact]{a5_compact()}} / \code{\link[=a5_uncompact]{a5_uncompact()}} --- compress and expand cell sets
}
}

\section{Traversal}{

\itemize{
\item \code{\link[=a5_grid_disk]{a5_grid_disk()}} --- neighbours by hop count
\item \code{\link[=a5_spherical_cap]{a5_spherical_cap()}} --- neighbours by great-circle distance
}
}

\section{Geometry indexing}{

\itemize{
\item \code{\link[=a5_polygon_to_cells]{a5_polygon_to_cells()}} --- cells whose centres lie inside a polygon
\item \code{\link[=a5_linestring_to_cells]{a5_linestring_to_cells()}} --- cells crossed by a great-circle polyline
}
}

\section{Arrow & Parquet}{

\itemize{
\item \code{\link[=a5_cell_from_arrow]{a5_cell_from_arrow()}} / \link[=a5_cell_from_arrow]{a5_cell_to_arrow()} ---
lossless conversion to/from Arrow \code{uint64}
}
}

\section{Configuration}{

\itemize{
\item \code{\link[=a5_set_threads]{a5_set_threads()}} / \code{\link[=a5_get_threads]{a5_get_threads()}} --- multi-threading control
}
}

\section{Vignettes}{

\itemize{
\item \code{vignette("a5R")} --- getting started
\item \code{vignette("multithreading")} --- parallel processing
\item \code{vignette("internal-cell-representation")} --- how cell IDs are stored
\item \code{vignette("arrow-parquet")} --- Arrow and Parquet interop
}
}

\seealso{
Useful links:
\itemize{
  \item \url{https://github.com/belian-earth/a5R}
  \item \url{https://belian-earth.github.io/a5R/}
  \item Report bugs at \url{https://github.com/belian-earth/a5R/issues}
}

}
\author{
\strong{Maintainer}: Hugh Graham \email{hugh@belian.earth}

Authors:
\itemize{
  \item Hugh Graham \email{hugh@belian.earth}
}

Other contributors:
\itemize{
  \item belian.earth [copyright holder]
}

}
\keyword{internal}
