← Back to all sparks
G

gpkg

INFRA · APIS
Velocity0.0

R package gpkg by brownag — release notes from GitHub.

An R interface to GeoPackage that keeps sanding down its own API

geospatialgeopackager-packagegdalrasterapi-churn
Current state
gpkg gives R users a direct handle on GeoPackage files — the SQLite-based OGC container for vector and raster layers — through lazy table access, OGR/SQLite dialect queries and terra integration. Recent releases center on raster write ergonomics: automatic NoData selection via auto_nodata and an exported gpkg_default_nodata() following GDAL and terra conventions. Release bodies are cumulative, folding two or three versions into one entry.
Where it's heading
The package is still finding its interface shape, and most releases pair a small capability with a deprecation or signature change — destfile giving way to y, gpkg_create_dummy_features deprecated, vapour swapped out for gdalraster. The consistent direction is deferring to GDAL and terra conventions rather than inventing gpkg-specific behaviour, and pushing connection management out of users' hands. Cadence is roughly one release a year with dependency automation now in CI.
Prediction
Expect further alignment of write-path defaults with GDAL conventions and continued deprecation-with-replacement of early argument names, with an ogr2ogr-style path for out-of-memory vector data flagged as a possibility rather than a commitment.

Recent moves

  1. 4mo ago

    Automatic NoData selection for raster writes

    gpkg_write() gains auto_nodata, picking an appropriate NoData value per raster datatype instead of leaving it unset, with the logic exported as gpkg_default_nodata() so users can query it directly. The same body also carries 0.0.13, which deprecates destfile in favour of a y argument that accepts geopackage or DBIConnection objects — the more disruptive of the two changes.

    View source ↗
  2. 1y ago

    Connection handling reworked; table access via [ and [[

    A cumulative entry spanning three versions. The substance is connection lifecycle: internal SQLiteConnection usage is cleaned up so open connections survive garbage collection, with gpkg_connection() and gpkg_disconnect() exposed to users. Alongside it, [ and [[ methods make tables addressable like list elements, gpkg_sf() bridges to sf, and driver detection moves from vapour to gdalraster.

    View source ↗
  3. 2y ago

    Spatial views: dynamic layers that read as static ones

    gpkg_create_spatial_view() adds spatial views — layers computed on access but usable as though they were stored geometry tables. The rest is write-path robustness, including data.frame attribute handling and a SpatVectorProxy path that works only for data fitting in memory.

    View source ↗
  4. 2y ago

    Initial CRAN release, with OGR query support

    The CRAN debut, bundled with several prior versions in one body. The most consequential piece is gpkg_ogr_query() and the ogr argument to gpkg_query(), which open the GeoPackage-specific SQL functions and the OGR/SQLite dialects to R users through a terra SpatVectorProxy backend.

    View source ↗