Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók; hozzon létre egy fiókot ingyenesen.
- Microsoft Planetary Computer Pro GeoCatalog-erőforrás
- Egy Blob Storage-fiók létrehoz egy Blob Storage-fiókot.
- Egy Blob Storage-tároló adatkocka-objektumokkal (NetCDF, HDF5, GRIB2), STAC-elemekkel és statikus STAC-katalógussal. Megtudhatja, hogyan hozhat létre STAC-elemeket.
Adatgyűjtési forrás beállítása
Mielőtt megkezdené az adatkocka-adatok betöltését, be kell állítania egy betöltési forrást, amely hitelesítő adatokként szolgál majd ahhoz a Blob Storage-fiókhoz való hozzáféréshez, amelyben az eszközök és a STAC-elemek vannak tárolva. A betöltési forrást a felügyelt identitás vagy SAS-jogkivonat használatával állíthatja be.
Adatkocka-gyűjtemény létrehozása
Miután beállította a betöltési forrást, létrehozhat egy gyűjteményt az adatkocka-objektumokhoz. A gyűjtemény létrehozásának lépéseit a STAC-gyűjtemény létrehozása a Microsoft Planetary Computer Pro használatával Pythonban követheti.
Adatkocka-objektumok betöltése
Az adatkockaadatok és más adattípusok betöltési folyamatának kezdeményezése követhető a Betöltési áttekintésben. A Data Cube Áttekintésében leírtak szerint azonban a betöltés a Planetary Computer Pro adatkezelésének azon lépése, amely különbözik az ilyen fájltípusoktól. Míg a GRIB2-adatok és a kapcsolódó STAC-elemek ugyanúgy vannak betöltve, mint bármely más kétdimenziós raszterfájl, a NetCDF és a HDF5-eszközök további adatbővítésen mennek keresztül. A Kerchunk-jegyzékek létrehozása dokumentálva van az Adatkocka áttekintésében, de fontos megjegyezni, hogy a Kerchunk-objektumok az eredeti eszközök mellett hozzáadódnak a Blob Storage-tárolóhoz, és egy további cube:variables mező lesz hozzáadva a STAC-elem JSON-jsonjához. Ez akkor fontos, ha ezeket az adattípusokat a Planetary Computer Pro Explorerben jeleníti meg.
Adatkocka-gyűjtemény konfigurálása
Az adatkocka-gyűjtemény konfigurálása egy másik lépés, amely kissé eltér a többi adattípusétól. Az adatkockagyűjtemény konfigurálásához kövesse a Gyűjtemény konfigurálása a Microsoft Planetary Computer Pro webes felülettel című cikkben leírt lépéseket, de a renderelési konfiguráció létrehozásakor a következő különbségeket kell figyelembe vennie:
NetCDF- és HDF5-eszközök renderelési konfigurációja
Ne feledje, hogy egy standard Render Configuration argumentum JSON formátumban a következőképpen néz ki:
[
{
"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"
}
]
A options mező az, ahol a felhőoptimalizált Kerchunk-objektumot szeretné használni, szemben a STAC-elemben szereplő eredeti objektumokkal. Az argumentumot is tartalmaznia subdataset_name kell, amely a megjeleníteni kívánt változó neve.
A info_options mező lehetővé teszi az Explorer időcsúszkáját ehhez a gyűjteményhez. Ugyanazt az URL lekérdezés-string formátumot használja, mint options, de csak a felfedezéshez szükséges /info paramétereket kell tartalmaznia, jellemzően assets és subdataset_name. Hagyjuk ki a stílus és szeletelési paramétereket, mint rescale, colormap_name, és datetime. Ha azt szeretnéd, hogy a csúszka aktív maradjon, ne rögzítsd a datetime=... elemet a options elemben, mert egy fixen megadott érték felülírja a csúszkát. Ha kihagyod info_options, az Explorer visszakerül az időkorlátok olvasásához a STAC elem metaadatokból (cube:dimensions, start_datetime, end_datetime).
A GRIB2-eszközök renderelési konfigurációja
A options GRIB2-objektumok renderelési konfigurációjának mezője az előző példához hasonlóan néz ki, de nem kell belefoglalnia az subdataset_name argumentumot. Ennek az az oka, hogy a GRIB2-adatok már optimálisan strukturáltak és hivatkoznak az Index-fájljaikon keresztül. Az assets argumentum ebben az esetben a megjeleníteni kívánt sávot vagy 2D raszterréteget jelöli. Az alábbi példa egy GRIB2 renderelési konfigurációra mutat be példát:
[
{
"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"
}
]
GRIB2 esetén állítsa a(z) info_options értékét a(z) options elemben használt objektumkulcsra. A(z) info_options hozzáadása engedélyezi az Explorer időcsúszkáját, amely közvetlenül a Tiler /info végpontjáról kéri le az elérhető GRIB sáv- és üzenetindexeket. Ha a GRIB gyűjteményed több renderelési konfigurációt is megjelenít különböző eszközökhöz, adj info_options hozzá minden renderelési opcióhoz, ami egy csúszkát indíthat.
A Zarr-objektumok renderelési konfigurációja
A options Zarr-eszközök mezője hasonló a NetCDF-hez és a HDF5-höz, de két fontos követelmény van:
- Jelöljön ki egyetlen időszeletet a rendereléshez a használatával
sel=time=.... - Renderelés előtt csökkentse az adatokat 2D kimenetre.
Ha a további dimenziók nincsenek összecsukva, a renderelés sikertelen lehet, és olyan hibákat eredményezhet, mint a Source data must be 1 band.
A sel paraméterről bővebben is olvashat. Az alábbiakban egy minimálisan működő Zarr-renderelési konfigurációt használunk egyetlen időbélyeghez és 2D kimenethez:
[
{
"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
}
]
Adatkocka-objektumok vizualizációja az Explorerben
Miután betöltötte és konfigurálta az adatkocka-objektumokat, megjelenítheti őket a Planetary Computer Pro Explorerben. Az Explorer használatához részletes útmutatót a Rövid útmutatóban talál: Az Explorer használata a Microsoft Planetary Computer Pro-ban.
Bár a Microsoft Planetary Computer Pro tartalmaz egy csempézőt, amely egyes adatkocka-objektumok vizualizációjára használható, minden támogatott adattípus esetén érdemes néhány figyelmeztetést megjegyezni.
NetCDF- és HDF5-vizualizáció
Azok a NetCDF-adatkészletek, amelyeket be lehet tölteni a Microsoft Planetary Computerbe, nem mind kompatibilisek a Planetary Computer Pro vizualizációs csempélővel. Az adathalmazoknak X és Y tengelyekkel, szélességi és hosszúsági koordinátákkal, valamint térbeli dimenziókkal és határokkal kell rendelkezniük, amelyeket vizualizálni kell. Például egy adathalmaz, amelyben a szélesség és a hosszúság változók, de nem koordináták, nem kompatibilis a Planetary Computer Pro csempéjével.
Mielőtt megkísérli vizualizálni a NetCDF- vagy HDF5-adathalmazt, az alábbiak segítségével ellenőrizheti, hogy az megfelel-e a követelményeknek.
A szükséges függőségek telepítése
pip install xarray[io] rioxarray cf_xarrayFuttassa a következő függvényt:
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-vizualizáció
A Microsoft Planetary Computer Pro-ba betöltött GRIB2-objektumok mindaddig megjeleníthetők az Explorerben, amíg ugyanabban a Blob Storage-tárolóban van egy társított indexfájl (.idx). Az indexfájl a betöltés során jön létre, és a GRIB2-adatok optimális eléréséhez és megjelenítéséhez szükséges.
Zarr-vizualizáció
A Microsoft Planetary Computer Pro-ba betöltött Zarr-eszközök az Explorerben vizualizálhatók, amennyiben a Renderelési konfiguráció meghatározza, melyik változót és időszeletet kell megjeleníteni a sel paraméterben a options mezőben. Ennek elmulasztása azt eredményezi, hogy az Explorer egyszerre megkísérli renderelni a Zarr-tároló összes változóját és időszeletét, ami miatt az Explorer összeomlik.
A Zarr-tároló mérete és a térbeli adattömbök szintén hatással lesznek a teljesítményre. A Zarr tárhely teljes méretét 2 GB alatt kell tartania, és minden adattömb méretét 100 MB-nál kisebbre kell korlátoznia a csempekezelő optimális teljesítménye érdekében.
A Zarr-vizualizáció korlátozásai és ismert problémái
Időcsúszka viselkedése (ismert korlátozás)
Megjegyzés:
A Zarr időcsúszkás viselkedése jelenleg korlátozott. Az Explorer idősáv csak akkor jelenik meg, ha a befogadás során egy idődimenziót megfelelően észlelnek.
Még akkor is, ha a Zarr-objektumok időértékeket tartalmaznak, előfordulhat, hogy a betöltés nem észleli egyes adathalmazok időbeli metaadatait. Ezekben az esetekben az időcsúszka nem jelenik meg, és a renderelési konfigurációban egyszerre egy időlépést kell vizualizálni (például sel=time=2024-01-01).
Kötelező és ajánlott időbeli metaadatok
Az időérzékeny viselkedés engedélyezéséhez a STAC-metaadatoknak tartalmazniuk kell egy időbeli dimenziót a cube:dimensions következőkkel:
type: temporalextentstep
A Zarr-forrásadatok esetében kövesse a CF időkonvenciáit, ahol lehetséges, például:
standard_name="time"axis="T"
Ezek a konvenciók a metaadatok konzisztens értelmezéséhez szükségesek, de a jelenlegi korlátozások miatt nem mindig elegendőek ahhoz, hogy minden Zarr-adatkészlethez időcsúszkás támogatást biztosítsanak.
Kerchunk-jegyzetek
A Kerchunk javíthatja a többdimenziós hozzáférési minták teljesítményét, de nem oldja meg az időcsúszással kapcsolatos problémákat, ha a betöltés során nem észleltek időbeli dimenziókat.
Egyes Zarr-adathalmazok az indexfeldolgozás során akár meg is hiúsulhatnak, például Index must be monotonic increasing or decreasing.
Idő csúszka adatkocka-vizualizációhoz
Ha az adatkocka-objektumok időbeli összetevővel rendelkeznek, az Explorerben az idő csúszkával megjelenítheti a változásokat az idő függvényében. Az időcsúszka automatikusan megjelenik, ha a STAC-elemek tartalmaznak olyan eszközöket, amelyek rendelkeznek egy time dimenzióval, és extent valamint step mezőkkel.
Megjegyzés:
A Zarr-objektumok esetében lásd a Zarr vizualizációs korlátozásait és az aktuális időkorlátokkal és a szükséges renderelési konfigurációs mintákkal kapcsolatos ismert problémákat.