Skip to content

Commit a2813fe

Browse files
authored
Merge pull request #186 from neaps/ticon-constituents
Add constituents to support TICON data
2 parents 3779ba2 + 26d2c5c commit a2813fe

67 files changed

Lines changed: 953 additions & 338 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import M2 from "./M2.js";
3+
import O1 from "./O1.js";
4+
5+
/**
6+
* Shallow-water terdiurnal (2MK3 = M2 + O1).
7+
* Lunar-lunar interaction from M2 semi-diurnal and O1 diurnal components.
8+
* Generated in shallow-water environments; typical amplitude <1 cm.
9+
*/
10+
export default defineCompoundConstituent("2MK3", [
11+
{ constituent: M2, factor: 1 },
12+
{ constituent: O1, factor: 1 },
13+
]);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import M2 from "./M2.js";
3+
import K1 from "./K1.js";
4+
5+
/**
6+
* Shallow-water fifth-diurnal from M2-K1 interaction.
7+
*
8+
* Note: Found in coastal tide predictions, especially in enclosed bays and harbors.
9+
* Amplitude typically 0.1-0.5 cm depending on location and water depth.
10+
* Shallow-water constituent only; not present in deep ocean.
11+
*
12+
* @see NOAA CO-OPS
13+
*/
14+
export default defineCompoundConstituent("2MK5", [
15+
{ constituent: M2, factor: 2 },
16+
{ constituent: K1, factor: 1 },
17+
]);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import M2 from "./M2.js";
3+
import O1 from "./O1.js";
4+
5+
/**
6+
* Shallow-water fifth-diurnal from M2-O1 interaction.
7+
*
8+
* Note: Primarily shallow-water coastal phenomenon, not present in deep ocean.
9+
* Amplitude typically <0.5 cm except in extreme shallow-water or enclosed basins.
10+
* Found in coastal tide predictions alongside other shallow-water constituents.
11+
*
12+
* @see NOAA CO-OPS
13+
*/
14+
export default defineCompoundConstituent("2MO5", [
15+
{ constituent: M2, factor: 2 },
16+
{ constituent: O1, factor: 1 },
17+
]);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import M2 from "./M2.js";
3+
import S2 from "./S2.js";
4+
5+
/**
6+
* Sixth-diurnal shallow-water interaction: 2×M2 + S2.
7+
*
8+
* Generated only in shallow water; typical amplitude 0.01-0.2 meters depending on depth.
9+
* Included in IHO shallow-water constituent tables and NOAA analysis (order #37).
10+
*/
11+
export default defineCompoundConstituent("2MS6", [
12+
{ constituent: M2, factor: 2 },
13+
{ constituent: S2, factor: 1 },
14+
]);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { defineConstituent } from "./definition.js";
2+
import nc from "../node-corrections/index.js";
3+
4+
/**
5+
* Lunar semi-diurnal (2N2).
6+
* Second-order lunar semi-diurnal from Moon's orbital ellipticity.
7+
* Amplitude typically 5-10% of M2; significant in semi-diurnal analysis.
8+
*/
9+
export default defineConstituent("2N2", [2, -2, 0, 2, 0, 0, 0], nc.uM2, nc.fM2);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import N2 from "./N2.js";
3+
import J1 from "./J1.js";
4+
5+
/**
6+
* Shallow-water diurnal (2Q1 = N2-J1).
7+
* Derived from interaction of semi-diurnal N2 and diurnal J1 constituents.
8+
* Amplitude typically very small; rarely significant.
9+
* Found only in shallow-water regions with strong tidal distortion.
10+
*/
11+
export default defineCompoundConstituent("2Q1", [
12+
{ constituent: N2, factor: 1 },
13+
{ constituent: J1, factor: -1 },
14+
]);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import S2 from "./S2.js";
3+
import M2 from "./M2.js";
4+
5+
/**
6+
* Shallow-water semi-diurnal (2SM2).
7+
* Compound constituent: 2×S2 - M2
8+
* Solar-lunar interaction constituent generated in shallow-water environments.
9+
* Amplitude typically <2% of M2; complementary to MU2.
10+
*/
11+
export default defineCompoundConstituent("2SM2", [
12+
{ constituent: S2, factor: 2 },
13+
{ constituent: M2, factor: -1 },
14+
]);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import L2 from "./L2.js";
3+
4+
/**
5+
* Triple lunar elliptic; 3 times L2 interaction.
6+
*
7+
* Warning: Not in standard IHO constituent bank. Mainly historical/theoretical interest.
8+
* Very small amplitude (<0.1 cm); found only in extreme shallow water or enclosed basins.
9+
* Often ignored in routine tide predictions.
10+
*
11+
* @see Schureman, P. (1958). Manual of Harmonic Analysis and Prediction of Tides
12+
*/
13+
export default defineCompoundConstituent("3L2", [{ constituent: L2, factor: 3 }]);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineCompoundConstituent } from "./definition.js";
2+
import N2 from "./N2.js";
3+
4+
/**
5+
* Triple N2 shallow-water harmonic (3 × N2).
6+
*
7+
* Note: Shallow-water constituent with definition based on compound frequency estimates.
8+
* Typical amplitude <0.5 cm; often <0.1 cm except in extreme shallow-water or enclosed basins.
9+
* Rarely significant in routine tide predictions.
10+
*
11+
* @see NOAA CO-OPS shallow-water constituents
12+
*/
13+
export default defineCompoundConstituent("3N2", [{ constituent: N2, factor: 3 }]);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { defineConstituent } from "./definition.js";
2+
import nc from "../node-corrections/index.js";
3+
4+
/**
5+
* Lunar elliptic semi-diurnal constituent (ε2).
6+
*/
7+
export default defineConstituent("EP2", [2, -3, 2, 1, 0, 0, 0], nc.uM2, nc.fM2);

0 commit comments

Comments
 (0)