Schnellstart: Erste Schritte mit Datenwürfeln in Microsoft Planetary Computer Pro

Voraussetzungen

Einrichten der Aufnahmequelle

Bevor Sie mit dem Erfassen von Datenwürfeldaten beginnen können, müssen Sie eine Aufnahmequelle einrichten, die als Ihre Anmeldeinformationen für den Zugriff auf das Blob Storage-Konto dient, in dem Ihre Objekte und STAC-Elemente gespeichert sind. Sie können eine Ingestionsquelle mit verwalteter Identität oder SAS-Token einrichten.

Erstellen einer Datenwürfelsammlung

Nachdem Ihre Erfassungsquelle eingerichtet wurde, können Sie eine Sammlung für Ihre Datenwürfelressourcen erstellen. Schritte zum Erstellen einer Sammlung können in der Erstellung einer STAC-Sammlung mit Microsoft Planetary Computer Pro mit Python befolgt werden.

Datenwürfelressourcen erfassen

Die Initiierung des Aufnahmeprozesses für Daten von Datenwürfeln und andere Datentypen kann in der Übersicht über den Erfassungsvorgang nachverfolgt werden. Wie im Data Cube Overview beschrieben, ist die Eingabe jedoch der Schritt in der Datenverarbeitung von Planetary Computer Pro, der sich für diese Dateitypen unterscheidet. Während GRIB2-Daten und zugeordnete STAC-Elemente wie jede andere zweidimensionale Rasterdatei aufgenommen werden, werden NetCDF- und HDF5-Objekte einer weiteren Datenerweiterung unterzogen. Die Generierung von Kerchunk-Manifesten wird in der Datenwürfelübersicht dokumentiert. Beachten Sie jedoch, dass Kerchunk-Ressourcen ihrem Blob Storage-Container zusammen mit den ursprünglichen Ressourcen hinzugefügt werden und ein zusätzliches cube:variables Feld dem STAC Item JSON hinzugefügt wird. Dies ist beim Rendern dieser Datentypen im Planetary Computer Pro Explorer wichtig.

Konfigurieren einer Datenwürfelsammlung

Die Konfiguration Ihrer Datenwürfelsammlung ist ein weiterer Schritt, der sich geringfügig von denen anderer Datentypen unterscheidet. Sie können die unter "Konfigurieren einer Sammlung" beschriebenen Schritte mit der Microsoft Planetary Computer Pro-Webschnittstelle ausführen, um Ihre Datenwürfelsammlung zu konfigurieren. Beachten Sie jedoch beim Erstellen der Renderkonfiguration die folgenden Unterschiede:

Renderkonfiguration für NetCDF- und HDF5-Ressourcen

Beachten Sie, dass ein standardmäßiges Renderkonfigurationsargument im JSON-Format wie folgt aussieht:

[
  {
    "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
  }
]

Das options Feld ist der Ort, an dem Sie die in der Cloud optimierte, Kerchunk-Ressource im Gegensatz zu den ursprünglichen Ressourcen verwenden möchten, die im STAC-Element aufgeführt sind. Sie müssen auch das subdataset_name Argument einschließen, bei dem es sich um den Namen der Variablen handelt, die Sie rendern möchten.

Renderkonfiguration für GRIB2-Ressourcen

Das options Feld für die Renderkonfiguration von GRIB2-Ressourcen sieht ähnlich wie im vorherigen Beispiel aus, aber Sie müssen das subdataset_name Argument nicht einschließen. Dies liegt daran, dass GRIB2-Daten bereits optimal strukturiert und über ihre Indexdateien referenziert werden. Das assets Argument stellt in diesem Fall den Bereich oder die 2D-Rasterebene dar, die Sie rendern möchten. Im Folgenden finden Sie ein Beispiel für eine GRIB2-Renderkonfiguration:

[ 
 {
    "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
 }
]

Renderkonfiguration für Zarr-Ressourcen

Das options Feld für Zarr-Objekte ähnelt NetCDF und HDF5, aber es gibt zwei wichtige Anforderungen:

  1. Wählen Sie ein einzelnes Zeitsegment für das Rendern mithilfe von sel=time=....
  2. Reduzieren Sie Daten vor dem Rendern auf eine 2D-Ausgabe.

Wenn zusätzliche Dimensionen nicht kollabiert sind, kann das Rendering mit Fehlern wie z. B. Source data must be 1 band fehlschlagen.

Weitere Informationen zum sel Parameter finden Sie in Xarray DataArray.sel. Im Folgenden finden Sie eine minimale funktionierende Zarr-Rendering-Konfiguration für einen einzelnen Zeitschritt und eine 2D-Ausgabe:

[
    {
        "id": "era5-zarr-single-time",
        "name": "ERA5 single timestep",
        "type": "raster-tile",
        "options": "assets=data&subdataset_name=precipitation_amount_1hour_Accumulation&sel=time=2024-01-01&sel_method=nearest&colormap_name=viridis&rescale=0,0.01",
        "minZoom": 12
    }
]

Visualisieren von Datenwürfelressourcen im Explorer

Sobald Ihre Datenwürfelressourcen aufgenommen und konfiguriert wurden, können Sie sie im Planetary Computer Pro Explorer visualisieren. Eine schrittweise Anleitung für die Verwendung des Explorers finden Sie in der Schnellstartanleitung: Verwenden Sie den Explorer in Microsoft Planetary Computer Pro.

Während Microsoft Planetary Computer Pro einen Tiler enthält, der zum Visualisieren einiger Datenwürfelressourcen verwendet werden kann, gibt es einige Einschränkungen zu beachten, wenn es um jeden unterstützten Datentyp geht.

NetCDF- und HDF5-Visualisierung

Nicht alle NetCDF-Datensätze, die in Microsoft Planetary Computer aufgenommen werden können, sind mit dem Visualisierungs-Tiler des Planetary Computer Pro kompatibel. Ein Dataset muss X- und Y-Achsen, Breiten- und Längengradkoordinaten sowie räumliche Dimensionen und Grenzen aufweisen, die visualisiert werden sollen. Beispielsweise ist ein Datensatz, bei dem Breitengrad und Längengrad Variablen, aber keine Koordinaten sind, nicht mit dem Planetary Computer Pro-Tiler kompatibel.

Bevor Sie versuchen, Ihr NetCDF- oder HDF5-Dataset zu visualisieren, können Sie folgendes verwenden, um zu überprüfen, ob es die Anforderungen erfüllt.

  1. Installieren der erforderlichen Abhängigkeiten

    pip install xarray[io] rioxarray cf_xarray
    
  2. Führen Sie die folgende Funktion aus:

    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-Visualisierung

GRIB2-Ressourcen, die in Microsoft Planetary Computer Pro aufgenommen wurden, können im Explorer visualisiert werden, solange sie eine zugeordnete Indexdatei (IDX) im selben Blob Storage-Container gespeichert haben. Die Indexdatei wird während der Aufnahme generiert und ist für den optimalen Zugriff und das Rendern von GRIB2-Daten erforderlich.

Zarr-Visualisierung

Zarr-Ressourcen, die in Microsoft Planetary Computer Pro aufgenommen werden, können solange im Explorer visualisiert werden, bis die Renderkonfiguration angibt, welche Variable und welches Zeitsegment mithilfe des sel-Parameters im options-Feld gerendert werden soll. Andernfalls versucht der Explorer, alle Variablen und Zeitsegmente des Zarr-Speichers gleichzeitig zu rendern, was dazu führt, dass der Explorer abstürzt.

Die Größe des Zarr-Speichers und der räumlichen Blöcke wirkt sich auch auf die Leistung aus. Sie sollten die Gesamtgröße eines Zarr-Speichers unter 2 GB und jeden Block unter 100 MB behalten, um eine optimale Leistung des Tilers zu erzielen.

Einschränkungen der Zarr-Visualisierung und bekannte Probleme

Verhalten des Zeitschiebereglers (bekannte Einschränkung)

Hinweis

Das Verhalten des Zeitschiebereglers für Zarr ist derzeit begrenzt. Der Explorer-Zeitschieberegler wird nur angezeigt, wenn während der Einspeisung eine zeitliche Dimension korrekt erkannt wird.

Selbst wenn Zarr-Objekte Zeitwerte enthalten, kann die Erfassung für einige Datasets möglicherweise keine zeitlichen Metadaten erkennen. In diesen Fällen wird der Zeitschieberegler nicht gerendert, und Sie müssen jeweils einen Zeitschritt mithilfe der Renderkonfiguration visualisieren (z. B. sel=time=2024-01-01).

Um zeitbewusstes Verhalten zu aktivieren, sollten Ihre STAC-Metadaten eine zeitbezogene Dimension in cube:dimensions enthalten:

  • type: temporal
  • extent
  • step

Nach Möglichkeit folgen Sie für die Zarr-Quelldaten den CF-Zeitkonventionen, z. B.:

  • standard_name="time"
  • axis="T"

Diese Konventionen sind für eine konsistente Metadateninterpretation erforderlich, aber aufgrund aktueller Einschränkungen reichen sie nicht immer aus, um die Unterstützung von Zeitschiebereglern für jedes Zarr-Dataset zu gewährleisten.

Kerchunk-Notizen

Kerchunk kann die Leistung bei mehrdimensionalen Zugriffsmustern verbessern, löst jedoch keine Probleme mit Zeitschiebereglern, wenn zeitliche Dimensionen bei der Erfassung nicht erkannt wurden.

Einige Zarr-Datasets können auch während der Indexverarbeitung mit Fehlern, wie Index must be monotonic increasing or decreasing, fehlschlagen.

Roadmap und zukünftiger Support

Aktueller und geplanter Support ist:

  • Zarr v2: heute unterstützt
  • Zarr v3: noch nicht unterstützt, geplant für zukünftige Unterstützung
  • Multi-Zarr Visualisierer und zeitliches Handling: heute teilweise, weitere Verbesserungen sind geplant

Zeitschieberegler für datenwürfelvisualisierung

Wenn Ihre Datenwürfelressourcen über eine zeitliche Komponente verfügen, können Sie den Zeitschieberegler im Explorer verwenden, um Änderungen im Laufe der Zeit zu visualisieren. Der Zeitschieberegler wird automatisch angezeigt, wenn Die STAC-Elemente Objekte mit einer time Dimension mit einem extent und step Feld enthalten.

Hinweis

Für Zarr-Assets siehe Zarr-Visualisierer-Einschränkungen und bekannte Probleme für aktuelle Time-Slider-Einschränkungen und erforderliche Render-Konfigurationsmuster.