{
 "catalogue": "default",
 "version": "0.9.3",
 "generated": "2026-10-02",
 "units": {
  "speed": "degrees per hour",
  "period": "hours",
  "amplitude": "metres",
  "phase": "degree lag at reference time"
 },
 "note": "Extract of 26 principal constituents plus Sa and Ssa. Full 68-entry set comes from tc.catalogue().",
 "count": 28,
 "constituents": [
  {
   "id": "M2",
   "name": "principal lunar",
   "speed_deg_per_hr": 28.9841042,
   "period_hr": 12.4206,
   "species": "semidiurnal",
   "origin": "principal lunar",
   "example_amplitude_m": 1.412,
   "example_phase_deg": 211.6,
   "example_snr": 318.4,
   "rayleigh_partner": "N2",
   "separation_days": 27.6,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "S2",
   "name": "principal solar",
   "speed_deg_per_hr": 30.0,
   "period_hr": 12.0,
   "species": "semidiurnal",
   "origin": "principal solar",
   "example_amplitude_m": 0.463,
   "example_phase_deg": 238.2,
   "example_snr": 104.1,
   "rayleigh_partner": "M2",
   "separation_days": 14.8,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "N2",
   "name": "larger lunar elliptic",
   "speed_deg_per_hr": 28.4397295,
   "period_hr": 12.6583,
   "species": "semidiurnal",
   "origin": "larger lunar elliptic",
   "example_amplitude_m": 0.281,
   "example_phase_deg": 190.8,
   "example_snr": 63.2,
   "rayleigh_partner": "M2",
   "separation_days": 27.6,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "K2",
   "name": "lunisolar declinational",
   "speed_deg_per_hr": 30.0821373,
   "period_hr": 11.9672,
   "species": "semidiurnal",
   "origin": "lunisolar declinational",
   "example_amplitude_m": 0.126,
   "example_phase_deg": 235.9,
   "example_snr": 28.4,
   "rayleigh_partner": "S2",
   "separation_days": 182.6,
   "min_record_days": 183,
   "inferred": {
    "from": "S2",
    "ratio": 0.272
   }
  },
  {
   "id": "L2",
   "name": "smaller lunar elliptic",
   "speed_deg_per_hr": 29.5284789,
   "period_hr": 12.1916,
   "species": "semidiurnal",
   "origin": "smaller lunar elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "T2",
   "name": "larger solar elliptic",
   "speed_deg_per_hr": 29.9589333,
   "period_hr": 12.0164,
   "species": "semidiurnal",
   "origin": "larger solar elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 365,
   "inferred": null
  },
  {
   "id": "NU2",
   "name": "larger lunar evectional",
   "speed_deg_per_hr": 28.5125831,
   "period_hr": 12.626,
   "species": "semidiurnal",
   "origin": "larger lunar evectional",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "MU2",
   "name": "lunar variational",
   "speed_deg_per_hr": 27.9682084,
   "period_hr": 12.8718,
   "species": "semidiurnal",
   "origin": "lunar variational",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "2N2",
   "name": "second-order lunar elliptic",
   "speed_deg_per_hr": 27.8953548,
   "period_hr": 12.9054,
   "species": "semidiurnal",
   "origin": "second-order lunar elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "K1",
   "name": "lunisolar declinational",
   "speed_deg_per_hr": 15.0410686,
   "period_hr": 23.9345,
   "species": "diurnal",
   "origin": "lunisolar declinational",
   "example_amplitude_m": 0.109,
   "example_phase_deg": 77.3,
   "example_snr": 24.1,
   "rayleigh_partner": "P1",
   "separation_days": 182.6,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "O1",
   "name": "principal lunar",
   "speed_deg_per_hr": 13.9430356,
   "period_hr": 25.8193,
   "species": "diurnal",
   "origin": "principal lunar",
   "example_amplitude_m": 0.082,
   "example_phase_deg": 54.0,
   "example_snr": 18.6,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "P1",
   "name": "principal solar",
   "speed_deg_per_hr": 14.9589314,
   "period_hr": 24.0659,
   "species": "diurnal",
   "origin": "principal solar",
   "example_amplitude_m": 0.036,
   "example_phase_deg": 74.9,
   "example_snr": 8.2,
   "rayleigh_partner": "K1",
   "separation_days": 182.6,
   "min_record_days": 183,
   "inferred": {
    "from": "K1",
    "ratio": 0.331
   }
  },
  {
   "id": "Q1",
   "name": "larger lunar elliptic",
   "speed_deg_per_hr": 13.3986609,
   "period_hr": 26.8684,
   "species": "diurnal",
   "origin": "larger lunar elliptic",
   "example_amplitude_m": 0.017,
   "example_phase_deg": 31.5,
   "example_snr": 3.9,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "J1",
   "name": "smaller lunar elliptic",
   "speed_deg_per_hr": 15.5854433,
   "period_hr": 23.0985,
   "species": "diurnal",
   "origin": "smaller lunar elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "S1",
   "name": "solar, largely radiational",
   "speed_deg_per_hr": 15.0,
   "period_hr": 24.0,
   "species": "diurnal",
   "origin": "solar, largely radiational",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 365,
   "inferred": null
  },
  {
   "id": "OO1",
   "name": "second-order lunar declinational",
   "speed_deg_per_hr": 16.1391017,
   "period_hr": 22.3061,
   "species": "diurnal",
   "origin": "second-order lunar declinational",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "2Q1",
   "name": "second-order lunar elliptic",
   "speed_deg_per_hr": 12.8542862,
   "period_hr": 28.0062,
   "species": "diurnal",
   "origin": "second-order lunar elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  },
  {
   "id": "M4",
   "name": "shallow-water overtide of M2",
   "speed_deg_per_hr": 57.9682084,
   "period_hr": 6.2103,
   "species": "quarter-diurnal",
   "origin": "shallow-water overtide of M2",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "MS4",
   "name": "shallow-water compound, M2 plus S2",
   "speed_deg_per_hr": 58.9841042,
   "period_hr": 6.1033,
   "species": "quarter-diurnal",
   "origin": "shallow-water compound, M2 plus S2",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "MN4",
   "name": "shallow-water compound, M2 plus N2",
   "speed_deg_per_hr": 57.4238337,
   "period_hr": 6.2692,
   "species": "quarter-diurnal",
   "origin": "shallow-water compound, M2 plus N2",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "M3",
   "name": "lunar, third-degree term",
   "speed_deg_per_hr": 43.4761563,
   "period_hr": 8.2804,
   "species": "terdiurnal",
   "origin": "lunar, third-degree term",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "M6",
   "name": "shallow-water overtide of M2",
   "speed_deg_per_hr": 86.9523126,
   "period_hr": 4.1402,
   "species": "sixth-diurnal",
   "origin": "shallow-water overtide of M2",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "M8",
   "name": "shallow-water overtide of M2",
   "speed_deg_per_hr": 115.9364169,
   "period_hr": 3.1052,
   "species": "eighth-diurnal",
   "origin": "shallow-water overtide of M2",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 15,
   "inferred": null
  },
  {
   "id": "MSf",
   "name": "lunisolar synodic fortnightly",
   "speed_deg_per_hr": 1.0158958,
   "period_hr": 354.3673,
   "species": "long period",
   "origin": "lunisolar synodic fortnightly",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "Mf",
   "name": "lunar declinational fortnightly",
   "speed_deg_per_hr": 1.0980331,
   "period_hr": 327.859,
   "species": "long period",
   "origin": "lunar declinational fortnightly",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "Mm",
   "name": "lunar monthly elliptic",
   "speed_deg_per_hr": 0.5443747,
   "period_hr": 661.3092,
   "species": "long period",
   "origin": "lunar monthly elliptic",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 29,
   "inferred": null
  },
  {
   "id": "Sa",
   "name": "solar annual, largely meteorological",
   "speed_deg_per_hr": 0.0410686,
   "period_hr": 8765.82,
   "species": "long period",
   "origin": "solar annual, largely meteorological",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 365,
   "inferred": null
  },
  {
   "id": "Ssa",
   "name": "solar semiannual",
   "speed_deg_per_hr": 0.0821373,
   "period_hr": 4382.91,
   "species": "long period",
   "origin": "solar semiannual",
   "example_amplitude_m": null,
   "example_phase_deg": null,
   "example_snr": null,
   "rayleigh_partner": null,
   "separation_days": null,
   "min_record_days": 183,
   "inferred": null
  }
 ]
}