OceanBench logo. OceanBench
  • Scores
  • Challengers
  • News
  • About
  • Documentation
    • Evaluation methods
    • Technical documentation
    • FAQ
    • Paper
  • Source code
  • Powered by EDITO logo and EU flag EDITO logo and EU flag

Open challenger datasets

import oceanbench

oceanbench.__version__
'0.2.1'

Insert here the code that opens the challenger dataset as challenger_dataset: xarray.Dataset

# SPDX-FileCopyrightText: 2025 Mercator Ocean International <https://www.mercator-ocean.eu/>
#
# SPDX-License-Identifier: EUPL-1.2

from datetime import datetime

import xarray
import dask

# Stage the 35MB-chunk forecasts robustly: read one time-slice at a time, sequentially,
# so to_zarr never bulk-reads the whole variable at once (which hits transient partial-HTTP
# reads -> blosc -1). Pairs with chunks={"time": 1} in the open below.
dask.config.set(scheduler="synchronous")

from oceanbench.core.datetime_utils import generate_dates
from oceanbench.core.remote_http import require_remote_dataset_dimensions, with_remote_http_retries
from oceanbench.core.runtime_configuration import current_runtime_configuration
from oceanbench.core.weekly_stage import maybe_stage_weekly_dataset

_CLOUDFERRO_OCEANBENCH_BASE_URL = "https://s3.waw3-1.cloudferro.com/oceanbench-bucket"
_CLOUDFERRO_ML_FORECASTS_URL = f"{_CLOUDFERRO_OCEANBENCH_BASE_URL}/dev/ml-forecast-outputs"
_LANGYA_LEAD_DAYS_COUNT = 7


def _default_first_day_datetimes() -> list[datetime]:
    return generate_dates("2024-01-03", "2024-12-25", 7)


def _langya_dataset_path(start_datetime: datetime) -> str:
    return f"{_CLOUDFERRO_ML_FORECASTS_URL}/langya/{start_datetime:%Y%m%d}.zarr"


def _prepare_langya_week_dataset(dataset: xarray.Dataset) -> xarray.Dataset:
    week_dataset = require_remote_dataset_dimensions(dataset, ["time"], "langya challenger dataset open")
    week_dataset = week_dataset.isel({"time": slice(0, _LANGYA_LEAD_DAYS_COUNT)})
    week_lead_days_count = week_dataset.sizes["time"]
    return week_dataset.rename({"time": "lead_day_index"}).assign_coords(
        {"lead_day_index": range(week_lead_days_count)}
    )


def _open_langya_week_dataset(first_day_datetime: datetime) -> xarray.Dataset:
    return _prepare_langya_week_dataset(
        xarray.open_dataset(_langya_dataset_path(first_day_datetime), engine="zarr", chunks={"time": 1})
    )


def _remote_langya_dataset(first_day_datetimes: list[datetime]) -> xarray.Dataset:
    return xarray.open_mfdataset(
        list(map(_langya_dataset_path, first_day_datetimes)),
        engine="zarr",
        preprocess=_prepare_langya_week_dataset,
        combine="nested",
        concat_dim="first_day_datetime",
        parallel=False,
    ).assign({"first_day_datetime": first_day_datetimes})


def langya() -> xarray.Dataset:
    first_day_datetimes = _default_first_day_datetimes()

    def open_dataset() -> xarray.Dataset:
        return maybe_stage_weekly_dataset(
            stage_key="challenger",
            dataset_kind="challenger",
            dataset_name="langya",
            first_day_datetimes=first_day_datetimes,
            lead_days_count=_LANGYA_LEAD_DAYS_COUNT,
            open_week_dataset=_open_langya_week_dataset,
            open_remote_dataset=lambda: _remote_langya_dataset(first_day_datetimes),
            attach_source_metadata_when_not_staged=current_runtime_configuration().has_local_stage(),
        )

    return with_remote_http_retries("langya challenger dataset open", open_dataset)


challenger_dataset: xarray.Dataset = langya()
challenger_dataset
<xarray.Dataset> Size: 2TB
Dimensions:             (first_day_datetime: 52, lead_day_index: 7, depth: 32,
                         latitude: 2040, longitude: 4320)
Coordinates:
  * depth               (depth) float32 128B 0.494 1.541 2.646 ... 453.9 541.1
  * latitude            (latitude) float64 16kB -80.0 -79.92 ... 89.83 89.92
  * lead_day_index      (lead_day_index) int64 56B 0 1 2 3 4 5 6
  * longitude           (longitude) float64 35kB -180.0 -179.9 ... 179.8 179.9
  * first_day_datetime  (first_day_datetime) datetime64[us] 416B 2024-01-03 ....
Data variables:
    so                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    thetao              (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    uo                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    vo                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    zos                 (first_day_datetime, lead_day_index, latitude, longitude) float32 13GB dask.array<chunksize=(1, 1, 2040, 4320), meta=np.ndarray>
Attributes:
    Conventions:              CF-1.8
    challenger:               langya
    forecast_reference_time:  2024-01-02
    oceanbench_source_kind:   challenger
    oceanbench_source_name:   langya
xarray.Dataset
    • first_day_datetime: 52
    • lead_day_index: 7
    • depth: 32
    • latitude: 2040
    • longitude: 4320
    • depth
      (depth)
      float32
      0.494 1.541 2.646 ... 453.9 541.1
      axis :
      Z
      long_name :
      Depth
      positive :
      down
      standard_name :
      depth
      units :
      m
      array([4.940250e-01, 1.541375e+00, 2.645669e+00, 3.819495e+00, 5.078224e+00,
             6.440614e+00, 7.929560e+00, 9.572997e+00, 1.140500e+01, 1.346714e+01,
             1.581007e+01, 1.849556e+01, 2.159882e+01, 2.521141e+01, 2.944473e+01,
             3.443415e+01, 4.034405e+01, 4.737369e+01, 5.576429e+01, 6.580727e+01,
             7.785385e+01, 9.232607e+01, 1.097293e+02, 1.306660e+02, 1.558507e+02,
             1.861256e+02, 2.224752e+02, 2.660403e+02, 3.181274e+02, 3.802130e+02,
             4.539377e+02, 5.410889e+02], dtype=float32)
    • latitude
      (latitude)
      float64
      -80.0 -79.92 -79.83 ... 89.83 89.92
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array([-80.      , -79.916667, -79.833333, ...,  89.75    ,  89.833333,
              89.916667], shape=(2040,))
    • lead_day_index
      (lead_day_index)
      int64
      0 1 2 3 4 5 6
      array([0, 1, 2, 3, 4, 5, 6])
    • longitude
      (longitude)
      float64
      -180.0 -179.9 ... 179.8 179.9
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array([-180.      , -179.916667, -179.833333, ...,  179.75    ,  179.833333,
              179.916667], shape=(4320,))
    • first_day_datetime
      (first_day_datetime)
      datetime64[us]
      2024-01-03 ... 2024-12-25
      array(['2024-01-03T00:00:00.000000', '2024-01-10T00:00:00.000000',
             '2024-01-17T00:00:00.000000', '2024-01-24T00:00:00.000000',
             '2024-01-31T00:00:00.000000', '2024-02-07T00:00:00.000000',
             '2024-02-14T00:00:00.000000', '2024-02-21T00:00:00.000000',
             '2024-02-28T00:00:00.000000', '2024-03-06T00:00:00.000000',
             '2024-03-13T00:00:00.000000', '2024-03-20T00:00:00.000000',
             '2024-03-27T00:00:00.000000', '2024-04-03T00:00:00.000000',
             '2024-04-10T00:00:00.000000', '2024-04-17T00:00:00.000000',
             '2024-04-24T00:00:00.000000', '2024-05-01T00:00:00.000000',
             '2024-05-08T00:00:00.000000', '2024-05-15T00:00:00.000000',
             '2024-05-22T00:00:00.000000', '2024-05-29T00:00:00.000000',
             '2024-06-05T00:00:00.000000', '2024-06-12T00:00:00.000000',
             '2024-06-19T00:00:00.000000', '2024-06-26T00:00:00.000000',
             '2024-07-03T00:00:00.000000', '2024-07-10T00:00:00.000000',
             '2024-07-17T00:00:00.000000', '2024-07-24T00:00:00.000000',
             '2024-07-31T00:00:00.000000', '2024-08-07T00:00:00.000000',
             '2024-08-14T00:00:00.000000', '2024-08-21T00:00:00.000000',
             '2024-08-28T00:00:00.000000', '2024-09-04T00:00:00.000000',
             '2024-09-11T00:00:00.000000', '2024-09-18T00:00:00.000000',
             '2024-09-25T00:00:00.000000', '2024-10-02T00:00:00.000000',
             '2024-10-09T00:00:00.000000', '2024-10-16T00:00:00.000000',
             '2024-10-23T00:00:00.000000', '2024-10-30T00:00:00.000000',
             '2024-11-06T00:00:00.000000', '2024-11-13T00:00:00.000000',
             '2024-11-20T00:00:00.000000', '2024-11-27T00:00:00.000000',
             '2024-12-04T00:00:00.000000', '2024-12-11T00:00:00.000000',
             '2024-12-18T00:00:00.000000', '2024-12-25T00:00:00.000000'],
            dtype='datetime64[us]')
    • so
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Salinity
      standard_name :
      sea_water_salinity
      units :
      1e-3
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • thetao
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Temperature
      standard_name :
      sea_water_potential_temperature
      units :
      degrees_C
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • uo
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Eastward velocity
      standard_name :
      eastward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • vo
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Northward velocity
      standard_name :
      northward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • zos
      (first_day_datetime, lead_day_index, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Sea surface height
      standard_name :
      sea_surface_height_above_geoid
      units :
      m
      Array Chunk
      Bytes 11.95 GiB 33.62 MiB
      Shape (52, 7, 2040, 4320) (1, 1, 2040, 4320)
      Dask graph 364 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      52 1 4320 2040 7
    • depth
      PandasIndex
      PandasIndex(Index([0.49402499198913574,  1.5413750410079956,  2.6456689834594727,
              3.8194949626922607,   5.078224182128906,   6.440614223480225,
                7.92956018447876,   9.572997093200684,  11.404999732971191,
              13.467140197753906,  15.810070037841797,  18.495559692382812,
              21.598819732666016,  25.211410522460938,  29.444730758666992,
               34.43415069580078,  40.344051361083984,   47.37369155883789,
               55.76428985595703,   65.80726623535156,   77.85385131835938,
                92.3260726928711,  109.72930145263672,  130.66600036621094,
              155.85069274902344,  186.12559509277344,  222.47520446777344,
               266.0403137207031,   318.1274108886719,   380.2130126953125,
               453.9377136230469,   541.0889282226562],
            dtype='float32', name='depth'))
    • latitude
      PandasIndex
      PandasIndex(Index([             -80.0, -79.91666666666667, -79.83333333333333,
                         -79.75, -79.66666666666667, -79.58333333333333,
                          -79.5, -79.41666666666667, -79.33333333333333,
                         -79.25,
             ...
              89.16666666666666,              89.25,  89.33333333333334,
              89.41666666666666,               89.5,  89.58333333333334,
              89.66666666666666,              89.75,  89.83333333333334,
              89.91666666666666],
            dtype='float64', name='latitude', length=2040))
    • lead_day_index
      PandasIndex
      PandasIndex(Index([0, 1, 2, 3, 4, 5, 6], dtype='int64', name='lead_day_index'))
    • longitude
      PandasIndex
      PandasIndex(Index([             -180.0, -179.91666666666666, -179.83333333333334,
                         -179.75, -179.66666666666666, -179.58333333333334,
                          -179.5, -179.41666666666666, -179.33333333333334,
                         -179.25,
             ...
              179.16666666666669,              179.25,  179.33333333333331,
              179.41666666666669,               179.5,  179.58333333333331,
              179.66666666666669,              179.75,  179.83333333333331,
              179.91666666666669],
            dtype='float64', name='longitude', length=4320))
    • first_day_datetime
      PandasIndex
      PandasIndex(DatetimeIndex(['2024-01-03', '2024-01-10', '2024-01-17', '2024-01-24',
                     '2024-01-31', '2024-02-07', '2024-02-14', '2024-02-21',
                     '2024-02-28', '2024-03-06', '2024-03-13', '2024-03-20',
                     '2024-03-27', '2024-04-03', '2024-04-10', '2024-04-17',
                     '2024-04-24', '2024-05-01', '2024-05-08', '2024-05-15',
                     '2024-05-22', '2024-05-29', '2024-06-05', '2024-06-12',
                     '2024-06-19', '2024-06-26', '2024-07-03', '2024-07-10',
                     '2024-07-17', '2024-07-24', '2024-07-31', '2024-08-07',
                     '2024-08-14', '2024-08-21', '2024-08-28', '2024-09-04',
                     '2024-09-11', '2024-09-18', '2024-09-25', '2024-10-02',
                     '2024-10-09', '2024-10-16', '2024-10-23', '2024-10-30',
                     '2024-11-06', '2024-11-13', '2024-11-20', '2024-11-27',
                     '2024-12-04', '2024-12-11', '2024-12-18', '2024-12-25'],
                    dtype='datetime64[us]', name='first_day_datetime', freq=None))
  • Conventions :
    CF-1.8
    challenger :
    langya
    forecast_reference_time :
    2024-01-02
    oceanbench_source_kind :
    challenger
    oceanbench_source_name :
    langya

Evaluation configuration

region = 'ibi'

Evaluation of challenger dataset using OceanBench

Root Mean Square Deviation (RMSD) of variables compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_variables_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Sea surface height (m) [sea_surface_height_above_geoid]{surface} 0.062100 0.064186 0.066888 0.070458 0.071757 0.073726 0.068189
Temperature (°C) [sea_water_potential_temperature]{surface} 0.599001 0.557495 0.506480 0.529116 0.550291 0.622110 0.638899
Salinity (PSU) [sea_water_salinity]{surface} 0.250811 0.254787 0.257992 0.258713 0.261274 0.264511 0.266274
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.105150 0.105171 0.102609 0.103835 0.102053 0.104102 0.108655
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.113798 0.111742 0.110483 0.110000 0.110023 0.112445 0.113353
Temperature (°C) [sea_water_potential_temperature]{50m} 0.686278 0.695008 0.707614 0.710540 0.714922 0.747854 0.742091
Salinity (PSU) [sea_water_salinity]{50m} 0.186609 0.186863 0.187231 0.187431 0.187746 0.188736 0.189090
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.088807 0.089294 0.091939 0.091833 0.090864 0.091655 0.092332
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.094412 0.094744 0.097552 0.097318 0.096560 0.097624 0.098314
Temperature (°C) [sea_water_potential_temperature]{100m} 0.721498 0.718538 0.727306 0.728108 0.729342 0.735404 0.735570
Salinity (PSU) [sea_water_salinity]{100m} 0.192460 0.192374 0.192545 0.192962 0.193562 0.194368 0.194906
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.086471 0.086670 0.089314 0.089203 0.088416 0.088940 0.089537
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.090262 0.090225 0.092917 0.092592 0.091856 0.092758 0.093378
Temperature (°C) [sea_water_potential_temperature]{200m} 0.634146 0.634946 0.647402 0.647441 0.647399 0.646235 0.646034
Salinity (PSU) [sea_water_salinity]{200m} 0.132178 0.132172 0.132530 0.132651 0.132829 0.132898 0.132974
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.081990 0.081801 0.083843 0.083597 0.083097 0.083280 0.083871
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.084011 0.083581 0.085967 0.085608 0.084996 0.085464 0.086003
Temperature (°C) [sea_water_potential_temperature]{300m} 0.524302 0.524666 0.533575 0.533580 0.533965 0.531556 0.531646
Salinity (PSU) [sea_water_salinity]{300m} 0.101495 0.101483 0.101766 0.101810 0.101950 0.101883 0.101906
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.081033 0.080790 0.082924 0.082557 0.081988 0.082356 0.083044
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.082896 0.082478 0.084947 0.084513 0.083821 0.084344 0.084925
Temperature (°C) [sea_water_potential_temperature]{500m} 0.400599 0.400643 0.404746 0.405386 0.406779 0.406030 0.406681
Salinity (PSU) [sea_water_salinity]{500m} 0.090088 0.090122 0.089940 0.090067 0.090215 0.090327 0.090473
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.083887 0.083504 0.085663 0.085026 0.084250 0.085155 0.085969
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.086244 0.085722 0.088094 0.087468 0.086600 0.087491 0.088121

Root Mean Square Deviation (RMSD) of Mixed Layer Depth (MLD) compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_mixed_layer_depth_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Mixed layer depth (m) [ocean_mixed_layer_thickness]{surface} 48.922356 39.905499 32.438881 34.254089 35.604412 40.550808 41.796471

Root Mean Square Deviation (RMSD) of geostrophic currents compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_geostrophic_currents_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Meridional geostrophic current (m/s) [geostrophic_northward_sea_water_velocity]{surface} 0.089132 0.091004 0.092589 0.093463 0.093632 0.094741 0.096031
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.091689 0.092695 0.094522 0.094728 0.094726 0.096291 0.097311

Root Mean Square Deviation (RMSD) of variables compared to observations

oceanbench.metrics.rmsd_of_variables_compared_to_observations(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Temperature (°C) [sea_water_potential_temperature]{surface} 0.770993 0.661069 0.718360 0.715718 0.693699 0.769072 0.944062
Temperature (°C) [sea_water_potential_temperature]{0-5m} 0.631508 0.566354 0.508483 0.598180 0.612680 0.674602 0.702842
Temperature (°C) [sea_water_potential_temperature]{5-100m} 0.707035 0.710896 0.695521 0.711983 0.805308 0.761474 0.756023
Temperature (°C) [sea_water_potential_temperature]{100-300m} 0.300613 0.315809 0.332118 0.335119 0.324359 0.343311 0.339647
Temperature (°C) [sea_water_potential_temperature]{300-600m} 0.256294 0.249651 0.242777 0.245255 0.239802 0.264513 0.247248
Salinity (PSU) [sea_water_salinity]{0-5m} 0.654134 0.853800 0.837935 0.652831 0.625067 0.736924 0.631822
Salinity (PSU) [sea_water_salinity]{5-100m} 0.265386 0.321050 0.327803 0.274161 0.293020 0.306346 0.291096
Salinity (PSU) [sea_water_salinity]{100-300m} 0.109454 0.100698 0.117241 0.094039 0.122124 0.124723 0.126719
Salinity (PSU) [sea_water_salinity]{300-600m} 0.043430 0.045118 0.044631 0.044311 0.045890 0.048614 0.050479
Sea level anomaly (m) [sea_surface_height_above_geoid]{surface} 0.116369 0.116850 0.115066 0.113197 0.114278 0.114554 0.116812
Zonal current (m/s) [eastward_sea_water_velocity]{15m} 0.219563 0.222801 0.222899 0.220794 0.207182 0.220185 0.214736
Meridional current (m/s) [northward_sea_water_velocity]{15m} 0.185119 0.184961 0.184538 0.181305 0.183252 0.181841 0.185170

Deviation of Lagrangian trajectories compared to GLORYS reanalysis

oceanbench.metrics.deviation_of_lagrangian_trajectories_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6
Lagrangian trajectory deviation (km) []{surface} 10.193719 19.080271 26.98807 34.464176 41.402603

Root Mean Square Deviation (RMSD) of variables compared to GLO12 analysis

oceanbench.metrics.rmsd_of_variables_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Sea surface height (m) [sea_surface_height_above_geoid]{surface} 0.032357 0.038089 0.040569 0.047262 0.048923 0.051086 0.047401
Temperature (°C) [sea_water_potential_temperature]{surface} 0.503589 0.433514 0.364156 0.412809 0.450987 0.526542 0.565944
Salinity (PSU) [sea_water_salinity]{surface} 0.113590 0.127532 0.139366 0.149441 0.157639 0.163957 0.170461
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.074522 0.075699 0.067841 0.073326 0.075665 0.085058 0.095610
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.083973 0.082718 0.079067 0.081537 0.084861 0.093730 0.099020
Temperature (°C) [sea_water_potential_temperature]{50m} 0.313655 0.342942 0.357509 0.397218 0.434174 0.493606 0.522276
Salinity (PSU) [sea_water_salinity]{50m} 0.060178 0.069668 0.079337 0.088241 0.096038 0.103344 0.109677
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.047964 0.050304 0.050951 0.056464 0.060790 0.069860 0.076827
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.058440 0.059773 0.061653 0.065469 0.068558 0.076631 0.082720
Temperature (°C) [sea_water_potential_temperature]{100m} 0.251810 0.274731 0.298806 0.332060 0.362938 0.403945 0.434546
Salinity (PSU) [sea_water_salinity]{100m} 0.063060 0.072839 0.083015 0.092638 0.100892 0.108147 0.114394
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.044576 0.046499 0.047628 0.053058 0.057517 0.066978 0.074028
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.054203 0.055229 0.057439 0.060935 0.064112 0.072237 0.078158
Temperature (°C) [sea_water_potential_temperature]{200m} 0.186949 0.205806 0.225906 0.252104 0.276110 0.305760 0.332157
Salinity (PSU) [sea_water_salinity]{200m} 0.037355 0.043446 0.049862 0.055990 0.061315 0.065959 0.070285
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.039711 0.041298 0.041649 0.046571 0.051232 0.060295 0.067121
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.049124 0.049670 0.051270 0.054444 0.057857 0.065124 0.070732
Temperature (°C) [sea_water_potential_temperature]{300m} 0.159752 0.179760 0.199407 0.222935 0.244491 0.269572 0.291810
Salinity (PSU) [sea_water_salinity]{300m} 0.030086 0.035413 0.040655 0.045714 0.050103 0.053905 0.057363
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.037476 0.039529 0.040662 0.045519 0.050096 0.058659 0.065252
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.048003 0.048851 0.050601 0.053807 0.057206 0.063906 0.069294
Temperature (°C) [sea_water_potential_temperature]{500m} 0.138078 0.161307 0.181659 0.203553 0.223659 0.245354 0.263395
Salinity (PSU) [sea_water_salinity]{500m} 0.031045 0.035738 0.040551 0.045087 0.049135 0.052773 0.055992
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.034682 0.038485 0.042267 0.047280 0.051869 0.059732 0.065825
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.047269 0.048924 0.052447 0.055915 0.059381 0.065565 0.070592

Root Mean Square Deviation (RMSD) of Mixed Layer Depth (MLD) compared to GLO12 analysis

oceanbench.metrics.rmsd_of_mixed_layer_depth_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Mixed layer depth (m) [ocean_mixed_layer_thickness]{surface} 46.447136 36.800579 28.768095 31.286652 33.181797 39.050426 40.993469

Root Mean Square Deviation (RMSD) of geostrophic currents compared to GLO12 analysis

oceanbench.metrics.rmsd_of_geostrophic_currents_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Meridional geostrophic current (m/s) [geostrophic_northward_sea_water_velocity]{surface} 0.046561 0.052435 0.053750 0.060170 0.065039 0.074163 0.081311
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.052186 0.055989 0.058381 0.062614 0.066586 0.075126 0.081223

Deviation of Lagrangian trajectories compared to GLO12 analysis

oceanbench.metrics.deviation_of_lagrangian_trajectories_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6
Lagrangian trajectory deviation (km) []{surface} 7.329322 13.055861 18.035519 23.313465 28.836548
 

EDITO, the European Digital Twin Ocean EDITO, the European Digital Twin Ocean