跳转到主要内容

通过REST API发布Xarray数据集。

项目描述

Xpublish

将Xarray数据集发布到网络上

PyPI Conda PyPI - Python Version Binder

GitHub Workflow Status Documentation Status pre-commit.ci status

快速示例

服务器端:通过REST API发布Xarray数据集

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

客户端:连接到已发布的数据集

发布的数据集可以通过各种客户端应用程序访问,例如,在Python中使用Zarr和fsspec。

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/zarr/")

# 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)

或者要探索其他访问方法,请在浏览器中打开 http://0.0.0.0:9000/docs

为什么?

Xpublish 允许您通过 Web 应用程序提供/共享/发布 Xarray 数据集。

通过可插拔的 REST API 端点,Xarray 数据集中的数据和/或元数据可以以各种形式公开。在服务器端启用 Dask 可以实现大型数据集的高效按需交付。

Xpublish 的 插件生态系统 具有以下功能

  • 按需发布或派生数据产品
  • 将 xarray 对象转换为流服务(例如 OPeNDAP)

如何实现?

在底层,Xpublish 使用一个 Web 应用程序(FastAPI),该应用程序公开了一个类似 REST 的 API,具有内置和/或用户定义的端点。

例如,Xpublish 默认提供最小化兼容 Zarr 的类似 REST API,具有以下端点

  • zarr/.zmetadata:返回以 JSON 字符串格式化的 Zarr 格式元数据键。
  • zarr/var/0.0.0:返回一个变量数据块作为二进制字符串。

可以通过安装或编写插件添加更多端点。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分发

xpublish-0.3.3.tar.gz (23.6 kB 查看散列)

上传时间

构建分发

xpublish-0.3.3-py3-none-any.whl (30.3 kB 查看散列)

上传时间 Python 3

支持者