@developmentseed/deck.gl-zarr

中文文档
0.10.0发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 5775

(原始内容存档于2019-09-26). Zar visionization in deck.gl.

中文使用文档

@ developmentseed/deck.gl-zarr (英语)

用于渲染的高级甲板.gl层 地理扎尔 数据集直接取自Zarr商店,同时将"一飞"重排至Web Mercator.

这个软件包基于 @developmentseed/deck.gl-raster 财务报告和审定财务报表 @developmentseed/geozarr 使 Zarr 阵列成为平板光栅源。 用这个 萨里塔 将Zarr的本地块网格与甲板对齐 Gl's (英语) TileLayer,然后将每个块重新投影到Web Mercator视图港.

快速启动

import { ZarrLayer } from "@developmentseed/deck.gl-zarr";
import * as zarr from "zarrita";

// The user creates the zarrita store; wrap it with middleware as needed
const store = new zarr.FetchStore("https://example.com/my-dataset.zarr");

const layer = new ZarrLayer({
  id: "zarr-layer",
  // A store for the layer to open at its root, or an opened ZarrSource
  source: store,
  // One entry per non-spatial dim. Use `null` for the default slice,
  // a number to pin to an index, or a `zarr.Slice` for a range.
  selection: { band: null },
  getTileData,
  renderTile,
});

为了改变数据是如何打开的,你自己打开它 ZarrSource.open: 给 path 到要绘图的数组或多比例组,通过 geoZarrMetadata 用于没有 GeoZarr 元数据的存储,或者给出 epsgResolver。打开的源还可以在任何层存在之前给出数据的界限,几个层可以共享,例如两层绘制不同的选择:

import { ZarrLayer, ZarrSource } from "@developmentseed/deck.gl-zarr";

const source = await ZarrSource.open(store, { path: "temperature" });
if (!source.is("float32")) {
  throw new Error(`Expected float32 data, got ${source.levels[0]!.dtype}`);
}
const { west, south, east, north } = source.geographicBounds;

const layer = new ZarrLayer({
  id: "temperature",
  source,
  selection: { time: 0 },
  getTileData,
  renderTile,
});

source.is(dtype) 检查运行时的数据类型,并将源的类型缩小到它, 如 zarrita's Array.is 用于数组.

数组继承 proj: 财务报告和审定财务报表 spatial: 其所在组的属性,所以 path 可以命名一个 GeoZarr 元数据在其组中的数组.

线人 node 是它绘制的 Zarrita 组或数组。 它存储着数据集的其他阵列,例如坐标:

const band = await zarr.open(zarr.root(source.node.store).resolve("band"), {
  kind: "array",
});

ZarrSource.open 和层还取出一个打开的 Zarrita 组或数组而不是一个存储。 当应用程序已经打开了节点时通过一个,比如读取坐标或标签数组或浏览分级,或者需要控制它是如何打开的,比如它的Zarr版本.

打电话者提供两个回电:

  • getTileData(arr, options) ——接收所请求级别打开的zarr阵列和一个预建 sliceSpec调用 zarr.get(arr, options.sliceSpec) 将结果转换成任何形状 renderTile 期待着.
  • renderTile(data) - 将结果转化为 RenderTileResult (单位:千美元) ImageData/纹理,或自定义的luma.gl RenderPipeline) (中文(简体) ).

此分割保留 ZarrLayer 对数据类型和渲染管道的不可知论——层会处理地砖,平面选择和再投影;你决定块如何变成像素.

特征

  • 地球泽尔: 读取 spatial, (中文(简体) ), multiscales,以及 geo-proj 生成平面金字塔的常规,每个平面外膜的变换,以及 CRS.
  • 单一和多分辨率支助: 二维数组,或一个在任何位置上具有其他维度的数组,例如 [band, y, x] 或者说 [y, x, band],作为单级源,只要y在x之前出现;一个多级组作为金字塔提供.
  • 空中再预测: 来源 CRS = 使用 Web Mercator @developmentseed/raster-reproject,没有服务器侧平板服务.
  • 呼叫者拥有的商店:您创建了 Zarrita 商店, 因此您控制合并, 范围连接, 认证 。 通过打开的 zarr.Group 或者说 zarr.Array 也可以控制它是如何打开的.

版本与发布记录

@developmentseed/deck.gl-zarr 共发布 28 个版本,首次发布于 2025/12/19;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.10.0latest2026/11/102 天前
0.10.0-beta.4beta2026/11/075 天前
0.10.0-beta.32026/11/066 天前
0.10.0-beta.22026/10/3012 天前
0.9.02026/10/2419 天前
0.9.0-beta.32026/10/2320 天前

关于 @developmentseed/deck.gl-zarr 的常见问题

@developmentseed/deck.gl-zarr 是什么?

(原始内容存档于2019-09-26). Zar visionization in deck.gl.

如何安装 @developmentseed/deck.gl-zarr?

在项目目录运行 npm install @developmentseed/deck.gl-zarr,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deck.gl/core(^9.4.0)、@luma.gl/core(^9.4.0)、@deck.gl/layers(^9.4.0)、@deck.gl/geo-layers(^9.4.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@developmentseed/deck.gl-zarr 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@developmentseed/deck.gl-zarr 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@developmentseed/deck.gl-zarr 可以商用吗?

@developmentseed/deck.gl-zarr 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@developmentseed/deck.gl-zarr 的下载量有多少?

根据 npm 官方下载统计,@developmentseed/deck.gl-zarr 在 2026/10/12 – 2026/11/10 这 30 天内被下载 5,775 次,日均约 193 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@developmentseed/deck.gl-zarr 还在维护吗?

最新版本 0.10.0 发布于 2026/11/10(2 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2025/12/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。