Skip to main content

A Rasterio plugin command that exports PMTiles

Project description

A plugin for the Rasterio CLI that exports a raster dataset to the PMTiles (version 3) format. Features include automatic reprojection and concurrent tile generation.

Usage

Usage: rio pmtiles [OPTIONS] INPUT [OUTPUT]

  Export a dataset to PMTiles (version 3).

  The input dataset may have any coordinate reference system. It must have
  at least three bands, which will be become the red, blue, and green bands
  of the output image tiles.

  An optional fourth alpha band may be copied to the output tiles by using
  the --rgba option in combination with the PNG or WEBP formats. This option
  requires that the input dataset has at least 4 bands.

  The default quality for JPEG and WEBP output (possible range: 10-100) is
  75. This value can be changed with the use of the QUALITY creation option,
  e.g. `--co QUALITY=90`.  The default zlib compression level for PNG output
  (possible range: 1-9) is 6. This value can be changed like `--co
  ZLEVEL=8`.  Lossless WEBP can be chosen with `--co LOSSLESS=TRUE`.

  If no zoom levels are specified, the defaults are the zoom levels nearest
  to the one at which one tile may contain the entire source dataset.

  If a title or description for the output file are not provided, they will
  be taken from the input dataset's filename.

  This command is suited for small to medium (~1 GB) sized sources.

  Python package: rio-pmtiles (https://github.com/protomaps/PMTiles).

Options:
  -o, --output PATH               Path to output file (optional alternative to
                                  a positional arg).

  --append / --overwrite          Append tiles to an existing file or
                                  overwrite.

  --title TEXT                    PMTiles dataset title.
  --description TEXT              PMTiles dataset description.
  --overlay                       Export as an overlay (the default).
  --baselayer                     Export as a base layer.
  -f, --format [JPEG|PNG|WEBP]    Tile image format.
  --tile-size INTEGER             Width and height of individual square tiles
                                  to create.  [default: 256]

  --zoom-levels MIN..MAX          A min...max range of export zoom levels. The
                                  default zoom level is the one at which the
                                  dataset is contained within a single tile.

  -j INTEGER                      Number of workers (default: number of
                                  computer's processors).

  --src-nodata FLOAT              Manually override source nodata
  --dst-nodata FLOAT              Manually override destination nodata
  --resampling [nearest|bilinear|cubic|cubic_spline|lanczos|average|mode|gauss|max|min|med|q1|q3|rms]
                                  Resampling method to use.  [default:
                                  nearest]

  --version                       Show the version and exit.
  --rgba                          Select RGBA output. For PNG or WEBP only.

  -#, --progress-bar              Display progress bar.
  --cutline PATH                  Path to a GeoJSON FeatureCollection to be
                                  used as a cutline. Only source pixels within
                                  the cutline features will be exported.

  --oo NAME=VALUE                 Format driver-specific options to be used
                                  when accessing the input dataset. See the
                                  GDAL format driver documentation for more
                                  information.

  --co, --profile NAME=VALUE      Driver specific creation options. See the
                                  documentation for the selected output driver
                                  for more information.

  --wo NAME=VALUE                 See the GDAL warp options documentation for
                                  more information.

  --exclude-empty-tiles / --include-empty-tiles
                                  Whether to exclude or include empty tiles
                                  from the output.

  --help                          Show this message and exit.

Performance

The rio-pmtiles command is suited for small to medium (~1 GB) raster sources. On a MacBook Air, the 1:10M scale Natural Earth raster (a 21,600 x 10,800 pixel, 700 MB TIFF) exports to PMTiles (levels 1 through 5) in 45 seconds.

$ time GDAL_CACHEMAX=256 rio pmtiles NE1_HR_LC.tif \
> -o ne.pmtiles --zoom-levels 1..5 -j 4

real    0m44.925s
user    1m20.152s
sys     0m22.428s

Installation

pip install rio-pmtiles

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

rio_pmtiles-0.0.4.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

rio_pmtiles-0.0.4-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file rio_pmtiles-0.0.4.tar.gz.

File metadata

  • Download URL: rio_pmtiles-0.0.4.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for rio_pmtiles-0.0.4.tar.gz
Algorithm Hash digest
SHA256 eae53e9395ccbb60a1b6419ce71a04fc323c4667a7fe39e009e4e56c97914626
MD5 6c426cb0885147f30ef467ea65a14d31
BLAKE2b-256 74d023b395a451fa3363bb038b474e52a7e99041abb09d6b1bbb0c866f0f153c

See more details on using hashes here.

File details

Details for the file rio_pmtiles-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: rio_pmtiles-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for rio_pmtiles-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 212b0331f920885a7e1a560e5476d33f92810deffd9335153d1075d9e1d70fd5
MD5 b9de34438de4fcd36571ab7a71d8c3c9
BLAKE2b-256 22abd3335dae3a187b3a38f5872b103d82dd5c5633ec8a529e920ccd6a71dd38

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