All Projects → xarray-contrib → xpublish

xarray-contrib / xpublish

Licence: MIT license
Publish Xarray Datasets via a REST API.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to xpublish

XArrayAndRasterio
Experimental code for loading/saving XArray DataArrays to Geographic Rasters using rasterio
Stars: ✭ 21 (-75.58%)
Mutual labels:  xarray
xarrayutils
xarrayutils.readthedocs.io/
Stars: ✭ 50 (-41.86%)
Mutual labels:  xarray
wax-ml
A Python library for machine-learning and feedback loops on streaming data
Stars: ✭ 36 (-58.14%)
Mutual labels:  xarray
Dtale
Visualizer for pandas data structures
Stars: ✭ 2,864 (+3230.23%)
Mutual labels:  xarray
deafrica-sandbox-notebooks
Repository for Digital Earth Africa Sandbox, including: Jupyter notebooks, scripts, tools and workflows for geospatial analysis with Open Data Cube and xarray
Stars: ✭ 108 (+25.58%)
Mutual labels:  xarray
xarray-sentinel
Xarray backend to Copernicus Sentinel-1 satellite data products
Stars: ✭ 189 (+119.77%)
Mutual labels:  xarray
Herbie
Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), ECMWF open data, and the University of Utah Pando Archive System.
Stars: ✭ 92 (+6.98%)
Mutual labels:  xarray
aospy
Python package for automated analysis and management of gridded climate data
Stars: ✭ 80 (-6.98%)
Mutual labels:  xarray
PyEarthScience
The PyEarthScience repository created by DKRZ (German Climate Computing Center) provides Python scripts and Jupyter notebooks in particular for scientific data processing and visualization used in climate science. It contains scripts for visualization, I/O, and analysis using PyNGL, PyNIO, xarray, cfgrib, xesmf, cartopy, and others.
Stars: ✭ 56 (-34.88%)
Mutual labels:  xarray
xcast
A High-Performance Data Science Toolkit for the Earth Sciences
Stars: ✭ 28 (-67.44%)
Mutual labels:  xarray
xmca
Maximum Covariance Analysis in Python
Stars: ✭ 41 (-52.33%)
Mutual labels:  xarray
xbatcher
Batch generation from xarray datasets
Stars: ✭ 93 (+8.14%)
Mutual labels:  xarray
climate-data-science
Climate Data Science and Earth Observation with Python.
Stars: ✭ 103 (+19.77%)
Mutual labels:  xarray
Xarray
N-D labeled arrays and datasets in Python
Stars: ✭ 2,353 (+2636.05%)
Mutual labels:  xarray
GEOSChem-python-tutorial
Python/xarray tutorial for GEOS-Chem users
Stars: ✭ 64 (-25.58%)
Mutual labels:  xarray
xbpch
xarray interface for bpch files
Stars: ✭ 17 (-80.23%)
Mutual labels:  xarray
xarray-beam
Distributed Xarray with Apache Beam
Stars: ✭ 83 (-3.49%)
Mutual labels:  xarray
clisops
Climate Simulation Operations
Stars: ✭ 17 (-80.23%)
Mutual labels:  xarray
esmlab
Earth System Model Lab (esmlab). ⚠️⚠️ ESMLab functionality has been moved into <https://github.com/NCAR/geocat-comp>. ⚠️⚠️
Stars: ✭ 23 (-73.26%)
Mutual labels:  xarray
goes2go
Download and process GOES-16 and GOES-17 data from NOAA's archive on AWS using Python.
Stars: ✭ 77 (-10.47%)
Mutual labels:  xarray

Xpublish

Publish Xarray Datasets via a REST API.

GitHub Workflow Status Documentation Status Binder

Serverside: Publish a Xarray Dataset through a rest API

ds.rest.serve(host="0.0.0.0", port=9000)

Client-side: Connect to a published dataset

The published dataset can be accessed from various kinds of client applications. Here is an example of directly accessing the data from within Python:

import xarray as xr
import zarr
from fsspec.implementations.http import HTTPFileSystem

fs = HTTPFileSystem()
http_map = fs.get_mapper('http://0.0.0.0:9000')

# open as a zarr group
zg = zarr.open_consolidated(http_map, mode='r')

# or open as another Xarray Dataset
ds = xr.open_zarr(http_map, consolidated=True)

Why?

Xpublish lets you serve/share/publish Xarray Datasets via a web application.

The data and/or metadata in the Xarray Datasets can be exposed in various forms through pluggable REST API endpoints. Efficient, on-demand delivery of large datasets may be enabled with Dask on the server-side.

We are exploring applications of Xpublish that include:

  • publish on-demand or derived data products
  • turning xarray objects into streaming services (e.g. OPeNDAP)

How?

Under the hood, Xpublish is using a web app (FastAPI) that is exposing a REST-like API with builtin and/or user-defined endpoints.

For example, Xpublish provides by default a minimal Zarr compatible REST-like API with the following endpoints:

  • .zmetadata: returns Zarr-formatted metadata keys as json strings.
  • var/0.0.0: returns a variable data chunk as a binary string.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].