[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 アカウントを無料で作成します。
- Microsoft Planetary Computer Pro GeoCatalog リソース
- Blob Storage アカウントを作成する。
- データ キューブ資産 (NetCDF、HDF5、GRIB2)、STAC 項目、静的 STAC カタログを含む Blob Storage コンテナー。 STAC アイテムを作成する方法について説明します。
インジェスト ソースを設定する
データ キューブ データの取り込みを開始する前に、インジェスト ソースを設定する必要があります。インジェスト ソースは、資産と STAC アイテムが格納されている Blob Storage アカウントにアクセスするための資格情報として機能します。 インジェスト ソースは、 マネージド ID または SAS トークンを使用して設定できます。
データ キューブ コレクションを作成する
インジェスト ソースを設定したら、データ キューブ 資産のコレクションを作成できます。 コレクションを作成する手順は、「Python を 使用して Microsoft Planetary Computer Pro を使用して STAC コレクションを作成する」で実行できます。
データ キューブ資産を取り込む
データ キューブ データおよびその他のデータ型のインジェスト プロセスの開始については、「 インジェストの概要」を参照してください。 ただし、「 Data Cube の概要」で説明されているように、インジェストは、これらのファイルの種類によって異なる、プラネタリー コンピューター プロのデータ処理の手順です。 GRIB2 データおよび関連する STAC 項目は、他の 2 次元ラスター ファイルと同様に取り込まれますが、NetCDF および HDF5 アセットではさらにデータ エンリッチメントが行われます。 Kerchunk マニフェストの生成については データ キューブの概要に記載されていますが、重要なのは、Kerchunk アセットが元の資産と共に Blob Storage コンテナーに追加され、STAC 項目 JSON に追加 cube:variables フィールドが追加されることです。 これは、これらのデータ型をプラネタリー コンピューター Pro Explorer でレンダリングする場合に重要です。
データ キューブ コレクションを構成する
データ キューブ コレクションの構成は、他のデータ型とは若干異なるもう 1 つの手順です。 「Microsoft Planetary Computer Pro Web インターフェイスを使用してコレクションを構成する」で説明されている手順に従ってデータ キューブ コレクションを構成できますが、レンダー構成を構築するときは、次の違いに注意する必要があります。
NetCDF および HDF5 アセットのレンダリング構成
JSON 形式の標準の Render Configuration 引数は次のようになります。
[
{
"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 ] フィールドでは、STAC 項目に記載されている元の資産ではなく、クラウド最適化の Kerchunk 資産を利用します。 また、 subdataset_name 引数 (レンダリングする変数の名前) も含める必要があります。
GRIB2 アセットのレンダリング構成
GRIB2 アセットのレンダー構成の options フィールドは前の例のようになりますが、 subdataset_name 引数を含める必要はありません。 これは、GRIB2 データが既に最適に構造化され、インデックス ファイルを介して参照されているためです。 この場合、 assets 引数は、レンダリングするバンドまたは 2D ラスター レイヤーを表します。 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 アセットの Render Configuration の options フィールドも NetCDF と HDF5 のフィールドと似ていますが、 assets 引数内にパラメーター 'sel' を含める必要があります。このパラメーターを使用すると、複数変数の Zarr ストアから 1 つのタイム スライスで 1 つの変数の 2D レンダリングを有効にする時間、ステップ、またはその他の変数を選択できます。 また、入力した値が少しずれている場合でも、適切な変数が選択されるように、'sel_method' パラメーターを含める必要がある場合もあります。 この 'sel' パラメーターの詳細については、プラネタリー コンピューター Pro バックエンドで使用される Python 多次元データ読み取りライブラリのパブリック ドキュメントで確認できます。 Xarray Below は Zarr Render Configuration の例です。
[
{
"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
}
]
エクスプローラーでデータ キューブアセットを視覚化する
データ キューブ資産が取り込んで構成されたら、プラネタリー コンピューター Pro Explorer で視覚化できます。 エクスプローラーを使用するための詳細なガイドについては、「 クイック スタート: Microsoft Planetary Computer Pro でエクスプローラーを使用する」を参照してください。
Microsoft Planetary Computer Pro には、一部のデータ キューブ アセットを視覚化するために使用できるタイルが含まれていますが、サポートされている各データ型に関しては注意が必要です。
NetCDF と HDF5 の視覚化
Microsoft プラネタリー コンピューターに取り込むことができるすべての NetCDF データセットが、プラネタリー コンピューター Pro の視覚化タイラーと互換性があるわけではありません。 データセットには、視覚化する X 軸と Y 軸、緯度と経度の座標、空間ディメンションと境界が必要です。 たとえば、緯度と経度が変数であり、座標ではないデータセットは、プラネタリー コンピューター プロのタイルと互換性がありません。
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 の視覚化
Microsoft Planetary Computer Pro に取り込まれた GRIB2 資産は、関連付けられたインデックス ファイル (.idx) が同じ Blob Storage コンテナーに格納されている限り、エクスプローラーで視覚化できます。 インデックス ファイルはインジェスト中に生成され、GRIB2 データへの最適なアクセスとレンダリングに必要です。
Zarr の視覚化
Microsoft Planetary Computer Pro に取り込まれた Zarr アセットは、レンダー構成で、sel フィールドの options パラメーターを使用してレンダリングする変数とタイム スライスが指定されている限り、エクスプローラーで視覚化できます。 これを行わないと、エクスプローラーで Zarr ストアのすべての変数とタイム スライスが一度にレンダリングされ、エクスプローラーがクラッシュします。
Zarr ストアと空間チャンクのサイズもパフォーマンスに影響します。 タイルの最適なパフォーマンスを得るために、Zarr ストアの合計サイズを 2 GB 未満にし、各チャンクを 100 MB 未満に抑える必要があります。
データ キューブ視覚化のタイム スライダー
データ キューブアセットにテンポラル コンポーネントがある場合は、エクスプローラーのタイム スライダーを使用して、時間の経過に伴う変化を視覚化できます。 STAC アイテムにtimeとextentフィールドを持つstepディメンションを持つ資産が含まれている場合、タイム スライダーが自動的に表示されます。
[!注] 現在、Zarr アセットのタイム スライダーのサポートは提供されていません。 このため、レンダリング構成で視覚化するタイム スライスを指定することが重要です。 これを行わないと、エクスプローラーが Zarr ストアのすべてのタイム スライスを一度にレンダリングしようとするため、エクスプローラーがクラッシュします。