你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
先决条件
- 具有活动订阅的 Azure 帐户; 免费创建帐户。
- Azure Microsoft Planetary Computer Pro GeoCatalog 资源
- Blob 存储帐户 创建 Blob 存储帐户。
- 包含数据立方体资产(NetCDF、HDF5、GRIB2)、STAC 项目和静态 STAC 目录的 Blob 存储容器。 了解如何创建 STAC 项。
设置引入源
在开始引入数据多维数据集数据之前,需要设置引入源,该源将用作凭据来访问存储资产和 STAC 项的 Blob 存储帐户。 可以使用 托管标识 或 SAS 令牌设置引入源。
创建数据立方体集合
一旦设置了您的引入源,您可以为您的数据立方体资产创建一个集合。 可以参考 使用 Python 和 Microsoft Planetary Computer Pro 创建 STAC 集合 中的步骤来创建一个集合。
引入数据多维数据集资产
可以在引入概述中遵循数据多维数据集数据的引入过程和其他数据类型的启动。 但是,如数据多维数据集概述中所述,在Planetary Computer Pro的数据处理过程中,引入是与这些文件类型不同的步骤。 虽然 GRIB2 数据和关联的 STAC 项与任何其他二维光栅文件一样引入,但 NetCDF 和 HDF5 资产会进行进一步的数据扩充。
数据多维数据集概述中记录了 Kerchunk 清单的生成,但请务必注意的是,Kerchunk 资产将与原始资产一起添加到 Blob 存储容器,并且一个额外的 cube:variables 字段会添加到 STAC 项 JSON。 在行星计算机专业资源管理器中呈现这些数据类型时,这一点很重要。
配置数据多维数据集集合
数据多维数据集集合的配置是另一个步骤,该步骤看起来与其他数据类型略有不同。 可以按照 Microsoft Planetary Computer 专业版 Web 界面配置集合 中所述的步骤来配置您的数据立方体集合,但在构建呈现配置时,您需要注意以下差异:
NetCDF 和 HDF5 资产的呈现配置
请记住,JSON 格式的标准呈现配置参数如下所示:
[
{
"id": "prK1950-06-30",
"name": "prK1950-06-30",
"type": "raster-tile",
"options": "assets=pr-kerchunk&subdataset_name=pr&rescale=0,0.01&colormap_name=viridis&datetime=1950-06-30",
"minZoom": 1
}
]
options 字段用于利用云优化的 Kerchunk 资产,而不是 STAC 项中列出的原始资产。 还需要包含 subdataset_name 参数,该参数是要呈现的变量的名称。
GRIB2 资产呈现配置
options GRIB2 资产的呈现配置字段类似于上一个示例,但无需包含subdataset_name参数。 这是因为 GRIB2 数据已通过索引文件以最佳方式进行结构化和引用。 在本例中,该 assets 参数表示要呈现的带或二维光栅层。 下面是 GRIB2 呈现配置的示例:
[
{
"id": "render-config-1",
"name": "Mean Zero-Crossing Wave Period",
"description": "A sample render configuration. Update `options` below.",
"type": "raster-tile",
"options": "assets=data&subdataset_bands=1&colormap_name=winter&rescale=0,10",
"minZoom": 1
}
]
Zarr资产的呈现配置
Zarr 资产的渲染配置的 options 字段也与 NetCDF 和 HDF5 的字段相似;但是在 assets 参数中,必须包含参数“sel”,该参数使你能够选择一个时间、步骤或其他变量,以便在多变量 Zarr 存储中的一个时间片段上对一个变量进行 2D 渲染。 你可能还需要包含“sel_method”参数,以确保选择正确的变量,即使输入的值略有偏差。 可以在行星计算机 Pro 后端中使用的 Python 多维数据读取库的公共文档中详细了解这个“sel”参数,Xarray。以下是一个 Zarr 渲染配置的示例:
[
{
"id": "era5-zarr",
"name": "era5-zarr",
"type": "raster-tile",
"options": "assets=data&subdataset_name=precipitation_amount_1hour_Accumulation&colormap_name=viridis&sel=time=2024-01-01&sel_method=nearest&rescale=0,0.01",
"minZoom": 12
}
]
在资源管理器中可视化数据多维数据集资产
引入和配置数据多维数据集资产后,可以在 Planetary Computer Pro 资源管理器中将其可视化。 有关使用资源管理器的分步指南,请参阅 快速入门:在 Microsoft 行星计算机专业版中使用资源管理器。
虽然 Microsoft Planetary Computer Pro 包含一个可用于可视化某些多维数据集资产的平铺器;但对于每种支持的数据类型,都有一些注意事项。
NetCDF 和 HDF5 可视化效果
并非所有可以引入到Microsoft行星计算机中的 NetCDF 数据集都与行星计算机专业版的可视化图块兼容。 数据集必须具有 X 轴和 Y 轴、纬度和经度坐标以及要可视化的空间维度和边界。 例如,纬度和经度是变量而不是坐标的数据集与 Planetary Computer Pro 的平铺器不兼容。
在尝试可视化 NetCDF 或 HDF5 数据集之前,可以使用以下命令来检查它是否符合要求。
安装所需的依赖项
pip install xarray[io] rioxarray cf_xarray运行以下函数:
import xarray as xr import cf_xarray import rioxarray def is_dataset_visualizable(ds: xr.Dataset): """ Test if the dataset is compatible with the Planetary Computer tiler API. Raises an informative error if the dataset is not compatible. """ if not ds.cf.axes: raise ValueError("Dataset does not have CF axes") if not ds.cf.coordinates: raise ValueError("Dataset does not have CF coordinates") if not {"X", "Y"} <= ds.cf.axes.keys(): raise ValueError(f"Dataset must have CF X and Y axes, found: {ds.cf.axes.keys()}") if not {"latitude", "longitude"} <= ds.cf.coordinates.keys(): raise ValueError("Dataset must have CF latitude and longitude coordinates, " f"actual: {ds.cf.coordinates.keys()}") if ds.rio.x_dim is None or ds.rio.y_dim is None: raise ValueError("Dataset does not have rioxarray spatial dimensions") if ds.rio.bounds() is None: raise ValueError("Dataset does not have rioxarray bounds") left, bottom, right, top = ds.rio.bounds() if left < -180 or right > 180 or bottom < -90 or top > 90: raise ValueError("Dataset bounds are not valid; they must be within [-180, 180] and [-90, 90]") if ds.rio.resolution() is None: raise ValueError("Dataset does not have rioxarray resolution") if ds.rio.transform() is None: raise ValueError("Dataset does not have rioxarray transform") print("✅ Dataset is compatible with the Planetary Computer tiler API.")
GRIB2 可视化效果
只要将索引文件(.idx)与 GRIB2 资产一同存储在同一 Blob 存储容器中,这些已传入 Microsoft Planetary Computer Pro 的 GRIB2 资产就可以在 Microsoft Planetary Computer Explorer 中进行可视化。 索引文件是在引入过程中生成的,是最佳访问和呈现 GRIB2 数据所必需的。
Zarr 可视化效果
引入到 Microsoft Planetary Computer Pro 中的 Zarr 资产可以在资源管理器中可视化,只要渲染配置指定使用 options 字段中的 sel 参数来渲染哪个变量和时间片段。 否则将导致资源管理器尝试同时呈现 Zarr 存储的所有变量和时间切片,这将导致资源管理器崩溃。
Zarr 存储和空间区块的大小也会影响性能。 你应该将目标设定为将 Zarr 存储的总大小保持在 2 GB 以下,并确保每个块小于 100 MB,以保证平铺器的最佳性能。
时间滑块用于数据立方体可视化
如果数据多维数据集资产具有时间组件,则可以使用 Explorer 中的时间滑块来可视化随时间推移的更改。 如果你的 STAC 项包含具有time维度以及extent和step字段的资产,则时间滑块将自动显示。
[!注意] 我们目前不为 Zarr 资产提供时间滑块支持。 因此,至关重要的是要在呈现配置中指定要可视化的哪些时间切片。 不这样做会导致资源管理器尝试一次性渲染 Zarr 存储的所有时间切片,从而导致资源管理器崩溃。