Skip to main content

Portolan CLI

PyPI version CI codecov Python 3.10+ License

Portolan is an opinionated specification for serverless spatial data infrastructures. It defines how publishers store, organize, document, and serve geospatial data as static files in their own storage. Every Portolan catalog should offer a predictable, high-quality experience for publishers, people, and agents.

Portolan builds on existing standards instead of replacing them. GeoParquet and PMTiles serve vector data, while COG serves raster data. STAC provides a consistent catalog structure and index. Required README and AGENTS.md files explain each catalog to people and agents. The specification also covers operational details such as spatial ordering, bounding boxes, and CORS.

This repository contains the Portolan CLI, an implementation of the specification. It helps publishers:

  • Build STAC catalogs with GeoParquet and COG assets.
  • Extract ArcGIS, WFS, and Carto sources.
  • Generate thumbnails, PMTiles, MapLibre styles, and STAC GeoParquet indexes.
  • Track collection versions and checksums without a database.
  • Validate catalog metadata, structure, and assets against the Portolan specification.
  • Push, pull, sync, and clone catalogs through S3, GCS, Azure, or S3-compatible storage.
  • Use structured JSON output, a typed Python API, or backend plugins.

Installation

Portolan CLI is pre-1.0 software, as breaking changes are expected for the time being.

uv tool install portolan-cli

Or with pip:

pip install portolan-cli

Documentation

Start with the end-to-end publishing example. We plan to add more tutorials over time.

See the full documentation. It includes an auto-generated CLI reference and Python API reference.

Development

git clone https://github.com/portolan-sdi/portolan-cli.git
cd portolan-cli
uv sync --all-extras
uv run pytest

See the contributing guide for details.

License

Apache 2.0

Download files

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

Source Distribution

portolan_cli-0.8.0.tar.gz (6.8 MB view details)

Uploaded Source

Built Distribution

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

portolan_cli-0.8.0-py3-none-any.whl (749.8 kB view details)

Uploaded Python 3

File details

Details for the file portolan_cli-0.8.0.tar.gz.

File metadata

  • Download URL: portolan_cli-0.8.0.tar.gz
  • Upload date:
  • Size: 6.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for portolan_cli-0.8.0.tar.gz
Algorithm Hash digest
SHA256 edf5e9c92d1dced3f073a4e9af15836590fdc1ca5b62e355858306c20888de83
MD5 1c81d62084576ce2a22a3a775bab53ae
BLAKE2b-256 d92dd26e9b68415297259d0fff53b65d666d8dc3bf42ccdc2785b3ec2175b479

See more details on using hashes here.

Provenance

The following attestation bundles were made for portolan_cli-0.8.0.tar.gz:

Publisher: release.yml on portolan-sdi/portolan-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file portolan_cli-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: portolan_cli-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 749.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for portolan_cli-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 faae665b2902688711beb00cb02488eb106d116c35a4cfe6699ea5d3b88dd1e1
MD5 ebab5aaf4055ea7973b682631da1b0b3
BLAKE2b-256 e2829565b6076456605d28315cb5102bb85e1bfc25aacf4927dcd446c7ff8d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for portolan_cli-0.8.0-py3-none-any.whl:

Publisher: release.yml on portolan-sdi/portolan-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.0.0b0

2 files

1.0.0a0

2 files

This release

0.8.0 This release

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.2.0

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page