Перейти к содержимому

Zarr и экспорт полей

/data — смонтированное xpublish-приложение перед ZarrTokenGate. Сначала получите список dataset id:

Окно терминала
curl "https://wxs.weatherpaper.org/data/datasets" -H "X-API-Key: $WXS_API_KEY"

При открытии из xarray передайте ключ клиенту хранилища. Конкретная форма storage_options зависит от версии xarray/Zarr; проверяйте запросы клиента к /data/datasets/{id}/zarr/ и живую xpublish-схему.

import os
import xarray as xr
url = "https://wxs.weatherpaper.org/data/datasets/forecast~aurora15/zarr/"
ds = xr.open_zarr(
url,
storage_options={"headers": {"X-API-Key": os.environ["WXS_API_KEY"]}},
)
subset = ds["t2m"].isel(time=-1, lead_time=slice(0, 24)).sel(
lat=slice(46, 44), lon=slice(38, 42)
)

Всегда делайте .isel()/.sel() до .load() — полный глобальный прогноз не рассчитан на материализацию в памяти клиента.

GET /api/export перечисляет экспортируемые группы, поля, алиасы, единицы и ревизии схемы. Затем скачайте конкретный временной и пространственный фрагмент:

Окно терминала
curl -G "https://wxs.weatherpaper.org/api/export/forecast~aurora15/npy" \
-H "X-API-Key: $WXS_API_KEY" \
--data-urlencode 'var=scaled_tp_1h' \
--data-urlencode 'time_index=0' \
--data-urlencode 'lead_start=0' \
--data-urlencode 'lead_stop=24' \
--data-urlencode 'lat_min=44' --data-urlencode 'lat_max=47' \
--data-urlencode 'lon_min=37' --data-urlencode 'lon_max=42' \
--output precipitation.npy

Заголовок X-WXS-Field содержит canonical/stored name, dimensions, shape и dtype. Превышение field_export_max_mb возвращает 413; сузьте срок, bbox, уровень или переменную.