
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
User friendly Rasterio plugin to read raster datasets.
Documentation: https://cogeotiff.github.io/rio-tiler/
Source Code: https://github.com/cogeotiff/rio-tiler
rio-tiler
was initially designed to create slippy map
tiles from large raster data
sources and render these tiles dynamically on a web map. Since rio-tiler
v2.0, we added many more helper methods to read
data and metadata from any raster source supported by Rasterio/GDAL.
This includes local and remote files via HTTP, AWS S3, Google Cloud Storage,
etc.
At the low level, rio-tiler
is just a wrapper around the rasterio and GDAL libraries.
Read any dataset supported by GDAL/Rasterio
from rio_tiler.io import Reader
with Reader("my.tif") as image:
print(image.dataset) # rasterio opened dataset
img = image.read() # similar to rasterio.open("my.tif").read() but returns a rio_tiler.models.ImageData object
User friendly tile
, part
, feature
, point
reading methods
from rio_tiler.io import Reader
with Reader("my.tif") as image:
img = image.tile(x, y, z) # read mercator tile z-x-y
img = image.part(bbox) # read the data intersecting a bounding box
img = image.feature(geojson_feature) # read the data intersecting a geojson feature
img = image.point(lon,lat) # get pixel values for a lon/lat coordinates
Enable property assignment (e.g nodata) on data reading
from rio_tiler.io import Reader
with Reader("my.tif") as image:
img = image.tile(x, y, z, nodata=-9999) # read mercator tile z-x-y
STAC support
from rio_tiler.io import STACReader
with STACReader("item.json") as stac:
print(stac.assets) # available asset
img = stac.tile( # read tile for asset1 and indexes 1,2,3
x,
y,
z,
assets="asset1",
indexes=(1, 2, 3), # same as asset_indexes={"asset1": (1, 2, 3)},
)
# Merging data from different assets
img = stac.tile( # create an image from assets 1,2,3 using their first band
x,
y,
z,
assets=("asset1", "asset2", "asset3",),
asset_indexes={"asset1": 1, "asset2": 1, "asset3": 1},
)
Xarray support (>=4.0)
import xarray
from rio_tiler.io import XarrayReader
ds = xarray.open_dataset(
"https://pangeo.blob.core.windows.net/pangeo-public/daymet-rio-tiler/na-wgs84.zarr/",
engine="zarr",
decode_coords="all",
consolidated=True,
)
da = ds["tmax"]
with XarrayReader(da) as dst:
print(dst.info())
img = dst.tile(1, 1, 2)
Note: The XarrayReader needs optional dependencies to be installed pip install rio-tiler["xarray"]
.
Non-Geo Image support (>=4.0)
from rio_tiler.io import ImageReader
with ImageReader("image.jpeg") as src:
im = src.tile(0, 0, src.maxzoom) # read top-left `tile`
im = src.part((0, 100, 100, 0)) # read top-left 100x100 pixels
pt = src.point(0, 0) # read pixel value
Note: ImageReader
is also compatible with proper geo-referenced raster datasets.
Mosaic (merging or stacking)
from rio_tiler.io import Reader
from rio_tiler.mosaic import mosaic_reader
def reader(file, x, y, z, **kwargs):
with Reader(file) as image:
return image.tile(x, y, z, **kwargs)
img, assets = mosaic_reader(["image1.tif", "image2.tif"], reader, x, y, z)
Native support for multiple TileMatrixSet via morecantile
import morecantile
from rio_tiler.io import Reader
# Use EPSG:4326 (WGS84) grid
wgs84_grid = morecantile.tms.get("WorldCRS84Quad")
with Reader("my.tif", tms=wgs84_grid) as src:
img = src.tile(1, 1, 1)
You can install rio-tiler
using pip
$ python -m pip install -U pip
$ python -m pip install -U rio-tiler
or install from source:
$ git clone https://github.com/cogeotiff/rio-tiler.git
$ cd rio-tiler
$ python -m pip install -U pip
$ python -m pip install -e .
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.
Create Mapbox Vector Tiles from raster sources
titiler: A lightweight Cloud Optimized GeoTIFF dynamic tile server.
cogeo-mosaic: Create mosaics of Cloud Optimized GeoTIFF based on the mosaicJSON specification.
See CONTRIBUTING.md
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.
See CHANGES.md.
See LICENSE
FAQs
User friendly Rasterio plugin to read raster datasets.
We found that rio-tiler demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.