Development

Development

2258 bookmarks
Newest
tipg
tipg
Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.
·developmentseed.org·
tipg
Yes, Postgres can do session vars - but should you use them?
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.
·kmoppel.github.io·
Yes, Postgres can do session vars - but should you use them?
Geospatial API Fundamentals
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.
·emergentmind.com·
Geospatial API Fundamentals
Adopting semantic types - Taxi
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
·taxilang.org·
Adopting semantic types - Taxi
Production PostGIS Vector Tiles: Caching | Crunchy Data Blog
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.
·crunchydata.com·
Production PostGIS Vector Tiles: Caching | Crunchy Data Blog
pg_featureserv
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.
·access.crunchydata.com·
pg_featureserv
Spatial Parallel Computing by Hierarchical Data Partitioning
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.
·docs.ropensci.org·
Spatial Parallel Computing by Hierarchical Data Partitioning
altdoc
altdoc
·altdoc.etiennebacher.com·
altdoc
VRT -- GDAL Virtual Format — GDAL documentation
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.
·gdal.org·
VRT -- GDAL Virtual Format — GDAL documentation
gdalbuildvrt — GDAL documentation
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.
·gdal.org·
gdalbuildvrt — GDAL documentation
Farm
Farm
Investing in farmland regeneration.
·farm.vc·
Farm
Topographic Map Colors - Coolors
Topographic Map Colors - Coolors
Get inspired by these beautiful i-am-looking-for-colors-for-topographic-maps color schemes and make something cool!
·coolors.co·
Topographic Map Colors - Coolors
Maps Color Palettes - Coolors
Maps Color Palettes - Coolors
Get inspired by thousands of beautiful color schemes and make something cool!
·coolors.co·
Maps Color Palettes - Coolors
OpenFreeMap
OpenFreeMap
OpenFreeMap – Open-Source Map Hosting lets you display custom maps on your website and apps for free.
·openfreemap.org·
OpenFreeMap
Home
Home
Pixi Documentation — Next-gen package manager for reproducible development setups
·pixi.prefix.dev·
Home
ArcGIS Hub
ArcGIS Hub
Discover, analyze and download data from ArcGIS Hub. Download in CSV, KML, Zip, GeoJSON, GeoTIFF or PNG. Find API links for GeoServices, WMS, and WFS. Analyze with charts and thematic maps. Take the next step and create StoryMaps and Web Maps.
·atlas.eia.gov·
ArcGIS Hub
MassGIS Data Layers
MassGIS Data Layers
Each digital dataset name below links to a complete data layer description. On each page you will find metadata and links to free data downloads.
·mass.gov·
MassGIS Data Layers