S7 & Options objects | Josiah Parry
Development
Update on mocking for testing R packages - R-hub blog
This blog featured a post on mocking, the art of replacing a function with whatever fake we need for testing, years ago. Since then, we’ve entered a new decade, the second edition of Hadley Wickham’s and Jenny Bryan’s R packages book was published, and mocking returned to testthat, so it’s time for a new take/resources roundup!
Thanks a lot to Hannah Frick for useful feedback on this post!
Taming gnarly nested data with purrr::modify_tree – Joe Kirincic
A tutorial for using purrr::modify_tree effectively.
tipg
Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.
Yes, Postgres can do session vars - but should you use them?
Animated by some comments / complaints about Postgres’ missing user variables story on a Reddit post about PostgreSQL pain points in the real world - I thought I’d elaborate a bit on sessions vars - which is indeed a little known Postgres functionality. Although this “alley” has existed for ages...
The obvious and more well known SQL way to keep some transient state is via temp tables! They give some nice data type guarantees, performance, editor happiness to name a few benefits. But - don’t use them for high frequency use cases! A few temp tables per second might already be too much and a disaster might be waiting to happen…Because CREATE TEMP TABLE actually writes into system catalogs behind the scenes, which might not be directly obvious… And in cases of violent mis-use - think frequent, short-lived temp tables with a lot of columns, plus unoptimized and overloaded Autovacuum together with long-running queries - can lead to extreme catalog bloat (mostly on pg_attribute) and unnecessary IO for each session start / relcache filling / query planning. And it’s also hard to recover from without some full locking - so that for critical high velocity DB’s it might be a good idea to revoke temp table privileges altogether - for app / mortal users at least (not possible for superusers).
The 2nd most obvious way to keep some DB-side session state around would probably be to use more persistent normal tables, right? Already better than temp tables as no danger of bloating the system catalog, right? NO. Pushing transient data though WAL (including replicas and backup systems) is pretty bad and pointless and only to be recommended for tiny use cases.
In the Postgres world, exactly for these kinds of transient use cases, special UNLOGGED tables should be used! Which can relieve the IO pressure on the system / whole cluster considerably.
One of course just needs to account for the semi-persistent nature - and the fact that they won’t be private anymore. Meaning usage of RLS in case of secret data or just using some random enough keys to avoid collisions.
httpbin.org
Igloo
Discover how the sitrep() pattern simplifies R package maintenance and surfaces configuration errors in one go.
Stop playing “diagnostics ping-pong” with your users. This post explores why the _sitrep() (situation report) pattern — popularized by the usethis package — is a game-changer for R packages wrapping APIs or external software. Learn how to build structured validation functions that power both early error-handling and comprehensive system reports, featuring real-world implementation examples from the meetupr and freesurfer packages.
Geospatial API Fundamentals
Geospatial APIs enable seamless access to spatial data, powering mapping, analysis, and urban analytics with standardized operations and protocols.
Geospatial APIs are software abstraction layers that provide standardized methods to query, analyze, and visualize spatial data from diverse sources.
They support essential functionalities including 2D/3D map rendering, geocoding, coordinate transforms, and real-time sensor data integration.
Modern designs employ RESTful architectures and OGC standards to enhance interoperability, performance, and scalability across geospatial applications.
A geospatial Application Programming Interface (API) is a software abstraction layer—typically a web service or client library—that exposes standardized operations for querying, rendering, analyzing, and modeling spatial data, including vector features, raster coverages, multi-dimensional sensor observations, and geospatial attributes. Geospatial APIs are foundational for scientific computing, urban analytics, planetary research, public health surveillance, and geospatial-AI workflows, enabling programmable access to distributed spatial resources and seamless integration across data repositories, sensor infrastructures, visualization platforms, and analytic pipelines.
Adopting semantic types - Taxi
Learn how Taxi uses semantic typing to describe the meaning of data, not just its structure
Types are meant to be shared across systems, while models are system-specific. Your project structure should reflect this separation.
A well-implemented Taxi ecosystem has clear separation between shared semantics and system-specific implementations.
A mature implementation typically includes:
Shared Taxonomy
Collection of semantic types
Broadly shared across organization
Version controlled and carefully governed
Published as a reusable package
Service Implementations
Models and service definitions using types from taxonomy
System-specific structures
Published to TaxiQL server (like Orbital)
Each service depends on shared taxonomy
Data Consumers
Import shared taxonomy only
Don’t depend on service-specific models
Query data using TaxiQL
Receive data mapped to their needs
Best Practices
Type Development
Focus on business concepts
Keep types focused and single-purpose
Document type meanings clearly
Version types carefully
Model Development
Use semantic types for fields
Keep models service-specific
Don’t share models between services
Service Integration
Publish service contracts to TaxiQL server
Use semantic types in operation signatures
Let TaxiQL handle data mapping
Measuring Success
Your implementation is successful when:
Services can evolve independently
Data integration requires minimal code
New consumers can easily discover and use data
Changes to one service don’t cascade to others
Semantic meaning is preserved across systems
rspatialdata
We recently implemented an open-source outdoor map service. Buzzwords: serverless, vector tiles!
Maplibre styles in React, data-dependent styling, zoom-dependent styling, dynamic layers…
Production PostGIS Vector Tiles: Caching | Crunchy Data Blog
Building maps that use dynamic tiles from the database is a lot of fun. You get the freshest data, you don't have to think about generating a static tile set, and you can do it with very minimal middleware, using pg_tileserv.
Accelerating Spatial Postgres: Varnish Cache for pg_tileserv using Kustomize | Crunchy Data Blog
Rekha offers a step-by-step guide for deploying Varnish Cache for pg_tileserv using Kustomize and the Postgres Operator for Kubernetes on OpenShift.
Documentation | Enterprise PostgreSQL Support & Kubernetes Solutions | Crunchy Data
pg_featureserv
Because there are usually many functions in a Postgres database, the service only publishes functions defined in the schemas specified in the FunctionIncludes configuration setting. By default the functions in the postgisftw schema are published.
Welcome to blockr – blockr
Spatial Parallel Computing by Hierarchical Data Partitioning
Geospatial data computation is parallelized by grid, hierarchy, or raster files. Based on future (Bengtsson, 2024 doi:10.32614/CRAN.package.future) and mirai (Gao et al., 2025 doi:10.32614/CRAN.package.mirai) parallel back-ends, terra (Hijmans et al., 2025 doi:10.32614/CRAN.package.terra) and sf (Pebesma et al., 2024 doi:10.32614/CRAN.package.sf) functions as well as convenience functions in the package can be distributed over multiple threads. The simplest way of parallelizing generic geospatial computation is to start from par_pad_*() functions to par_grid(), par_hierarchy(), or par_multirasters() functions. Virtually any functions accepting classes in terra or sf packages can be used in the three parallelization functions. A common raster-vector overlay operation is provided as a function extract_at(), which uses exactextractr (Baston, 2023 doi:10.32614/CRAN.package.exactextractr), with options for kernel weights for summarizing raster values at vector geometries. Other convenience functions for vector-vector operations including simple areal interpolation (summarize_aw()) and summation of exponentially decaying weights (summarize_sedc()) are also provided.
altdoc
Package Development – Data Science
VRT -- GDAL Virtual Format — GDAL documentation
The VRT driver is a format driver for GDAL that allows a virtual GDAL dataset to be composed from other GDAL datasets with repositioning, and algorithms potentially applied as well as various kinds of metadata altered or added. VRT descriptions of datasets can be saved in an XML format normally given the extension .vrt.
gdalbuildvrt — GDAL documentation
gdalbuildvrt [--help] [--long-usage] [--help-general] [--quiet] [[-strict]|[-non_strict]] [-tile_index <field_name>] [-resolution user|average|common|highest|lowest|same] [-tr <xres> <yes>] [-input_file_list <filename>] [[-separate]|[-pixel-function <function>]] [-pixel-function-arg <NAME>=<VALUE>]... [-allow_projection_difference] [-sd <n>] [-tap] [-te <xmin> <ymin> <xmax> <ymax>] [-addalpha] [-b <band>]... [-hidenodata] [-overwrite] [-srcnodata "<value>[ <value>]..."] [-vrtnodata "<value>[ <value>]..."] [-a_srs <srs_def>] [-r nearest|bilinear|cubic|cubicspline|lanczos|average|mode] [-oo <NAME>=<VALUE>]... [-co <NAME>=<VALUE>]... [-ignore_srcmaskband] [-nodata_max_mask_threshold <threshold>] <vrt_dataset_name> [<src_dataset_name>]...
This program builds a VRT (Virtual Dataset) that is a mosaic of a list of input GDAL datasets. The list of input GDAL datasets can be specified at the end of the command line, put in a text file (one filename per line) for very long lists, or it can be a MapServer tileindex (see the gdaltindex utility). If using a tile index, all entries in the tile index will be added to the VRT.
Creating new generative art tools in R with grid, ambient, and S7 – Notes from a data witch
There might be a darker undercurrent in this one
unvt/charites: It is an application to style vector tiles easily
It is an application to style vector tiles easily. Contribute to unvt/charites development by creating an account on GitHub.
Site Suitability/Terrain Analysis in R - geohaff
Land Evaluation & Site Assessment (LESA) Model
Farm
Investing in farmland regeneration.
Comp Report Read More | PRYCD
Read more about our comp reports, what they offer, and how each of the sections can help you make a more informed decision about a property.
ArcGIS services architecture (logic) | ArcGIS Architecture Center
ArcGIS Well-Architected.
Topographic Map Colors - Coolors
Get inspired by these beautiful i-am-looking-for-colors-for-topographic-maps color schemes and make something cool!
Maps Color Palettes - Coolors
Get inspired by thousands of beautiful color schemes and make something cool!