Skip to content
View batch-processing-geospatial-cli-tools's full-sized avatar

Block or report batch-processing-geospatial-cli-tools

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Python GIS CLI Toolcraft & Batch Processing

Python GIS CLI Toolcraft & Batch Processing

Guides and runnable code for building command-line tools and batch-processing pipelines for geospatial work in Python.

www.batch-processing.com →


Geospatial work usually outgrows the throwaway-script stage faster than expected. The moment you are reprojecting thousands of raster tiles, wiring up an internal GIS toolchain, or packaging a spatial utility that other people depend on, you need tools that behave predictably, fail clearly, and keep running when the input gets messy.

This repository is the source for www.batch-processing.com — a collection of practical guides on exactly that: the command-line layer and the processing layer of Python geospatial tooling. Every guide is written for people who ship working software — Python developers, DevOps and platform engineers, and maintainers of open-source spatial libraries — and each one includes complete, runnable code that uses real geospatial types (rasterio windows, GeoDataFrames, explicit EPSG codes) and explains the reasoning behind each decision.

What's inside

The guides are organised into two areas.

CLI Architecture & Design Patterns

Argument parsing with Typer and Click, subcommand organisation, Rich console output and progress bars, layered configuration across TOML, YAML, and environment variables, keeping environment variables in sync, and packaging and CI/CD for the awkward GDAL dependency stack.

→ Read the section

Spatial Batch Processing & Async Workflows

Async I/O for raster processing, multiprocessing for GDAL tasks, chunked vector reading with pyogrio, memory management for very large datasets, error handling that survives partial failure (dead-letter queues, retries, structured logs), and progress tracking for jobs that run for hours.

→ Read the section

Who it's for

  • Python developers building or maintaining spatial command-line tools
  • DevOps and platform engineers running geospatial pipelines in CI/CD and Kubernetes
  • Open-source maintainers packaging reusable geospatial utilities
  • Internal tooling teams standardising on reproducible spatial workflows

Why it reads differently

  • Complete, runnable Python — no pseudocode; real GDAL, rasterio, geopandas, and pyogrio.
  • Decision guides for the calls that are easy to get wrong — multiprocessing vs asyncio, pyogrio vs Fiona.
  • Hand-drawn diagrams, plain-language explanations, and a consistent, accessible design in light and dark themes.

About this repository

This is the source for www.batch-processing.com — a static site built with Eleventy and deployed on Cloudflare Workers with static assets.

npm install      # install dependencies
npm run build    # build the static site into ./_site
npm start        # local dev server with live reload
npm run deploy   # build and deploy the Cloudflare Worker

The content lives in content/ as Markdown, page templates in src/_includes/, and styles in src/css/.


Maintained by batch-processing-geospatial-cli-tools.

Popular repositories Loading

  1. batch-processing-geospatial-cli-tools batch-processing-geospatial-cli-tools Public

    Guides and runnable code for building command-line tools and batch-processing pipelines for geospatial work in Python — source for www.batch-processing.com

    CSS 2

  2. typer-rich-progress typer-rich-progress Public

    Consistent Rich progress bars, smoothed ETA and per-worker status for any multiprocessing or asyncio batch job

    Python

  3. raster-batch raster-batch Public

    Parallel batch processor for raster datasets — reproject, clip, tile and convert thousands of files with resumable progress

    Python

  4. geopkg-action geopkg-action Public

    Composite GitHub Action that lints, type-checks, tests, builds and publishes a Python geospatial CLI — with GDAL/PROJ setup that works

    Python

  5. spatial-fixture-gen spatial-fixture-gen Public

    Generate synthetic geospatial test fixtures — vectors, rasters and a catalogue of pathological edge cases

    Python

  6. geo-cli-cookiecutter geo-cli-cookiecutter Public

    Cookiecutter template for production-ready geospatial Python CLI tools — Typer, Rich, Pydantic config, tests and CI included

    Python