Méthodologie

D'où viennent les chiffres affichés dans Étale, et quelle confiance leur accorder.

Vue d'ensemble

Étale calcule chaque hauteur d'eau et chaque vecteur de courant directement sur votre téléphone, à partir de constituantes harmoniques pré-analysées et embarquées dans le bundle de l'application. Aucune requête réseau, aucun serveur, à aucun moment.

Le moteur a deux modes complémentaires :

Sources de données

Atlas grille : MARC IFREMER

Pineau-Guillou, L. (2013) « PREVIMER — Validation des atlas de composantes harmoniques de hauteurs et courants de marée », Rapport Ifremer, 89 p. archimer.ifremer.fr.

Atlas régionaux français à résolution native ~250 m, 33 constituantes harmoniques par cellule, élévation + composantes U/V du courant. Distribué par IFREMER, usage public.

Constituantes portuaires : TICON-4

Hart-Davis, M.G., Dettmering, D., Seitz, F. (2025) TICON-4: TIdal CONstants based on GESLA-4 sea-level records, SEANOE, doi:10.17882/109129, Licence CC-BY 4.0.

Constituantes harmoniques (jusqu'à 34) ajustées par UTide à partir des séries marégraphiques GESLA-4 (REFMAR/SHOM côté français), pour ~12 000 marégraphes mondiaux. Étale embarque le sous-ensemble pertinent pour la France métropolitaine.

Datum officiel : SHOM RAM

SHOM, 2025. Références Altimétriques Maritimes, dx.doi.org/10.17183/MAREE_COURANTS_RAM, Licence Ouverte Etalab v2.0.

Pour 446 ports français, le SHOM publie le « Niveau Moyen au-dessus du Zéro Hydrographique » mesuré localement. Étale embarque cette table dans un fichier binaire de ~3 KB et l'applique en port-mode (lookup exact) et en grid-mode (interpolation IDW entre les 4 ancres les plus proches).

Moteur de calcul

Sommation harmonique classique avec corrections nodales :

h(t) = Σᵢ  fᵢ(t) · Aᵢ · cos(ωᵢ·t − φᵢ + uᵢ(t))

Les amplitudes Aᵢ et phases φᵢ viennent de la source (MARC ou TICON-4). Les modulations fᵢ(t) et uᵢ(t) (corrections nodales) sont calculées via les formules astronomiques Darwin/Schureman/IERS, implémentées dans pyfes (BSD-3, AVISO/CNES/LEGOS). L'implémentation Swift on-device est validée à moins de 1 mm RMS contre la référence Python sur 50 ports et 365 jours de prédiction.

Datum d'affichage

L'utilisateur choisit dans les Réglages :

Hors couverture SHOM (DOM-TOM, étranger), le mode ZH bascule transparemment vers LAT avec une mention discrète dans le footer pour que l'utilisateur ne soit jamais induit en erreur sur le référentiel effectif.

Précision mesurée

ConfigurationRMSValidation
Port-mode, vs annuaire SHOM (Brest, 24 h) 3,97 cm Bias −0,24 cm, max 8,3 cm
Port-mode, vs observations REFMAR (12 ports, 1 an) ~22 cm ×18 amélioration vs baseline. Le résidu reflète la météo + montée du niveau marin séculaire (~10 cm depuis l'époque RAM).
Grid-mode, IDW métropole (LOO sur 217 ports) ~8 cm (médiane) p90 = 33 cm, dominé par Cotentin nord et Golfe du Morbihan.

Ce que le modèle ne prend pas en compte

Code source et transparence

Le moteur de prédiction Swift (TidalEngine) et le pipeline Python qui construit les packs binaires embarqués sont versionnés ensemble. Chaque décision technique structurante est documentée par une ADR (Architecture Decision Record) — la validation Brest 4 cm RMS est traçable jusqu'à l'ADR 0019 et le script compare_brest_shom_20260521.py.

Le but : qu'un océanographe puisse refaire la validation à la main, et qu'un développeur puisse comprendre pourquoi telle constante harmonique est dans le bundle plutôt qu'une autre.

Methodology

Where the numbers shown in Étale come from, and how much to trust them.

Overview

Étale computes every water height and current vector directly on your phone, from harmonic constituents pre-analysed and shipped inside the app bundle. No network request, no server, ever.

The engine has two complementary modes:

Data sources

Grid atlas: MARC IFREMER

Pineau-Guillou, L. (2013) “PREVIMER — Validation des atlas de composantes harmoniques de hauteurs et courants de marée”, Ifremer report, 89 p. archimer.ifremer.fr.

Regional French atlases at ~250 m native resolution, 33 harmonic constituents per cell, elevation + U/V current components. Distributed by IFREMER, public use.

Port constituents: TICON-4

Hart-Davis, M.G., Dettmering, D., Seitz, F. (2025) TICON-4: TIdal CONstants based on GESLA-4 sea-level records, SEANOE, doi:10.17882/109129, CC-BY 4.0 licence.

Harmonic constituents (up to 34) fitted by UTide from GESLA-4 tide-gauge series (REFMAR/SHOM in France), for ~12,000 worldwide gauges. Étale ships the subset relevant for metropolitan France.

Official datum: SHOM RAM

SHOM, 2025. Références Altimétriques Maritimes, dx.doi.org/10.17183/MAREE_COURANTS_RAM, Etalab v2.0 open licence.

For 446 French ports, SHOM publishes the locally-measured “Mean Sea Level above Chart Datum”. Étale ships this table as a ~3 KB binary and applies it in port-mode (exact lookup) and grid-mode (IDW interpolation between the 4 nearest anchors).

Compute engine

Classic harmonic summation with nodal corrections:

h(t) = Σᵢ  fᵢ(t) · Aᵢ · cos(ωᵢ·t − φᵢ + uᵢ(t))

Amplitudes Aᵢ and phases φᵢ come from the source (MARC or TICON-4). Nodal modulations fᵢ(t) and uᵢ(t) are computed via the Darwin/Schureman/IERS astronomical formulae, implemented in pyfes (BSD-3, AVISO/CNES/LEGOS). The on-device Swift implementation is validated to under 1 mm RMS against the Python reference on 50 ports and 365 days of predictions.

Display datum

The user picks in Settings:

Outside SHOM coverage (DOM-TOM, foreign waters), ZH mode transparently falls back to LAT with a discreet footer note so the user is never misled about the effective datum.

Measured accuracy

ConfigurationRMSValidation
Port-mode, vs SHOM tide table (Brest, 24 h) 3.97 cm Bias −0.24 cm, max 8.3 cm
Port-mode, vs REFMAR observations (12 ports, 1 year) ~22 cm ×18 improvement vs baseline. Residual reflects weather + secular sea-level rise (~10 cm since the RAM reference epoch).
Grid-mode, IDW over metropolitan France (LOO on 217 ports) ~8 cm (median) p90 = 33 cm, driven by northern Cotentin and Gulf of Morbihan.

What the model does not account for

Source code and transparency

The Swift prediction engine (TidalEngine) and the Python pipeline that builds the embedded binary packs are versioned together. Every load-bearing technical decision is documented by an ADR (Architecture Decision Record) — the Brest 4 cm RMS validation is traceable down to ADR 0019 and the compare_brest_shom_20260521.py script.

The goal: any oceanographer can redo the validation by hand, and any developer can understand why this particular harmonic constituent is in the bundle and not another.