Skip to main content

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
        ├── extentions.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


Download files

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

Source Distribution

titiler.xarray-0.19.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

titiler.xarray-0.19.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file titiler.xarray-0.19.1.tar.gz.

File metadata

  • Download URL: titiler.xarray-0.19.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for titiler.xarray-0.19.1.tar.gz
Algorithm Hash digest
SHA256 29ea39a1d3e4cd505a066b96992ac8de24f06f66e1dd8f93e7ac0564469ac9b6
MD5 fe750f2b69930768dc1226e6c4328994
BLAKE2b-256 62987c6b7b9aed9142abf3c2f09bb724ea752de14b21f707a7b715f5952800a3

See more details on using hashes here.

File details

Details for the file titiler.xarray-0.19.1-py3-none-any.whl.

File metadata

File hashes

Hashes for titiler.xarray-0.19.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9a079c0e7404b6d5cc491aed4c16d73deda7d4a2ff7c18a2b140508c543e2a6
MD5 45bf0d2ee1a438fdc4fd2cf828362112
BLAKE2b-256 20d7bb31babb4a2b29b85407daf786c1ac2c2bdf668fc66db9488a6e282a5c6f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page