Rasterio plugin to create web map tiles from raster datasets.
Project description
rio-tiler
Rasterio plugin to read web map tiles from raster datasets.
Documentation: https://cogeotiff.github.io/rio-tiler/
Source Code: https://github.com/cogeotiff/rio-tiler
Install
You can install rio-tiler
using pip
$ pip install -U pip
$ pip install -U rio-tiler
or install from source:
$ git clone https://github.com/cogeotiff/rio-tiler.git
$ cd rio-tiler
$ pip install -U pip
$ pip install -e .
GDAL>=3.0 / PROJ>=6.0 performances issue
rio-tiler
is often used for dynamic tiling, where we need to perform small tasks involving cropping and reprojecting the input data. Starting with GDAL>=3.0 the project shifted to PROJ>=6, which introduced new ways to store projection metadata (using a SQLite database and/or cloud stored grids). This change introduced a performance regression as mentioned in https://mapserver.gis.umn.edu/id/development/rfc/ms-rfc-126.html:
using naively the equivalent calls proj_create_crs_to_crs() + proj_trans() would be a major performance killer, since proj_create_crs_to_crs() can take a time in the order of 100 milliseconds in the most complex situations.
We believe the issue reported in issues/346 is in fact due to :point_up:.
To get the best performances out of rio-tiler
we recommend for now to use GDAL 2.4 until a solution can be found in GDAL or in PROJ.
Note: Starting with rasterio 1.2.0, rasterio's wheels are distributed with GDAL 3.2 and thus we recommend using rasterio==1.1.8 if using the default wheels, which include GDAL 2.4.
Links:
- http://rgdal.r-forge.r-project.org/articles/PROJ6_GDAL3.html
- https://mapserver.gis.umn.edu/id/development/rfc/ms-rfc-126.html
- https://github.com/OSGeo/gdal/issues/3470
- https://github.com/OSGeo/gdal/issues/1662
Overview
rio-tiler
is a rasterio plugin that aims to ease the creation of slippy map tiles dynamically from any raster source.
from typing import Dict, List
from rio_tiler.io import COGReader
from rio_tiler.models import ImageData, Info, Metadata, ImageStatistics
with COGReader("my-tif.tif") as cog:
# get info
info: Info = cog.info()
assert info.nodata_type
assert info.band_descriptions
# get image statistics
stats: ImageStatistics = cog.stats()
assert stats.min
assert stats.max
# get metadata (info + image statistics)
meta: Metadata = cog.metadata()
assert meta.statistics
assert meta.nodata_type
assert meta.band_descriptions
# Read data for a mercator tile
img: ImageData = cog.tile(tile_x, tile_y, tile_zoom, tilesize=256)
assert img.data
assert img.mask
# Read part of a data for a given bbox (size is maxed out to 1024)
img: ImageData = cog.part([minx, miny, maxx, maxy])
# Read data for a given geojson polygon (size is maxed out to 1024)
img: ImageData = cog.feature(geojson_feature)
# Get a preview (size is maxed out to 1024)
img: ImageData = cog.preview()
# Get pixel values for a given lon/lat coordinate
values: List = cog.point(lon, lat)
Plugins
rio-tiler-pds
rio-tiler
v1 included several helpers for reading popular public datasets (e.g. Sentinel 2, Sentinel 1, Landsat 8, CBERS) from cloud providers. This functionality is now in a separate plugin, enabling easier access to more public datasets.
rio-tiler-mvt
Create Mapbox Vector Tiles from raster sources
Implementations
rio-viz
Visualize Cloud Optimized GeoTIFFs locally in the browser
titiler
A lightweight Cloud Optimized GeoTIFF dynamic tile server.
cogeo-mosaic
Create mosaics of Cloud Optimized GeoTIFF based on the mosaicJSON specification.
Contribution & Development
See CONTRIBUTING.md
Authors
The rio-tiler
project was begun at Mapbox and was transferred to the cogeotiff
Github organization in January 2019.
See AUTHORS.txt for a listing of individual contributors.
Changes
See CHANGES.md.
License
See LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rio-tiler-2.0.5.tar.gz
.
File metadata
- Download URL: rio-tiler-2.0.5.tar.gz
- Upload date:
- Size: 128.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f005159576c3978cee628c248b4c4447abd4d0ff24e0e210d5fc7eee48cfec6 |
|
MD5 | d9e83bd9fb7ced00e40dfdc70d9272f3 |
|
BLAKE2b-256 | 120f2ec5b8cb5142ef3155143761f1e2a708df9df0ab6a342b85ce147d59377d |