Xarray plugin for TiTiler.
Project description
titiler.xarray
Adds support for Xarray Dataset (NetCDF/Zarr) in Titiler.
Installation
python -m pip install -U pip
# From Pypi
python -m pip install "titiler.xarray[full]"
# Or from sources
git clone https://github.com/developmentseed/titiler.git
cd titiler && python -m pip install -e src/titiler/core -e "src/titiler/xarray[full]"
Installation options
Default installation for titiler.xarray DOES NOT include fsspec or any storage's specific dependencies (e.g s3fs) nor engine dependencies (zarr, h5netcdf). This is to ease the customization and deployment of user's applications. If you want to use the default's dataset reader you will need to at least use the [minimal] dependencies (e.g python -m pip install "titiler.xarray[minimal]").
Here is the list of available options:
- full:
zarr,h5netcdf,fsspec,s3fs,aiohttp,gcsfs - minimal:
zarr,h5netcdf,fsspec - gcs:
gcsfs - s3:
s3fs - http:
aiohttp
How To
from fastapi import FastAPI
from titiler.xarray.extensions import VariablesExtension
from titiler.xarray.factory import TilerFactory
app = FastAPI(
openapi_url="/api",
docs_url="/api.html",
description="""Xarray based tiles server for MultiDimensional dataset (Zarr/NetCDF).
---
**Documentation**: <a href="https://developmentseed.org/titiler/" target="_blank">https://developmentseed.org/titiler/</a>
**Source Code**: <a href="https://github.com/developmentseed/titiler" target="_blank">https://github.com/developmentseed/titiler</a>
---
""",
)
md = TilerFactory(
router_prefix="/md",
extensions=[
VariablesExtension(),
],
)
app.include_router(md.router, prefix="/md", tags=["Multi Dimensional"])
Package structure
titiler/
└── xarray/
├── tests/ - Tests suite
└── titiler/xarray/ - `xarray` namespace package
├── dependencies.py - titiler-xarray dependencies
├── extensions.py - titiler-xarray extensions
├── io.py - titiler-xarray Readers
└── factory.py - endpoints factory
Custom Dataset Opener
A default Dataset IO is provided within titiler.xarray.Reader class but will require optional dependencies (fsspec, zarr, h5netcdf, ...) to be installed with python -m pip install "titiler.xarray[full]".
Dependencies are optional so the entire package size can be optimized to only include dependencies required by a given application.
Example:
requirements:
titiler.xarray(base)h5netcdf
from typing import Callable
import attr
from fastapi import FastAPI
from titiler.xarray.io import Reader
from titiler.xarray.extensions import VariablesExtension
from titiler.xarray.factory import TilerFactory
import xarray
import h5netcdf # noqa
# Create a simple Custom reader, using `xarray.open_dataset` opener
@attr.s
class CustomReader(Reader):
"""Custom io.Reader using xarray.open_dataset opener."""
# xarray.Dataset options
opener: Callable[..., xarray.Dataset] = attr.ib(default=xarray.open_dataset)
# Create FastAPI application
app = FastAPI(openapi_url="/api", docs_url="/api.html")
# Create custom endpoints with the CustomReader
md = TilerFactory(
reader=CustomReader,
router_prefix="/md",
extensions=[
# we also want to use the simple opener for the Extension
VariablesExtension(dataset_opener=xarray.open_dataset),
],
)
app.include_router(md.router, prefix="/md", tags=["Multi Dimensional"])
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file titiler_xarray-0.24.1.tar.gz.
File metadata
- Download URL: titiler_xarray-0.24.1.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ca7353038e6bcd837843be301d9d4498c1efe03b9f3b86deddc9979bba72818
|
|
| MD5 |
fa1b8e042833e74be2a04febf08f05ac
|
|
| BLAKE2b-256 |
9622a5fa2fd1f02e08886357251252a40e6965399935f4d321d7d5cfe94c46ed
|
File details
Details for the file titiler_xarray-0.24.1-py3-none-any.whl.
File metadata
- Download URL: titiler_xarray-0.24.1-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e96718095d1ef54238306e692bccf6d6549f4fd99f11d211144d2621df58748a
|
|
| MD5 |
49d58d9d1fa8c3d349ef578908d5122b
|
|
| BLAKE2b-256 |
97c9bbee7df35f349121d643cd25a576c0abd76333205bb0e92a68a551fb3000
|