Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją; utwórz bezpłatne konto.
- Zasób Komputer planetarny Microsoft Pro GeoCatalog
- Konto usługi Blob Storage utwórz konto Blob Storage.
- Kontener usługi Blob Storage z zasobami kostki danych (NetCDF, HDF5, GRIB2), elementami STAC i statycznym katalogiem STAC. Dowiedz się, jak tworzyć elementy STAC.
Konfigurowanie źródła pozyskiwania
Przed rozpoczęciem pozyskiwania danych modułu danych należy skonfigurować źródło pozyskiwania, które będzie służyć jako poświadczenia dostępu do konta usługi Blob Storage, na którym są przechowywane zasoby i elementy STAC. Źródło pozyskiwania można skonfigurować przy użyciu tożsamości zarządzanej lub tokenu SAS.
Tworzenie kolekcji modułów danych
Po skonfigurowaniu źródła pozyskiwania można utworzyć kolekcję dla zasobów modułu danych. Kroki tworzenia kolekcji można wykonać w temacie Tworzenie kolekcji STAC za pomocą programu Komputer planetarny Microsoft Pro przy użyciu języka Python.
Pozyskiwanie zasobów modułu danych
Inicjowanie procesu pobierania danych kostki danych i innych typów danych można śledzić w temacie Omówienie pozyskiwania danych. Zgodnie z opisem w Omówienie kostki danych, import danych jest jednak krokiem obsługi danych Planetary Computer Pro, które różnią się w przypadku tych typów plików. Podczas gdy dane GRIB2 i skojarzone elementy STAC są pozyskiwane tak samo jak każdy inny dwuwymiarowy plik raster, zasoby NetCDF i HDF5 przechodzą dalsze wzbogacanie danych. Generowanie manifestów Kerchunk jest udokumentowane w artykule Omówienie modułu danych, ale ważne jest, aby pamiętać, że składowe kerchunk zostaną dodane do kontenera usługi Blob Storage obok oryginalnych zasobów, a do pliku JSON elementu STAC zostanie dodane dodatkowe cube:variables pole. Jest to ważne podczas renderowania tych typów danych w Eksploratorze Komputerów Planetarnych.
Konfiguracja kolekcji kostek danych
Konfiguracja zbierania kostek danych to kolejny krok, który będzie wyglądać nieco inaczej niż w przypadku innych typów danych. Możesz wykonać kroki opisane w temacie Konfigurowanie kolekcji za pomocą interfejsu internetowego Komputer planetarny Microsoft Pro w celu skonfigurowania kolekcji modułów danych, ale podczas tworzenia konfiguracji renderowania należy pamiętać o następujących różnicach:
Konfiguracja renderowania zasobów NetCDF i HDF5
Pamiętaj, że standardowy argument konfiguracji renderowania w formacie JSON wygląda następująco:
[
{
"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",
"minZoom": 1,
"info_options": "assets=pr-kerchunk&subdataset_name=pr"
}
]
Pole options to miejsce, gdzie warto korzystać z zoptymalizowanego pod kątem chmury zasobu Kerchunk zamiast oryginalnego zasobu wymienionego w elemencie STAC. Należy również uwzględnić subdataset_name argument, który jest nazwą zmiennej, którą chcesz renderować.
Pole info_options umożliwia suwak czasu w Explorerze dla tej kolekcji. Używa tego samego formatu URL jako ciąg zapytań co options, ale powinien zawierać tylko parametry potrzebne do /info wykrywania, zazwyczaj assets i subdataset_name. Pomijamy parametry stylizacji i cięcia, takie jak rescale, colormap_name, oraz datetime. Gdy chcesz, aby suwak pozostał aktywny, nie przypinaj datetime=... w options, ponieważ wartość ustawiona na stałe ma pierwszeństwo przed suwakiem. Jeśli pominiesz info_options, Explorer wraca do odczytu ograniczeń czasowych z metadanych elementów STAC (cube:dimensions, start_datetime, ). end_datetime
Konfiguracja renderowania zasobów GRIB2
Pole options Konfiguracji renderowania zasobów GRIB2 wygląda podobnie do poprzedniego przykładu, ale nie będzie konieczne uwzględnienie argumentu subdataset_name . Wynika to z faktu, że dane GRIB2 są już optymalnie ustrukturyzowane i przywoływane poprzez ich pliki indeksu. Argument assets , w tym przypadku, reprezentuje pasm lub warstwę rasterową 2D, którą chcesz renderować. Poniżej przedstawiono przykład konfiguracji renderowania 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,
"info_options": "assets=data"
}
]
Dla GRIB2 ustaw info_options na klucz zasobu używany w options. Dodanie info_options włącza suwak czasu w Explorerze, który pobiera dostępne indeksy pasm i komunikatów GRIB bezpośrednio z punktu końcowego /info Tilera. Jeśli Twoja kolekcja GRIB udostępnia wiele konfiguracji renderowania dla różnych zasobów, dodaj info_options do każdej opcji renderowania, która powinna sterować suwakiem.
Konfiguracja renderowania zasobów Zarr
options Pole dla zasobów Zarr jest podobne do NetCDF i HDF5, ale istnieją dwa ważne wymagania:
- Wybierz pojedynczy wycinek czasu na potrzeby renderowania przy użyciu polecenia
sel=time=.... - Przed renderowaniem sprowadź dane do formatu 2D.
Jeśli dodatkowe wymiary nie są zwinięte, renderowanie może zakończyć się niepowodzeniem z błędami, takimi jak Source data must be 1 band.
Więcej informacji na temat parametru można uzyskać w pliku selXarray DataArray.sel. Poniżej przedstawiono minimalną konfigurację renderowania Zarr dla pojedynczego kroku czasowego i danych wyjściowych 2D.
[
{
"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
}
]
Wizualizowanie zasobów modułu danych w Eksploratorze
Po pozyskaniu i skonfigurowaniu zasobów modułu danych można je wizualizować w Planetary Computer Pro Explorer. Przewodnik krok po kroku dotyczący korzystania z Eksploratora znajduje się w Szybki start: Korzystanie z Eksploratora w programie Komputer planetarny Microsoft Pro.
Chociaż microsoft Planetary Computer Pro zawiera kafelek, który może służyć do wizualizacji niektórych zasobów modułu danych, istnieją pewne zastrzeżenia do zanotowania, jeśli chodzi o każdy obsługiwany typ danych.
Wizualizacja NetCDF i HDF5
Nie wszystkie zestawy danych NetCDF, które można załadować do Microsoft Planetary Computer, są zgodne z wizualizacją tilera Planetary Computer Pro. Zestaw danych musi mieć osie X i Y, współrzędne szerokości i długości geograficznej oraz wymiary przestrzenne i granice, które mają być wizualizowane. Na przykład zestaw danych, w którym szerokość geograficzna i długość geograficzna są zmiennymi, ale nie współrzędnymi, nie jest zgodny z kafelkiem Planetary Computer Pro.
Przed próbą wizualizacji zestawu danych NetCDF lub HDF5 możesz użyć poniższej metody, aby sprawdzić, czy spełnia ona wymagania.
Instalowanie wymaganych zależności
pip install xarray[io] rioxarray cf_xarrayUruchom następującą funkcję:
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.")
Wizualizacja GRIB2
Zasoby GRIB2 wczytane do Komputer planetarny Microsoft Pro można wizualizować w Eksploratorze, o ile mają skojarzony plik indeksu (.idx) przechowywany w tym samym kontenerze usługi Blob Storage. Plik indeksu jest generowany podczas wczytywania i jest wymagany do uzyskania optymalnego dostępu i renderowania danych GRIB2.
Wizualizacja Zarr
Zasoby Zarr pozyskane do Komputer planetarny Microsoft Pro można wizualizować w Eksploratorze, o ile konfiguracja renderowania określa, która zmienna i wycinek czasu ma być renderowany przy użyciu parametru sel w polu options. Nie można tego zrobić, co spowoduje, że Eksplorator próbuje renderować wszystkie zmienne i wycinki czasowe magazynu Zarr jednocześnie, co spowoduje awarię Eksploratora.
Rozmiar magazynu Zarr i fragmentów przestrzennych będzie również mieć wpływ na wydajność. Należy dążyć do utrzymania całkowitego rozmiaru magazynu Zarr poniżej 2 GB, a każdy fragment poniżej 100 MB, aby zapewnić optymalną wydajność narzędzia do kafelkowania.
Ograniczenia i znane problemy wizualizacji Zarr
Zachowanie suwaka czasu (znane ograniczenie)
Uwaga / Notatka
Działanie suwaka czasu dla Zarr jest obecnie ograniczone. Suwak czasu eksploratora jest wyświetlany tylko wtedy, gdy wymiar czasowy jest poprawnie wykrywany podczas wczytywania danych.
Nawet jeśli zasoby Zarr zawierają wartości czasu, przetwarzanie danych może nie wykryć metadanych czasowych dla niektórych zestawów danych. W takich przypadkach suwak czasu nie będzie renderowany i musisz w konfiguracji renderowania zwizualizować pojedynczy krok czasowy (na przykład sel=time=2024-01-01).
Wymagane i zalecane metadane czasowe
Aby umożliwić zachowanie uwzględniające czas, metadane STAC powinny zawierać wymiar czasowy w cube:dimensions :
type: temporalextentstep
W przypadku danych źródłowych Zarr postępuj zgodnie z konwencjami czasu CF tam, gdzie to możliwe, na przykład:
standard_name="time"axis="T"
Te konwencje są niezbędne do interpretacji spójnych metadanych, ale ze względu na bieżące ograniczenia nie zawsze są wystarczające, aby zagwarantować obsługę suwaka czasu dla każdego zestawu danych Zarr.
Notatki z kerchunku
Kerchunk może poprawić wydajność wzorców dostępu wielowymiarowego, ale nie rozwiązuje problemów z suwakiem czasu, gdy wymiary czasowe nie zostały wykryte podczas pozyskiwania.
Niektóre zestawy danych Zarr mogą również zakończyć się niepowodzeniem podczas przetwarzania indeksu z błędami, takimi jak Index must be monotonic increasing or decreasing.
Suwak czasu wizualizacji modułu danych
Jeśli zasoby modułu danych mają składnik czasowy, możesz użyć suwaka czasu w Eksploratorze, aby zwizualizować zmiany w czasie. Elementy STAC automatycznie wyświetlą suwak czasu, jeśli zawierają zasoby z wymiarem time oraz polami extent i step.
Uwaga / Notatka
W przypadku zasobów Zarr, zobacz Ograniczenia wizualizacji Zarr i znane problemy dotyczące ograniczeń suwaka bieżącego czasu i wymaganych schematów konfiguracji renderowania.