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.interpolate import interpolate_1_degree
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 = interpolate_1_degree(langya())
challenger_dataset
<xarray.Dataset> Size: 11GB
Dimensions:                          (first_day_datetime: 52,
                                      lead_day_index: 7, depth: 32,
                                      latitude: 170, longitude: 360)
Coordinates:
  * depth                            (depth) float32 128B 0.494 1.541 ... 541.1
  * lead_day_index                   (lead_day_index) int64 56B 0 1 2 3 4 5 6
  * first_day_datetime               (first_day_datetime) datetime64[us] 416B ...
  * latitude                         (latitude) float64 1kB -79.5 -78.5 ... 89.5
  * longitude                        (longitude) float64 3kB -179.5 ... 179.5
Data variables:
    sea_water_salinity               (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 3GB dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
    sea_water_potential_temperature  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 3GB dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
    eastward_sea_water_velocity      (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 3GB dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
    northward_sea_water_velocity     (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 3GB dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
    sea_surface_height_above_geoid   (first_day_datetime, lead_day_index, latitude, longitude) float32 89MB dask.array<chunksize=(1, 1, 170, 360), meta=np.ndarray>
Attributes:
    Conventions:                   CF-1.8
    challenger:                    langya
    forecast_reference_time:       2024-01-02
    oceanbench_source_kind:        challenger
    oceanbench_source_name:        langya
    oceanbench_source_resolution:  one_degree
xarray.Dataset
    • first_day_datetime: 52
    • lead_day_index: 7
    • depth: 32
    • latitude: 170
    • longitude: 360
    • 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)
    • lead_day_index
      (lead_day_index)
      int64
      0 1 2 3 4 5 6
      array([0, 1, 2, 3, 4, 5, 6])
    • 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]')
    • latitude
      (latitude)
      float64
      -79.5 -78.5 -77.5 ... 88.5 89.5
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array([-79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5,
             -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, -61.5, -60.5,
             -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, -51.5, -50.5,
             -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, -41.5, -40.5,
             -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5,
             -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5,
             -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,
              -9.5,  -8.5,  -7.5,  -6.5,  -5.5,  -4.5,  -3.5,  -2.5,  -1.5,  -0.5,
               0.5,   1.5,   2.5,   3.5,   4.5,   5.5,   6.5,   7.5,   8.5,   9.5,
              10.5,  11.5,  12.5,  13.5,  14.5,  15.5,  16.5,  17.5,  18.5,  19.5,
              20.5,  21.5,  22.5,  23.5,  24.5,  25.5,  26.5,  27.5,  28.5,  29.5,
              30.5,  31.5,  32.5,  33.5,  34.5,  35.5,  36.5,  37.5,  38.5,  39.5,
              40.5,  41.5,  42.5,  43.5,  44.5,  45.5,  46.5,  47.5,  48.5,  49.5,
              50.5,  51.5,  52.5,  53.5,  54.5,  55.5,  56.5,  57.5,  58.5,  59.5,
              60.5,  61.5,  62.5,  63.5,  64.5,  65.5,  66.5,  67.5,  68.5,  69.5,
              70.5,  71.5,  72.5,  73.5,  74.5,  75.5,  76.5,  77.5,  78.5,  79.5,
              80.5,  81.5,  82.5,  83.5,  84.5,  85.5,  86.5,  87.5,  88.5,  89.5])
    • longitude
      (longitude)
      float64
      -179.5 -178.5 ... 178.5 179.5
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array([-179.5, -178.5, -177.5, ...,  177.5,  178.5,  179.5], shape=(360,))
    • sea_water_salinity
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
      long_name :
      Salinity
      standard_name :
      sea_water_salinity
      units :
      1e-3
      Array Chunk
      Bytes 2.66 GiB 239.06 kiB
      Shape (52, 7, 32, 170, 360) (1, 1, 1, 170, 360)
      Dask graph 11648 chunks in 175 graph layers
      Data type float32 numpy.ndarray
      7 52 360 170 32
    • sea_water_potential_temperature
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
      long_name :
      Temperature
      standard_name :
      sea_water_potential_temperature
      units :
      degrees_C
      Array Chunk
      Bytes 2.66 GiB 239.06 kiB
      Shape (52, 7, 32, 170, 360) (1, 1, 1, 170, 360)
      Dask graph 11648 chunks in 175 graph layers
      Data type float32 numpy.ndarray
      7 52 360 170 32
    • eastward_sea_water_velocity
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
      long_name :
      Eastward velocity
      standard_name :
      eastward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 2.66 GiB 239.06 kiB
      Shape (52, 7, 32, 170, 360) (1, 1, 1, 170, 360)
      Dask graph 11648 chunks in 175 graph layers
      Data type float32 numpy.ndarray
      7 52 360 170 32
    • northward_sea_water_velocity
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 170, 360), meta=np.ndarray>
      long_name :
      Northward velocity
      standard_name :
      northward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 2.66 GiB 239.06 kiB
      Shape (52, 7, 32, 170, 360) (1, 1, 1, 170, 360)
      Dask graph 11648 chunks in 175 graph layers
      Data type float32 numpy.ndarray
      7 52 360 170 32
    • sea_surface_height_above_geoid
      (first_day_datetime, lead_day_index, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 170, 360), meta=np.ndarray>
      long_name :
      Sea surface height
      standard_name :
      sea_surface_height_above_geoid
      units :
      m
      Array Chunk
      Bytes 84.98 MiB 239.06 kiB
      Shape (52, 7, 170, 360) (1, 1, 170, 360)
      Dask graph 364 chunks in 175 graph layers
      Data type float32 numpy.ndarray
      52 1 360 170 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'))
    • lead_day_index
      PandasIndex
      PandasIndex(Index([0, 1, 2, 3, 4, 5, 6], dtype='int64', name='lead_day_index'))
    • 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))
    • latitude
      PandasIndex
      PandasIndex(Index([-79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5,
             ...
              80.5,  81.5,  82.5,  83.5,  84.5,  85.5,  86.5,  87.5,  88.5,  89.5],
            dtype='float64', name='latitude', length=170))
    • longitude
      PandasIndex
      PandasIndex(Index([-179.5, -178.5, -177.5, -176.5, -175.5, -174.5, -173.5, -172.5, -171.5,
             -170.5,
             ...
              170.5,  171.5,  172.5,  173.5,  174.5,  175.5,  176.5,  177.5,  178.5,
              179.5],
            dtype='float64', name='longitude', length=360))
  • Conventions :
    CF-1.8
    challenger :
    langya
    forecast_reference_time :
    2024-01-02
    oceanbench_source_kind :
    challenger
    oceanbench_source_name :
    langya
    oceanbench_source_resolution :
    one_degree

Evaluation configuration

region = 'global'

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.073307 0.074883 0.074563 0.075820 0.076922 0.080248 0.082613
Temperature (°C) [sea_water_potential_temperature]{surface} 0.663725 0.646236 0.574785 0.585998 0.597714 0.643391 0.691842
Salinity (PSU) [sea_water_salinity]{surface} 0.824794 0.826847 0.827445 0.830556 0.833757 0.840976 0.846641
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.124179 0.123809 0.123840 0.123950 0.123692 0.132396 0.136518
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.127590 0.128005 0.128644 0.128803 0.128807 0.136684 0.140450
Temperature (°C) [sea_water_potential_temperature]{50m} 0.882116 0.879548 0.853880 0.856498 0.858407 0.896756 0.924946
Salinity (PSU) [sea_water_salinity]{50m} 0.379650 0.380049 0.379631 0.379847 0.380172 0.382141 0.383776
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.112180 0.111668 0.113353 0.113049 0.112633 0.120097 0.123443
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.114761 0.114818 0.116700 0.116487 0.116026 0.122373 0.125502
Temperature (°C) [sea_water_potential_temperature]{100m} 1.024947 1.024766 1.022220 1.026255 1.029320 1.059977 1.080943
Salinity (PSU) [sea_water_salinity]{100m} 0.255442 0.255558 0.255537 0.255779 0.256121 0.257539 0.258432
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.109073 0.108630 0.110469 0.110109 0.109517 0.115794 0.118546
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.114063 0.113928 0.115542 0.115111 0.114606 0.120155 0.122492
Temperature (°C) [sea_water_potential_temperature]{200m} 0.859353 0.859615 0.861704 0.863105 0.864936 0.879726 0.888427
Salinity (PSU) [sea_water_salinity]{200m} 0.160389 0.160451 0.160592 0.160811 0.161154 0.162360 0.163129
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.106091 0.105959 0.107898 0.107388 0.106625 0.110338 0.111381
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.111349 0.111240 0.113120 0.112340 0.111474 0.115152 0.115959
Temperature (°C) [sea_water_potential_temperature]{300m} 0.727596 0.727625 0.729739 0.730865 0.732507 0.745363 0.752374
Salinity (PSU) [sea_water_salinity]{300m} 0.126343 0.126351 0.126520 0.126708 0.127023 0.128144 0.128878
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.103586 0.103438 0.105325 0.104745 0.103970 0.107291 0.108045
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.107435 0.107340 0.109177 0.108414 0.107562 0.110694 0.111261
Temperature (°C) [sea_water_potential_temperature]{500m} 0.561156 0.561623 0.564258 0.565875 0.567847 0.577289 0.583738
Salinity (PSU) [sea_water_salinity]{500m} 0.094660 0.094715 0.094953 0.095218 0.095521 0.096235 0.096861
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.095126 0.095078 0.096619 0.095999 0.095273 0.098189 0.098760
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.098905 0.098890 0.100532 0.099894 0.099216 0.101611 0.101941

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} 43.457859 41.852135 38.905724 39.764652 40.528511 42.042381 43.241421

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.062198 0.062952 0.057917 0.059144 0.060579 0.066095 0.071708
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.061124 0.062961 0.057166 0.057904 0.058859 0.064849 0.070682

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.881401 0.882899 0.778328 0.807849 0.827070 0.895523 0.931393
Temperature (°C) [sea_water_potential_temperature]{0-5m} 0.868259 0.869019 0.816637 0.838810 0.835894 0.899436 0.942262
Temperature (°C) [sea_water_potential_temperature]{5-100m} 0.946703 0.923543 0.890128 0.910004 0.888289 0.947537 0.969433
Temperature (°C) [sea_water_potential_temperature]{100-300m} 0.831636 0.837922 0.821593 0.826408 0.839360 0.846033 0.873484
Temperature (°C) [sea_water_potential_temperature]{300-600m} 0.583342 0.587537 0.574629 0.585648 0.586175 0.605255 0.614357
Salinity (PSU) [sea_water_salinity]{0-5m} 0.251309 0.256866 0.256415 0.299063 0.260086 0.275261 0.267290
Salinity (PSU) [sea_water_salinity]{5-100m} 0.199219 0.199876 0.207717 0.203295 0.204923 0.210001 0.208600
Salinity (PSU) [sea_water_salinity]{100-300m} 0.129182 0.129427 0.129547 0.128864 0.131052 0.130517 0.136803
Salinity (PSU) [sea_water_salinity]{300-600m} 0.085975 0.085753 0.083998 0.086585 0.086647 0.087272 0.090062
Sea level anomaly (m) [sea_surface_height_above_geoid]{surface} 0.113023 0.113939 0.113302 0.113917 0.114453 0.116311 0.116595
Zonal current (m/s) [eastward_sea_water_velocity]{15m} 0.217059 0.216391 0.217603 0.218305 0.215956 0.217347 0.221074
Meridional current (m/s) [northward_sea_water_velocity]{15m} 0.196616 0.195786 0.195721 0.197790 0.197057 0.199094 0.200568

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.319209 18.728891 26.091848 32.995644 39.660011

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.030669 0.035651 0.035572 0.039854 0.043718 0.051686 0.055626
Temperature (°C) [sea_water_potential_temperature]{surface} 0.426370 0.428766 0.343860 0.385830 0.423189 0.507514 0.570823
Salinity (PSU) [sea_water_salinity]{surface} 0.152245 0.193448 0.221194 0.245684 0.264725 0.285568 0.302687
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.095836 0.093676 0.083444 0.089713 0.095712 0.116667 0.127044
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.095587 0.095930 0.087511 0.093427 0.099639 0.118978 0.129453
Temperature (°C) [sea_water_potential_temperature]{50m} 0.398856 0.443957 0.441710 0.483727 0.524042 0.611721 0.670151
Salinity (PSU) [sea_water_salinity]{50m} 0.071685 0.090335 0.103499 0.115055 0.125060 0.137367 0.146082
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.075147 0.072734 0.065296 0.071537 0.077566 0.099232 0.109374
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.073067 0.073222 0.068867 0.074675 0.080544 0.099703 0.109409
Temperature (°C) [sea_water_potential_temperature]{100m} 0.381682 0.437994 0.459708 0.510768 0.558545 0.654415 0.719436
Salinity (PSU) [sea_water_salinity]{100m} 0.057204 0.072578 0.084766 0.095429 0.104338 0.114638 0.121615
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.067255 0.065869 0.060056 0.066138 0.072246 0.092587 0.102128
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.065489 0.066957 0.064860 0.070753 0.076494 0.093813 0.102431
Temperature (°C) [sea_water_potential_temperature]{200m} 0.271632 0.316281 0.348354 0.394074 0.435205 0.508789 0.553033
Salinity (PSU) [sea_water_salinity]{200m} 0.040958 0.054555 0.065490 0.074893 0.082688 0.091419 0.097602
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.055928 0.055137 0.050774 0.056619 0.062374 0.079932 0.088284
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.053048 0.053847 0.052648 0.058167 0.063533 0.078766 0.086072
Temperature (°C) [sea_water_potential_temperature]{300m} 0.226937 0.267802 0.301104 0.342251 0.378792 0.442942 0.480826
Salinity (PSU) [sea_water_salinity]{300m} 0.034116 0.045844 0.055372 0.063362 0.070020 0.077488 0.082916
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.051932 0.051497 0.047833 0.053558 0.059153 0.075496 0.083454
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.049316 0.050049 0.048799 0.054157 0.059299 0.073518 0.080564
Temperature (°C) [sea_water_potential_temperature]{500m} 0.167218 0.206342 0.239725 0.274775 0.305762 0.353148 0.384042
Salinity (PSU) [sea_water_salinity]{500m} 0.024833 0.034188 0.041942 0.048330 0.053600 0.058773 0.062932
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.043966 0.045334 0.044247 0.049809 0.055019 0.067981 0.074832
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.041487 0.043938 0.044966 0.050222 0.055085 0.066217 0.072150

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} 32.701984 31.802351 27.397427 29.551638 31.314816 33.931534 36.749249

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.043608 0.046217 0.037145 0.040277 0.044083 0.054549 0.063308
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.046618 0.052690 0.043478 0.045154 0.047931 0.057159 0.065410

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.38767 12.738617 17.038912 21.536791 26.315197
 

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