Skip to main content

Distributed mapchete processing.

Project description

https://github.com/mapchete/mapchete-hub/blob/main/logo/mapchete_hub_grey.svg

Distributed mapchete processing.

https://img.shields.io/pypi/v/mapchete-hub.svg https://img.shields.io/conda/v/conda-forge/mapchete-hub https://img.shields.io/pypi/l/mapchete-hub.svg https://img.shields.io/github/actions/workflow/status/mapchete/mapchete-hub/python-package.yml?label=tests https://codecov.io/gh/mapchete/mapchete-hub/graph/badge.svg?token=VD1YOF3QA2 https://img.shields.io/github/repo-size/mapchete/mapchete-hub

mapchete Hub provides a RESTful web interface to the mapchete geospatial data processing engine. Its API is inspired by the OGC API - Processes standard and allows you to execute, manage, and scale your processing jobs over HTTP.

The main use cases for the Hub are running processing jobs asynchronously and scaling them up in the background, potentially using Dask for distributed computing.

Key Features

  • 🌐 OGC API - Processes inspired: A REST API for submitting jobs, monitoring their status, and retrieving results.

  • ⚙️ Advanced Job Monitoring: Inspect detailed job states (pending, running, failed, success) and view the overall progress percentage for currently running jobs.

  • 🚀 Scalable Execution: Can be configured to use Dask for distributed, parallel execution of jobs.

  • 💬 Slack Notifications: Optionally sends job status updates directly to a configured Slack channel.

  • 🐳 Container-Ready: Designed to be deployed in containerized environments like Docker, making it easy to scale your processing capabilities.

How It Works

  1. Serve: Start the mapchete Hub server. It listens for incoming job requests.

  2. Prepare Job: A client application prepares a job configuration as a JSON object that follows the MapcheteJob schema.

  3. Submit: The client POSTs the JSON configuration to the /jobs endpoint. The Hub validates it and returns a unique job_id.

  4. Monitor: The client uses the job_id to poll the /jobs/{job_id} endpoint to track the job’s status and progress.

  5. Retrieve: Once the job is successful, the results can be accessed from the location defined in the job’s output configuration.

Getting Started

Installation

Install mapchete Hub and its dependencies from PyPI:

pip install mapchete-hub

Running the Server

To start the server, simply run the following command:

mhub-server start

The API documentation will be available at http://127.0.0.1:8000/docs.

Interacting with the Hub

While you can use tools like curl, the easiest way to interact with the Hub is by using the mapchete-hub-cli package.

First, install the client: .. code-block:: bash

pip install mapchete-hub-cli

Next, create a job configuration file, for example my_job.json:

{
  "process": "mapchete.processes.examples.hillshade",
  "zoom_levels": [
    10
  ],
  "pyramid": {
    "grid": "geodetic"
  },
  "input": {
    "dem": "https://storage.googleapis.com/mapchete-test-data/cleantopo2/dem.tif"
  },
  "output": {
    "path": "./hillshade_output",
    "format": "GTiff",
    "dtype": "uint8",
    "bands": 1
  }
}

Now, use the CLI to submit the job and check its status:

# Submit the job
mhub-cli submit my_job.json

# The command will return a job_id. Use it to check the status:
mhub-cli status <your_job_id>

Contributing

mapchete Hub is an open-source project and we welcome contributions! Please see the Contributing Guide in the main mapchete repository for guidelines on how to get started.

Acknowledgements

The initial development of mapchete Hub was made possible with the resources and support of EOX IT Services GmbH.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mapchete_hub-2026.2.3.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mapchete_hub-2026.2.3-py3-none-any.whl (46.8 kB view details)

Uploaded Python 3

File details

Details for the file mapchete_hub-2026.2.3.tar.gz.

File metadata

  • Download URL: mapchete_hub-2026.2.3.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.4 cpython/3.14.3 HTTPX/0.28.1

File hashes

Hashes for mapchete_hub-2026.2.3.tar.gz
Algorithm Hash digest
SHA256 8cb42f41007b70f8c49aecdf8f5e4ff9be12b9517aefd62f73e3b18b548e069d
MD5 19dc20c7bd9da06b8e06a7ab30ea29c9
BLAKE2b-256 c254ce82ba631f9028869bec18079b8008908f8483ab54285c1641dd259fbe66

See more details on using hashes here.

File details

Details for the file mapchete_hub-2026.2.3-py3-none-any.whl.

File metadata

  • Download URL: mapchete_hub-2026.2.3-py3-none-any.whl
  • Upload date:
  • Size: 46.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.4 cpython/3.14.3 HTTPX/0.28.1

File hashes

Hashes for mapchete_hub-2026.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 00af19486d6c3f7a3ac447f8afce31ccd633db223dfb81a87ae0ea44d53f0d94
MD5 76e6a04347c214b8b7e6adaf2380aec4
BLAKE2b-256 bd3337e9869ba31abf40b3b1bb0af8d80261032f6b752bd8a31a09bba566f428

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page