Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
328 changes: 328 additions & 0 deletions docs/visualization/ecosystem-comparison.md

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions docs/visualization/xpublish/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Xpublish Ecosystem Overview

[Xpublish](https://xpublish.readthedocs.io/) is a framework built on FastAPI for serving xarray datasets via HTTP APIs , enabling web-based access to scientific datasets. The ecosystem includes several plugins that extend functionality for different use cases, particularly in the geospatial and datacube domains.

## Architecture and Relationships

The XPublish ecosystem follows a plugin-oriented architecture with an intentionally small core library.

### Foundation Layer

- **[xpublish](https://github.com/xpublish-community/xpublish)**: Core library that defines plugin extension points and an accessor for serving xarray datasets over HTTP APIS

### Plugins

- **[xpublish-tiles](https://github.com/earth-mover/xpublish-tiles)**: Transforms xarray datasets to raster, vector, and other tiles. Contains both OGC Tiles and OGC WMS endpoints as separate plugins
- **[xpublish-wms](https://github.com/xpublish-community/xpublish-wms)**: Dedicated Web Map Service implementation, requires CF compliant datasets
- **[opendap-protocol](https://github.com/xpublish-community/opendap-protocol)**: Bare minimum implementation of the DAP 2.0 protocol.
- **[xpublish-edr](https://github.com/xpublish-community/xpublish-edr)**: Routers for the [OGC EDR API](https://ogcapi.ogc.org/edr/), supporting position query, area query, cube query
26 changes: 8 additions & 18 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ docs_dir: docs
site_url: "https://developmentseed.org/datacube-guide/"
use_directory_urls: false

watch:
- docs
- overrides

extra:
version:
alias: true
Expand All @@ -29,17 +33,11 @@ nav:
- Using old libraries: "worst-practices/old-libraries.md"
- Datacube Visualization:
- Overview: "visualization/overview.md"
- Dynamic tiling comparison: "visualization/ecosystem-comparison.md"
- Titiler:
- Ecosystem overview: "visualization/titiler/overview.md"
- Titiler-CMR:
- Performance benchmarking:
- "visualization/titiler/titiler-cmr/benchmark-tiles.ipynb"
- Timeseries statistics: "visualization/titiler/titiler-cmr/benchmark-stats.ipynb"
- Compatibility testing:
- "visualization/titiler/titiler-cmr/compatibility.ipynb"
- "visualization/titiler/titiler-cmr/find-netcdf4-datasets.ipynb"
- "visualization/titiler/titiler-cmr/test-netcdf4-datasets.ipynb"
- "visualization/titiler/titiler-cmr/summarize-netcdf4-results.ipynb"
- XPublish:
- Ecosystem overview: "visualization/xpublish/overview.md"

- API Reference:
- Benchmarking:
Expand All @@ -51,16 +49,10 @@ nav:
- "api-reference/titiler/titiler-cmr.md"
- "api-reference/titiler/titiler-multidim.md"

watch:
- packages
- docs
- mkdocs.yml
- pyproject.toml

theme:
language: en
name: material
custom_dir: docs/overrides
custom_dir: overrides
# logo: assets/logo_no_text.png
palette:
# Palette toggle for automatic mode
Expand Down Expand Up @@ -94,7 +86,6 @@ theme:
- content.code.annotate
- content.code.copy
- navigation.indexes
- navigation.instant
- navigation.tracking
- search.suggest
- search.share
Expand Down Expand Up @@ -123,7 +114,6 @@ plugins:
show_source: false
show_symbol_type_toc: true
signature_crossrefs: true

inventories:
- https://docs.python.org/3/objects.inv
- https://docs.xarray.dev/en/stable/objects.inv
Expand Down
File renamed without changes.
50 changes: 25 additions & 25 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,8 @@ dependencies = [
"matplotlib>=3.10.3",
]

[tool.uv.sources]
datacube_benchmark = { workspace = true }
zarr = { git = "https://github.com/zarr-developers/zarr-python" }

[tool.uv.workspace]
members = ["packages/*"]

[tool.numpydoc_validation]
# See https://numpydoc.readthedocs.io/en/latest/validation.html#built-in-validation-checks for list of checks
checks = [
"GL06",
"GL07",
# Currently broken; see https://github.com/numpy/numpydoc/issues/573
# "GL09",
"GL10",
"SS02",
"SS04",
"PR02",
"PR03",
"PR05",
"PR06",
]

[tool.uv]
dev-dependencies = [
[dependency-groups]
dev = [
"aiohttp-retry>=2.9.1",
"aiohttp>=3.11.13",
"azure-identity>=1.21.0",
Expand All @@ -59,5 +36,28 @@ dev-dependencies = [
"ipywidgets>=8.1.7",
]

[tool.uv.sources]
datacube_benchmark = { workspace = true }
zarr = { git = "https://github.com/zarr-developers/zarr-python" }

[tool.uv.workspace]
members = ["packages/*"]

[tool.numpydoc_validation]
# See https://numpydoc.readthedocs.io/en/latest/validation.html#built-in-validation-checks for list of checks
checks = [
"GL06",
"GL07",
# Currently broken; see https://github.com/numpy/numpydoc/issues/573
# "GL09",
"GL10",
"SS02",
"SS04",
"PR02",
"PR03",
"PR05",
"PR06",
]

[tool.mypy]
files = ["packages/datacube-benchmark/src/datacube_benchmark"]
Loading