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 :
- Port-mode — pour les ~150 ports français nommés, on utilise les constituantes harmoniques mesurées par marégraphes (TICON-4) ajustées sur des décennies d'observation. C'est le mode le plus précis : on tape les annuaires SHOM à quelques centimètres près.
- Grid-mode — pour n'importe quel autre point côtier français, on interpole bilinéairement dans l'atlas MARC IFREMER (résolution native 250 m, 33 constituantes). Précision typique ~10 cm.
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 :
- ZH SHOM (défaut) — référentiel officiel des annuaires français, disponible sur tout le littoral métropolitain.
- LAT — Lowest Astronomical Tide théorique, calculé sur 19 ans à partir du modèle. Cohérent partout, indépendamment de la couverture SHOM.
- MSL — Mean Sea Level signé, convention océanographique.
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
| Configuration | RMS | Validation |
|---|---|---|
| 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
- Surcôte atmosphérique : vent et baromètre peuvent ajouter ±15 à 30 cm pendant les épisodes tempétueux. Étale ne fait pas de météo.
- Marées extraordinaires : événements rares (tsunami, ondes de tempête atypiques) sont hors-modèle par construction.
- Bathymétrie locale dans les sites très complexes (estuaires étroits, embouchures de rivières en crue) — le modèle MARC 250 m est lissé à cette échelle.
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:
- Port-mode — for the ~150 named French ports, we use the harmonic constituents measured by tide gauges (TICON-4) and fitted over decades of observation. The most accurate mode: we match SHOM tide tables to within a few centimetres.
- Grid-mode — for any other French coastal point, we bilinearly interpolate in the MARC IFREMER atlas (250 m native resolution, 33 constituents). Typical accuracy ~10 cm.
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:
- SHOM ZH (default) — the official French tide-table datum, available over the whole metropolitan coastline.
- LAT — theoretical Lowest Astronomical Tide, computed over 19 years from the model. Consistent everywhere, regardless of SHOM coverage.
- MSL — signed Mean Sea Level, oceanographic convention.
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
| Configuration | RMS | Validation |
|---|---|---|
| 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
- Atmospheric surge: wind and barometric pressure can add ±15 to 30 cm during storms. Étale does no weather.
- Extraordinary tides: rare events (tsunami, atypical storm waves) are out-of-model by construction.
- Local bathymetry in very complex sites (narrow estuaries, river mouths in flood) — the 250 m MARC model is smoothed at that scale.
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.