openwatersio / openwatersio/tide-database

Discrepancies in TICON constituent definitions

Open
#76 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
25
Forks
6
Avg merge
3d 6h
Merged PRs (30d)
10

Description

The TICON-4 User Manual includes constituent definitions used for generating the harmonics. Most of the definitions match what is used internally in @neaps/tide-predictor, but there are 6 discrepancies:

1. SA (Sa) — Doodson mismatch
  • TICON: Doodson 056554
  • Neaps: Doodson 056555 (xdo [0, 5, 6, 5, 5, 5, 5])
  • The 6th digit is 5 in Neaps but 4 in the TICON manual.
2. MKS2 — Wrong Doodson and speed
  • TICON: Doodson 245555, speed 28.4350877
  • Neaps: Doodson 257555, speed 29.0662415 (xdo [2, 5, 7, 5, 5, 5, 5])
  • The JSON values for MKS2 actually correspond to what the TICON manual calls 3N2 (Doodson 257555, speed 29.0662415). There is no entry in Neaps with the correct MKS2 values.
3. 3N2 — Missing as a semidiurnal constituent
  • TICON: Doodson 257555, speed 29.0662415
  • Neaps: The alias "3N2" exists on N6 (a species-6 constituent with speed 85.3191886), which is an entirely different thing. There is no semidiurnal 3N2 in Neaps. The Doodson/speed slot that should belong to 3N2 is currently occupied by the misidentified MKS2.
4. 3L2 — Null Doodson + wrong speed
  • TICON: Doodson 265555, speed 29.5331208
  • Neaps: xdo null, speed 88.5854367, defined as compound [["L2", 3]]
  • Neaps treats 3L2 as 3× the L2 frequency rather than as its own semidiurnal constituent with Doodson number 265555.
5. T3 — Null Doodson + wrong speed
  • TICON: Doodson 381555, speed 44.9589333
  • Neaps: xdo null, speed 44.9384
  • Missing Doodson number. Speed is off by 0.0205 deg/hr.
6. R3 — Null Doodson + wrong speed
  • TICON: Doodson 383555, speed 45.0410706
  • Neaps: xdo null, speed 45.0616001
  • Missing Doodson number. Speed is off by 0.0205 deg/hr.

This exposes a fundamental issue with the current Neaps implementation, which is that it assumes constituent definitions are standard and shared. Ultimately, I think it needs to support loading external definitions.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing packages/tide-predictor/src/constituents/data.json with the six entries documented in the TICON-4 User Manual. Confirm the corrected Doodson numbers, speeds, aliases, and constituent types, then investigate how Neaps currently represents definitions and what external loading would require. Done should include an agreed approach for correcting these discrepancies and supporting external constituent definitions.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.