CMAKE__COMPILER — CMake 4.3.3 Documentation
Best Practices for targets Project Organization
A Carpentries Lesson teaching foundational data and coding skills to researchers worldwide
`tar_terra_rast` and terra objects won't work with cloud storage · Issue #112 · ropensci/geotargets
I think there may be a problem with using cloud storage. When a SpatRaster is stored with repository = "aws", for example, and a user tries to load it with tar_read() or tar_load(), I think what ha...
casacosmos/screeneragent
Contribute to casacosmos/screeneragent development by creating an account on GitHub.
https://floodpy.readthedocs.io/en/latest/
https://www.fema.gov/flood-maps/products-tools/hazus
PRAGMA Statements - Turso
Database configuration and metadata commands in Turso
Turso
Turso is the lightweight database that scales to millions of agents. Deploy databases everywhere—on servers, in browsers, on devices—just like files. A full SQLite drop-in replacement, built for the agentic future.
st_read_multi
DuckDB Community Extensions Read multiple geospatial files
Hyperagent
Hyperagent is the system of agents that does real work, learns how your organization operates, and deploys across your entire team.
The power of predicate pushdown
DataFrames for the new era
rusqlite_gpkg - Rust
GeoPackage reader/writer built on top of rusqlite.
rusqlite-gpkg Web Demo
dbc
The command-line tool for installing and managing ADBC drivers
flechette
Fast, lightweight access to Apache Arrow data.
GDAL new command line interface: introduction and advanced topics — GDAL CLI Tutorial Workshop documentation
gdal-r-python/gdal-dev/parallel-gdal-r-python.md at main · mdsumner/gdal-r-python
programming topics for R, GDAL, Python
Hydrofabric Subsetter
Subset Hydrofabric Data in R.
hfsubsetR/tests/testthat/test-get_subset.R at main · owp-spatial/hfsubsetR
✂️ Create Hydrofabric Subsets from local and remote resources - owp-spatial/hfsubsetR
mbta-communities-data-pipeline/docs/duckdb_spatial.md at main · fdhidalgo/mbta-communities-data-pipeline
Data processing pipeline for MBTA Communities Act compliance analysis using targets and DuckDB - fdhidalgo/mbta-communities-data-pipeline
mbta-communities-data-pipeline/docs/targets.md at main · fdhidalgo/mbta-communities-data-pipeline
Data processing pipeline for MBTA Communities Act compliance analysis using targets and DuckDB - fdhidalgo/mbta-communities-data-pipeline
Railway Oriented Programming
Slides and videos explaining a functional approach to error handling
Flatgeobuf: Implementer's Guide
Kicking the Tires: Flatgeobuf
Optimization 2: Streamable Hilbert-sorted RTree Index
The second exciting piece of flatgeobuf, and honestly what makes the whole thing worth the price of admission alone, is its approach to indexing. Including a pre-built index with geospatial data isn’t new — Shapefile and Geopackage support this, and there’s always spatialite if you want to pack your data into a sqlite file.
To do this, the format combines an RTree index (the trusty workhorse of all geospatial indexing) with a compact and streamable encoding and a particular spatial ordering of the geometry data (using a Hilbert Curve) to make the whole thing more efficient. Here’s how it works.
To write an indexed FGB file, you first sort your feature data along a Hilbert Curve. Space Filling Curves are a fascinating and brain-melting topic that merit a full post on their own, but in short they allow a linear encoding of multiple dimensions into 1 dimension (in our case, sorting a 2-dimensional xy space along a 1-dimensional curve). This is an optimization used in many spatial indexing systems to ensure that data with high storage locality also has high spatial locality.
The point is that both the index and the underlying feature data are designed to be loaded lazily — a client can stream the portions of the index they need to satisfy a bounding-box query, then use those results to stream the relevant portions of the Feature section. This can all be done either locally (reading from a potentially large file) or remotely over HTTP using Range requests.
Downsides?
Complexity — No denying the format is pretty complicated. Between sophisticated binary encodings and optimized indexing strategies there is a lot going on in these bytes. Small errors in encoding or indexing can render files unreadable. To become more mainstream, the format will need better linting tools to validate structural correctness of without a lot of painful hexdump-ing.
Not human readable — Especially compared to simpler formats like GeoJSON and WKT this is always a downside. Of course the benefits are huge (smaller storage footprint, faster serde), but it will take really polished tooling to ease people off of text-based formats. On the other hand Shapefiles aren’t human-readable and ESRI has managed to jam those down everyone’s throats for several decades, so maybe there’s hope.
Not designed for updates — Because of the intricacies of data layout and indexing, updates aren’t really a thing for FGB. It’s best used for static datasets.
Non-spatial indexing — Currently the format doesn’t really have a way to add indexing on other dimensions besides the spatial one. Maybe this will evolve in the future (FGB’s first sidecar?)
Welcome to rv
rv - A fast, declarative, R package manager
gdalgviz/gdalgviz/parser.py at main · geographika/gdalgviz
A Python library to visualise GDAL pipelines
New release of maplegend: version 0.6.3 – R Geomatic
restrictR: Composable Runtime Contracts for R
Build reusable validators from small building blocks using the base pipe
operator. Define runtime contracts once and enforce them anywhere.
Hierarchical baseball - Bayesian Analysis Recipes
18 Closures and scope – Thinking in R
All R functions are technically closures (they all carry an enclosing environment), but the term earns its keep when a function captures variables from a parent that isn’t the global environment. Here is a counter that actually counts:
<<- is the only way to create mutable state in R’s functional world, because it searches parent environments for an existing binding and modifies it there. If it doesn’t find the variable in any parent, it creates one in the global environment. That is almost always a mistake.