fasterize - Fast Polygon to Raster Conversion
Provides a drop-in replacement for rasterize() from the 'raster' package that takes polygon vector or data frame objects, and is much faster. There is support for the main options provided by the rasterize() function, including setting the field used and background value, and options for aggregating multi-layer rasters. Uses the scan line algorithm attributed to Wylie et al. (1967) <doi:10.1145/1465611.1465619>. Note that repository originally was hosted at 'Github' 'ecohealthalliance/fasterize' but was migrated to 'hypertidy/fasterize' in March 2025, and can be found indexed on 'R universe' <https://cran.r-universe.dev/fasterize>.
Last updated
rasterrcpprcpparmadillosfspatialcpp
11.35 score 187 stars 10 dependents 1.5k scripts 2.2k downloadsPROJ - Generic Coordinate System Transformations Using 'PROJ'
A wrapper around the generic coordinate transformation software 'PROJ' that transforms coordinates from one coordinate reference system ('CRS') to another. This includes cartographic projections as well as geodetic transformations. The intention is for this package to be used by user-packages such as 'reproj', and that the older 'PROJ.4' and version 5 pathways be provided by the 'proj4' package.
Last updated
proj
9.92 score 16 stars 15 dependents 143 scripts 2.3k downloads
vapour - Access to the 'Geospatial Data Abstraction Library' ('GDAL')
Provides low-level access to 'GDAL' functionality. 'GDAL' is the 'Geospatial Data Abstraction Library' a translator for raster and vector geospatial data formats that presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats <https://gdal.org/>. This package is focussed on providing exactly and only what GDAL does, to enable developing further tools.
Last updated
cppgdalgdal-apicpp
9.76 score 91 stars 5 dependents 63 scripts 1.3k downloadssilicate - Common Forms for Complex Hierarchical and Relational Data Structures
Generate common data forms for complex data suitable for conversions and transmission by decomposition as paths or primitives. Paths are sequentially-linked records, primitives are basic atomic elements and both can model many forms and be grouped into hierarchical structures. The universal models 'SC0' (structural) and 'SC' (labelled, relational) are composed of edges and can represent any hierarchical form. Specialist models 'PATH', 'ARC' and 'TRI' provide the most common intermediate forms used for converting from one form to another. The methods are inspired by the simplicial complex <https://en.wikipedia.org/wiki/Simplicial_complex> and provide intermediate forms that relate spatial data structures to this mathematical construct.
Last updated
hierarchical-datasimplicial-complexspatial-datastructural-primitivestopologytriangulation
8.75 score 55 stars 7 dependents 122 scripts 406 downloadsncmeta - Straightforward 'NetCDF' Metadata
Extract metadata from 'NetCDF' data sources, these can be files, file handles or servers. This package leverages and extends the lower level functions of the 'RNetCDF' package providing a consistent set of functions that all return data frames. We introduce named concepts of 'grid', 'axis' and 'source' which are all meaningful entities without formal definition in the 'NetCDF' library <https://www.unidata.ucar.edu/software/netcdf>. 'RNetCDF' matches the library itself with only the named concepts of 'variables', 'dimensions' and 'attributes'.
Last updated
8.10 score 13 stars 13 dependents 227 scripts 3.6k downloadsdecido - Bindings for 'Mapbox' Ear Cutting Triangulation Library
Provides constrained triangulation of polygons. Ear cutting (or ear clipping) applies constrained triangulation by successively 'cutting' triangles from a polygon defined by path/s. Holes are supported by introducing a bridge segment between polygon paths. This package wraps the 'header-only' library 'earcut.hpp' <https://github.com/mapbox/earcut.hpp> which includes a reference to the method used by Held, M. (2001) <doi:10.1007/s00453-001-0028-4>.
Last updated
cpp
8.06 score 16 stars 17 dependents 21 scripts 2.2k downloadsgeographiclib - Access to 'GeographicLib'
Bindings to the 'GeographicLib' C++ library <https://geographiclib.sourceforge.io/> for precise geodetic calculations including geodesic computations (distance, bearing, paths, intersections), map projections (UTM/UPS, Transverse Mercator, Lambert Conformal Conic, and more), grid reference systems (MGRS, Geohash, GARS, Georef), coordinate conversions (geocentric, local Cartesian), and polygon area on the WGS84 ellipsoid. All functions are fully vectorized.
Last updated
cpp
7.32 score 9 stars 3 dependents 11 scripts 1.3k downloadscontrolledburn - Sparse Geometry Rasterization with Exact Coverage Fractions
Rasterize polygon, line, and point geometry without materializing any pixel values. For polygons it computes exact coverage fractions for polygon-grid intersections, returning sparse tables: run-length encoded interior cells and individually weighted boundary cells. The scanline algorithm is O(perimeter) in both time and memory, using the scan line fill attributed to Wylie et al. (1967) <doi:10.1145/1465611.1465619>. Exact coverage fractions use the exactextract algorithm by Daniel Baston, vendored from the 'exactextractr' package <doi:10.32614/CRAN.package.exactextractr>. Derived from the 'fasterize' package by Noam Ross.
Last updated
compressionlazypolygonsrastercpp
7.10 score 19 stars 20 scripts 213 downloads
quadmesh - Quadrangle Mesh
Create surface forms from matrix or 'raster' data for flexible plotting and conversion to other mesh types. The functions 'quadmesh' or 'triangmesh' produce a continuous surface as a 'mesh3d' object as used by the 'rgl' package. This is used for plotting raster data in 3D (optionally with texture), and allows the application of a map projection without data loss and many processing applications that are restricted by inflexible regular grid rasters. There are discrete forms of these continuous surfaces available with 'dquadmesh' and 'dtriangmesh' functions.
Last updated
7.05 score 27 stars 1 dependents 69 scripts 534 downloadsximage - Draw Images of Raster Data and Related Adornments
Draw images easily, set up a plot with an image, specify where that image should be placed. Image plot by default reflects the index of the image data itself, or can be specified in simple extent terms 'xmin,xmax,ymin,ymax'. Numeric matrices, integer arrays, byte arrays, character arrays, and native rasters are supported. Flat vectors are supported in a limited sense with a heuristic to guess at the likely dimensionality and some helpers. A combination of image() and rasterImage() from the 'graphics' package with their good features in one place.
Last updated
6.64 score 9 stars 1 dependents 20 scripts 230 downloadsceramic - Download Online Imagery Tiles
Download imagery tiles to a standard cache and load the data into raster objects. Facilities for 'AWS' terrain <https://registry.opendata.aws/terrain-tiles/> terrain and 'Mapbox' <https://www.mapbox.com/> servers are provided.
Last updated
6.59 score 95 stars 163 scripts 350 downloadswkpool - Vertex Pool Topology for Well-Known Geometry
Establishes and maintains vertex pool topology for geometry handled by 'wk'. Segments are the atomic unit, vertices are shared via integer references into a pool. Topology is made discoverable via coincident vertex detection while not requiring modification of the input data. Topological data models follow principles described in Worboys and Duckham (2004, ISBN:978-0415283755). The edge-based topology geometry decomposed into vertices and directed edge pairs is a simplification of the quad-edge case in Guibas & Stolfi (1985) <doi:10.1145/282918.282923>.
Last updated
cpp
6.45 score 6 stars 1 dependents 13 scripts 351 downloadsgraticule - Meridional and Parallel Lines for Maps
Create graticule lines and labels for maps. Control the creation of lines or tiles by setting their placement (at particular meridians and parallels) and extent (along parallels and meridians). Labels are created independently of lines.
Last updated
6.43 score 17 stars 1 dependents 106 scripts 536 downloadslazysf - Delayed Read for 'GDAL' Vector Data Sources
Lazy read for drawings. A 'dplyr' back end for data sources supported by 'GDAL' vector drivers, that allows working with local or remote sources as if they are in-memory data frames. Basic features work with any drawing format ('GDAL vector data source') supported by the 'gdalraster' package.
Last updated
spatial-gdal-sf-dbi
5.95 score 30 stars 10 scripts 403 downloadssds - Spatial Data Sources
Descriptions of spatial data sources that can be read directly with or without download. Most sources are readable by 'GDAL' software. There are functions for imagery, elevation, and a variety of easily accessible data streams including image tile servers, links to online files, and geographic data services.
Last updated
5.81 score 8 stars 2 dependents 18 scripts 398 downloadscrsmeta - Extract Coordinate System Metadata
Obtain coordinate system metadata from various data formats. There are functions to extract a 'CRS' (coordinate reference system, <https://en.wikipedia.org/wiki/Spatial_reference_system>) in 'EPSG' (European Petroleum Survey Group, <http://www.epsg.org/>), 'PROJ4' <https://proj.org/>, or 'WKT2' (Well-Known Text 2, <http://docs.opengeospatial.org/is/12-063r5/12-063r5.html>) forms. This is purely for getting simple metadata from in-memory formats, please use other tools for out of memory data sources.
Last updated
5.50 score 6 stars 21 dependents 4 scripts 1.7k downloadsunjoin - Separate a Data Frame by Normalization
Separate a data frame in two based on key columns. The function unjoin() provides an inside-out version of a nested data frame. This is used to identify duplication and normalize it (in the database sense) by linking two tables with the redundancy removed. This is a basic requirement for detecting topology within spatial structures that has motivated the need for this package as a building block for workflows within more applied projects.
Last updated
5.10 score 12 stars 7 dependents 5 scripts 636 downloadsdsn - Data Source Name and Description Helpers for Use with 'GDAL'
Simple helpers for 'GDAL' data source names ('DSN'), prefix and suffix and other handling. 'GDAL' is the Geospatial Data Abstraction Library <https://gdal.org/>, not used by this package directly.
Last updated
4.92 score 7 stars 4 dependents 20 scripts 232 downloadslaridae - Constrained Triangulation and Meshing with CGAL
A persistent constrained Delaunay triangulation handle backed by the 'CGAL' (Computational Geometry Algorithms Library) classes 'Constrained_triangulation_plus_2' and 'Delaunay_mesher_2' (The CGAL Project (2026) <https://doc.cgal.org/6.2.1/Manual/packages.html>). Points and constraint segments can be inserted and removed at any time, crossing constraints are resolved by inserting the crossing, and the mesh can be refined by minimum angle, maximum area, or a sizing field that varies with position. Input and output follow the vertices / segments / triangles contract shared with 'cdtr', including per-triangle constraint depth.
Last updated
c-plus-pluscgalconstrained-delaunay-triangulationverticescpp
4.78 score 10 stars 8 scriptsgris - A Flexible Geometry and Topology Model for Spatial Data in R
A flexible geometry data model for R.
Last updated
4.10 score 5 stars 50 scriptsarea - Calculate Area of Triangles and Polygons
Calculate the area of triangles and polygons using the shoelace formula. Area may be signed, taking into account path orientation, or unsigned, ignoring path orientation. The shoelace formula is described at <https://en.wikipedia.org/wiki/Shoelace_formula>.
Last updated
cpp
4.09 score 13 stars 19 scripts 343 downloadscdtr - Constrained Delaunay Triangulation with Refinement
Binding to the 'CDT' header-only C++ library: constrained and conforming Delaunay triangulation, Ruppert refinement by area or minimum angle (Ruppert (1995) <doi:10.1006/jagm.1995.1021>), resolution of crossing constraints, and topological region depth per triangle. Aimed at replacing 'RTriangle' in 'anglr'.
Last updated
cpp
3.65 score 1 stars 1 dependents 6 scripts 59 downloadsaltarr - Lazy Chunked Arrays as ALTREP Vectors
A prototype exploring how far base R array indexing can drive planned reads of remote, chunked, encoded arrays when the array is an ALTREP vector with a 'dim' attribute and no class. Chunks come from a user-supplied fetch function, so any store (object storage, 'Zarr', 'GDAL') can sit behind it.
Last updated
3.60 score 2 stars 10 scriptsclipper - Another Port of Angus Johnson's 'clipper' Polygon Clipping Library
Another Port of Angus Johnson's 'clipper' Polygon Clipping Library.
Last updated
cpp
3.41 score 2 stars 26 scriptsrustycogs - TIFF Virtualization and Decoding via Rust
Extract byte-range chunk references from cloud-hosted TIFF and COG files without reading pixel data. Uses the Rust 'async-tiff' and 'object_store' crates for async I/O across S3, GCS, Azure, HTTP, and local storage. Returns a data frame of tile offsets and metadata suitable for constructing Kerchunk or Zarr virtual stores.
Last updated
rustcargo
3.18 score 6 stars 9 scriptsisoraster - Create Contour Lines and Contour Polygons from a Raster
Creates nice smooth 'marching squares' contour lines and polygons.
Last updated
2.65 score 9 stars 4 scriptsscgraph - Common Forms for Graph Structures
Provides support for the 'silicate' common form data structure for igraph.
Last updated
edgesigraphsc-form
2.62 score 7 stars 12 scriptszarrr - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
2.40 score 5 stars 5 scriptsncapi - What the Package Does (one line, title case)
What the package does (one paragraph).
Last updated
netcdfcpp
2.40 score 5 stars 2 scriptscdt - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
2.40 score 2 stars 25 scriptsscdb - Database Backend for Common Form Data
Creates a database backend from `silicate` data.
Last updated
2.38 score 3 stars 16 scriptsL3bin - Integerized Sinusoidal Binning Scheme for Level 3 Data
The NASA Ocean Biology processing Group L3 bin scheme, based on the sinusoidal map projection. Pseudo code for the binning scheme was published in Appendix A of NASA Technical Memorandum 104566, Vol. 32., listed in URL.
Last updated
2.30 score 4 stars 3 scriptsprojr - Comprehensive Interface to the PROJ Library
Direct access to the PROJ coordinate transformation library (>= 9.6.0), including coordinate transformation, CRS inspection, decomposition, identification, operation discovery, projection factors, and database queries. Uses cpp11 for bindings to the PROJ C API.
Last updated
projcpp
2.30 score 40 scriptsfilearchy - Write Imagery to Tiles
Create directory structure of image tiles.
Last updated
gdalpngrastertiles
2.30 score 4 stars 2 scriptsquad - Intermediate Forms of Raster Grids
Raster grids and quads as first class types with helpers. Provides a low level API for generating mesh index and vertices from the simplest abstraction of raster grid, input dimension and (optionally) extent to generate components of meshes for downstream visualization and efficient coordinate transformation. API functions may be 'Linked To' in the R headers library way.
Last updated
gridmeshquadrastercpp
2.30 score 1 stars 4 scripts 18 downloadsgdalwebsrv - GDAL Imagery Services 'GDAL_WMS' (Web Map Services)
Provide imagery services via GDAL's Web Map Services. <https://gdal.org/drivers/raster/wms.html>
Last updated
2.30 score 4 stars 1 scriptsvtkr - Read a Limited Subset of Visualization Toolkit Formats
Read some VTK formats. VTK is the Visualization Toolkit <https://en.wikipedia.org/wiki/VTK>.
Last updated
2.30 score 4 stars 3 scriptssvgplotr - Fast plots of svg graphics in R
What the package does (one paragraph).
Last updated
cpp
2.30 score 4 stars 1 scriptswince - Write NetCDF Files for the Obvious Situations
Create a 3D 'NetCDF' with time or depth as the third dimension, and convention-conforming coordinate system metadata. Eventually we'll set this up to write slice by slice which is easy once the file is instantiated, but atm it's purely an experiment. We might include capability to create 4D ones too.
Last updated
2.18 score 3 stars 3 scriptsgranulated - Define Rectangular Regions with Granularity
A granule is a rectangular extent with an implied discretization. The default granularity is 1x1, the range is a whole divisor of itself. This is the general concept of a raster, a rectangular window with discretization. The common extent or bounding box concept can be thought of as the degenerate case (1x1).
Last updated
2.18 score 3 stars 1 scriptsplover - What the Package Does (One Line, Title Case)
Point in polygon.
Last updated
cpp
2.00 score 2 stars 1 scriptspfft - What the Package Does (one line, title case)
What the package does (one paragraph).
Last updated
2.00 score 2 stars 3 scriptscroc - Tools for Ocean Colour
Work with data from NASA's ocean colour data, primarily the 'Level-3 bin' files. There are functions to read and work with the ragged array 'L3 bins' mesh and calculate biophysical properties from remote sensing reflectance data.
Last updated
cpp
2.00 score 2 stars 9 scriptsearthcircle - Create Those Geographic Circles
Create geographic circles, note this is not the Tissot Inidicatrix see hypertidy/tissot for that.
Last updated
1.70 score 1 stars 2 scriptsfutility - Helpers for the 'GDAL' Application Utility Libraries
Helpful wrappers around the GDAL utilities, for now via the 'sf' package.
Last updated
1.70 score 6 scripts 268 downloadsxplot - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
1.70 score 1 scriptsactivate - Activate to Determine the Context of Subsequent Manipulations
A simple context-controlling mechanism to 'activate' a named sub-entity in an object. The generic functions are provided with bare default methods. It is expected that other packages will import the generic and specialize it.
Last updated
2.18 score 1 stars 1 dependents 4 scriptstrowel - A Live Constrained Delaunay Mesh
A persistent, editable constrained Delaunay triangulation: add and remove points and segments at any time, refine toward quality targets, and read the mesh back as plain tables (vertices, triangles with constraint depth, segments). Built on the 'spade' Rust crate via extendr. The incremental sibling of 'cdtr'.
Last updated
rustcargo
1.70 score 1 stars 5 scriptsgridcol - Gridded Vectors
Vectors for cell indexes from raster grids.
Last updated
1.70 score 1 stars 3 scriptstidyff - Create Native raster Files With ff
Couplings between raster and ff files.
Last updated
1.70 score 1 stars 6 scriptscells - Grid Logic
Grid logic for rasters. Grid logic involves a rectangular extent and a 'grain', the discretization of that extent into rectangular cells. This logic exists in several packages but here is intended to be completely independent of data usage.
Last updated
1.59 score 1 stars 39 scriptsmgrsrev - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
1.00 scoremesh3d - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
1.00 score 1 scriptsrvgpm - What the Package Does (One Line, Title Case)
What the package does (one paragraph).
Last updated
1.00 score