@ 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.glRenderPipeline) (中文(简体) ).
此分割保留 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也可以控制它是如何打开的.