Package: DuckDBSpatial 0.99.00

Patrick Aboyoun

DuckDBSpatial: DuckDB-Backed Spatial Data Structures

Provides DuckDB-backed implementations of spatial data structures for efficient out-of-memory operations on large spatial datasets. The package includes 68 sf-compatible spatial methods (st_intersects, st_contains, st_within, etc.) and GeoParquet 1.0 I/O support via writeGeoParquet(). Ideal for spatial analysis, genomic interval analysis, and integration with BiocDuckDB for MultiAssaySpatialExperiment workflows requiring memory-efficient operations on large datasets.

Authors:Patrick Aboyoun [aut, cre], Genentech, Inc. [cph]

DuckDBSpatial_0.99.00.tar.gz
DuckDBSpatial_0.99.00.zip(r-4.7-any)DuckDBSpatial_0.99.00.zip(r-4.6-any)DuckDBSpatial_0.99.00.zip(r-4.5-any)
DuckDBSpatial_0.99.00.tgz(r-4.6-any)DuckDBSpatial_0.99.00.tgz(r-4.5-any)
DuckDBSpatial_0.99.00.tar.gz(r-4.7-any)DuckDBSpatial_0.99.00.tar.gz(r-4.6-any)
DuckDBSpatial_0.99.00.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
DuckDBSpatial/json (API)

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

Bug tracker:https://github.com/biocstaging/duckdbspatial/issues

On CRAN:

Conda:

dataimportdatarepresentationinfrastructuresoftware

4.04 score 72 exports 52 dependencies

Last updated from:1018d2fe81. Checks:1 WARNING, 9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
bioc-checksWARNING199
linux-devel-x86_64OK309
source / vignettesOK264
linux-release-x86_64OK317
macos-release-arm64OK345
macos-oldrel-arm64OK209
windows-devel-x86_64OK434
windows-release-x86_64OK394
windows-oldrel-x86_64OK392
wasm-releaseOK199

Exports:asCoordinateTransformcoordinateSystemctAffinectAffineMatrixctApplyctBetweenctBijectionctByDimensionctGraphctIdentityctInvertctMapAxisctPathctRotationctScalectSequencectTranslationenableGeoParquetConversionlayerBboxRangelayerSpatialMatchlayerSpatialOverlapslayerSubsetByBboxlayerSubsetByGeometryreadGeoParquetspatialSortPointsst_affinest_build_areast_collectst_collect_aggst_containsst_contains_properlyst_covered_byst_coversst_crossesst_dimensionst_disjointst_distancest_end_pointst_envelopest_envelope_aggst_equalsst_flip_coordinatesst_geometry_typest_geomfromtext_sqlst_inscribed_circlest_intersects_tablest_is_closedst_is_emptyst_is_ringst_is_simplest_is_within_distancest_lengthst_line_interpolatest_line_projectst_line_substringst_make_envelope_sqlst_num_geometriesst_num_interior_ringsst_num_pointsst_overlapsst_perimeterst_point_sqlst_reduce_precisionst_remove_repeated_pointsst_start_pointst_touchesst_union_aggst_withinst_within_properlytransformLayerwriteGeoParquetwriteSpatialPointsParquet

Dependencies:abindarrowassertthatBiocGenericsbitbit64blobclassclassIntclicpp11DBIdbplyrDelayedArraydplyrduckdbDuckDBDataFramee1071genericsglueIRangesKernSmoothlatticelifecyclemagrittrMASSMatrixMatrixGenericsmatrixStatspillarpkgconfigproxypurrrR6Rcpprlangs2S4ArraysS4VectorssfSparseArraystringistringrtibbletidyrtidyselectunitsutf8vctrswithrwkXVector

Introduction to DuckDBSpatial
Introduction | Installation | Lazy spatial columns | Spatial predicates and filtering | Layer-level engines for coordinate columns | GeoParquet I/O | When to use DuckDBSpatial | Session information

Last update: 2026-07-08
Started: 2026-07-06

Design and extension of DuckDBSpatial
Scope | Architecture | From sf generics to spatial SQL | Two dispatch paths | GeoParquet I/O | Extending, and the BiocDuckDB integration | Session information

Last update: 2026-07-08
Started: 2026-07-06

Readme and manuals

Help Manual

Help pageTopics
Coerce a transform dict into a CoordinateTransformasCoordinateTransform
Coordinate-transform constructors (OME-NGFF RFC-5)coordinate-transforms ctAffine ctBijection ctByDimension ctIdentity ctMapAxis ctRotation ctScale ctSequence ctTranslation
Define a named coordinate systemcoordinateSystem
Lower a coordinate transform to a homogeneous affine matrixctAffineMatrix
Apply a coordinate transform to a matrix of pointsctApply
Transform points between two coordinate systemsctBetween
Build a coordinate-transform graphctGraph
Invert a coordinate transformctInvert
Resolve the transform between two coordinate systemsctPath
Spatial operations on DuckDBColumn objectsDuckDBColumn-spatial st_area.DuckDBColumn st_as_binary.DuckDBColumn st_as_sfc.DuckDBColumn st_as_text.DuckDBColumn st_bbox.DuckDBColumn st_boundary.DuckDBColumn st_buffer.DuckDBColumn st_build_area.DuckDBColumn st_centroid.DuckDBColumn st_collect.DuckDBColumn st_collection_extract.DuckDBColumn st_concave_hull.DuckDBColumn st_contains.DuckDBColumn st_contains_properly.DuckDBColumn st_convex_hull.DuckDBColumn st_coordinates.DuckDBColumn st_covered_by.DuckDBColumn st_covers.DuckDBColumn st_crosses.DuckDBColumn st_difference.DuckDBColumn st_dimension.DuckDBColumn st_disjoint.DuckDBColumn st_distance.DuckDBColumn st_end_point.DuckDBColumn st_envelope.DuckDBColumn st_equals.DuckDBColumn st_exterior_ring.DuckDBColumn st_flip_coordinates.DuckDBColumn st_geometry_type.DuckDBColumn st_inscribed_circle.DuckDBColumn st_intersection.DuckDBColumn st_intersects.DuckDBColumn st_is_closed.DuckDBColumn st_is_empty.DuckDBColumn st_is_ring.DuckDBColumn st_is_simple.DuckDBColumn st_is_valid.DuckDBColumn st_is_within_distance.DuckDBColumn st_length.DuckDBColumn st_line_interpolate.DuckDBColumn st_line_merge.DuckDBColumn st_line_project.DuckDBColumn st_line_substring.DuckDBColumn st_make_valid.DuckDBColumn st_minimum_rotated_rectangle.DuckDBColumn st_nearest_points.DuckDBColumn st_node.DuckDBColumn st_normalize.DuckDBColumn st_num_geometries.DuckDBColumn st_num_interior_rings.DuckDBColumn st_num_points.DuckDBColumn st_overlaps.DuckDBColumn st_perimeter.DuckDBColumn st_point_on_surface.DuckDBColumn st_reduce_precision.DuckDBColumn st_remove_repeated_points.DuckDBColumn st_reverse.DuckDBColumn st_simplify.DuckDBColumn st_start_point.DuckDBColumn st_touches.DuckDBColumn st_union.DuckDBColumn st_voronoi.DuckDBColumn st_within.DuckDBColumn st_within_properly.DuckDBColumn
Spatial operations on DuckDBTable objectsDuckDBTable-spatial st_area.DuckDBTable st_as_binary.DuckDBTable st_as_sfc.DuckDBTable st_as_text.DuckDBTable st_boundary.DuckDBTable st_buffer.DuckDBTable st_build_area st_build_area.default st_build_area.DuckDBTable st_centroid.DuckDBTable st_collect st_collect.default st_collection_extract.DuckDBTable st_collect_agg st_concave_hull.DuckDBTable st_contains st_contains.default st_contains.DuckDBTable st_contains_properly st_contains_properly.default st_contains_properly.DuckDBTable st_convex_hull.DuckDBTable st_covered_by st_covered_by.default st_covered_by.DuckDBTable st_covers st_covers.default st_covers.DuckDBTable st_crosses st_crosses.default st_crosses.DuckDBTable st_difference.DuckDBTable st_dimension st_dimension.default st_dimension.DuckDBTable st_disjoint st_disjoint.default st_disjoint.DuckDBTable st_distance st_distance.default st_distance.DuckDBTable st_end_point st_end_point.default st_end_point.DuckDBTable st_envelope st_envelope.DuckDBTable st_envelope_agg st_equals st_equals.default st_equals.DuckDBTable st_exterior_ring.DuckDBTable st_filter.DuckDBTable st_flip_coordinates st_flip_coordinates.default st_flip_coordinates.DuckDBTable st_geometry_type st_geometry_type.default st_geometry_type.DuckDBTable st_geomfromtext_sql st_inscribed_circle st_inscribed_circle.default st_inscribed_circle.DuckDBTable st_intersection.DuckDBTable st_intersects.DuckDBTable st_intersects_table st_is_closed st_is_closed.default st_is_closed.DuckDBTable st_is_empty st_is_empty.default st_is_empty.DuckDBTable st_is_ring st_is_ring.default st_is_ring.DuckDBTable st_is_simple st_is_simple.default st_is_simple.DuckDBTable st_is_valid.DuckDBTable st_is_within_distance st_is_within_distance.default st_is_within_distance.DuckDBTable st_join.DuckDBTable st_length st_length.default st_length.DuckDBTable st_line_interpolate st_line_interpolate.default st_line_interpolate.DuckDBTable st_line_merge.DuckDBTable st_line_project st_line_project.default st_line_project.DuckDBTable st_line_substring st_line_substring.default st_line_substring.DuckDBTable st_make_envelope_sql st_make_valid.DuckDBTable st_minimum_rotated_rectangle.DuckDBTable st_nearest_points.DuckDBTable st_node.DuckDBTable st_normalize.DuckDBTable st_num_geometries st_num_geometries.default st_num_geometries.DuckDBTable st_num_interior_rings st_num_interior_rings.default st_num_interior_rings.DuckDBTable st_num_points st_num_points.default st_num_points.DuckDBTable st_overlaps st_overlaps.default st_overlaps.DuckDBTable st_perimeter st_perimeter.default st_perimeter.DuckDBTable st_point_on_surface.DuckDBTable st_point_sql st_reduce_precision st_reduce_precision.default st_reduce_precision.DuckDBTable st_remove_repeated_points st_remove_repeated_points.default st_remove_repeated_points.DuckDBTable st_reverse.DuckDBTable st_simplify.DuckDBTable st_start_point st_start_point.default st_start_point.DuckDBTable st_touches st_touches.default st_touches.DuckDBTable st_union.DuckDBTable st_union_agg st_voronoi.DuckDBTable st_within st_within.default st_within.DuckDBTable st_within_properly st_within_properly.default st_within_properly.DuckDBTable
Enable DuckDB GeoParquet conversion on a connectionenableGeoParquetConversion
Subset a points layer to a bounding box with a prunable range predicatelayerBboxRange
Match points in a lazy table layer to a geometry tablelayerSpatialMatch
Test spatial intersection for a lazy table layerlayerSpatialOverlaps
Row indices of a layer inside a bounding boxlayerSubsetByBbox
Row indices of a layer intersecting a geometrylayerSubsetByGeometry
Read a GeoParquet file as a lazy 'DuckDBDataFrame'readGeoParquet
Reorder a points table by a Morton (Z-order) spatial keyspatialSortPoints
Apply a 2-D affine coordinate transform to geometriesst_affine
Apply a coordinate transform to a spatial layertransformLayer
Write spatial data as GeoParquetwriteGeoParquet
Write a coord-indexed (Morton-sorted) points ParquetwriteSpatialPointsParquet