These two characteristics of differential equations often go hand in hand. A tidal response is fundamentally a forced problem, not a free oscillation problem. In differential-equation language, the primacy of forcing makes it both non-homogeneous and non-autonomous. In other familiar calculus terms, tidal responses are particular solutions of non-homogeneous, non-autonomous dynamical systems, forced by explicitly time-dependent lunisolar potentials, superposed on the system’s autonomous homogeneous modes. The following post will make it clear that (i) tides are not free modes, (ii) the forcing is external, and (iii) the external forcing introduces explicit time dependence beyond the internal state evolution. We then ask the question: Can this be extended beyond conventional tides?
Continue readingTides
Revisit Sea Level Pressure paper
Revisiting the post An obvious clue from tidal data, which is an analysis of this paper The effect of regional sea level atmospheric pressure on …

At the time, I did not try to duplicate the results, but after coming across it again, curiosity got the best of me. The program to duplicate the results is in this GIST: Analysis of SLP from PSMSL stations, using HadSLP2.
The author really didn’t clarify that the striations/bands/gaps in readings (above from paper and recreated below, left) were simply due to the discrete nature of monthly readings placed against a strong seasonal variation. For example, the NYC (The Battery) and Boston location have a significant seasonal SLP response due to the geographic characteristic of cold-season continental highs alternating with warm-season lower-pressure maritime regimes.
For New York, explain this figure [📷 nyc_monthly_slp.png]. On the right the values are replotted as (Month modulo 12) to indicate which months corresponded to the left.
Copilot response:
Of course there is other stuff lurking in the data, so it is good to have the HadSLP2 as an adjunct to the PSMSL data I am using here
Consider the Honolulu SLP data below. There’s a clear Hovmller-like sloped ridge in the data, as one’s eye can detect, emphasized by the highlighter.
The testing of lines in the rotated frame of the form u = p - s t finds this in the power spectrum. See It reads a HadSLP2 TSV, searches over diagonal slopes in rotated coordinates u = pressure – slope * time, identifies the strongest ridge, writes the power spectrum and ridge profile as TSVs, and saves a PNG with the ridge overplotted on the scatter plus the spectrum. See the previous GIST

A plausible explanation is a multidecadal modulation of the regional seasonal SLP cycle by North Pacific basin circulation variability, of which PDO/IPO variability is a plausible contributor.
GEM-LTE modeling
February 2026 Cross-Validation Experiments: GEM-LTE Mean Sea Level and Climate Index Modelling
Executive Summary
GEM-LTE/experiments/Feb2026 at main · pukpr/GEM-LTE
This directory contains results from a comprehensive cross-validation study applying the GEM-LTE (GeoEnergyMath Laplace’s Tidal Equation) model to 79 tide-gauge and climate-index time series spanning the 19th through early 21st centuries. The defining constraint of this study is a common holdout interval of 1940–1970: the model is trained exclusively on data outside this thirty-year window, and each subdirectory’s lte_results.csv and *site1940-1970.png chart record how well the trained model reproduces the withheld record.
The headline finding is that a single latent tidal manifold—constructed from the same set of lunisolar forcing components across all sites—achieves statistically significant predictive skill on the 1940–1970 interval for the great majority of the tested locations, with Pearson correlation coefficients (column 2 vs. column 3 of lte_results.csv) ranging from r ≈ 0.72 at the best-performing Baltic tide gauges to r ≈ 0.12 at the most challenging Atlantic stations. Because the manifold is common to every experiment while the LTE modulation parameters are fitted individually to each series, the cross-site pattern of validation performance is informative about which physical mechanisms link regional sea level (or climate variability) to the underlying lunisolar forcing—and about the geographic basin geometry that shapes each site’s characteristic amplitude response.
The GEM-LTE Model: A Common Latent Manifold with Variable LTE Modulation
read more below, and contribute here: Discussions · pukpr/GEM-LTE · Discussion #6
Continue readingForcing of NAO and MSL in the Baltic
Modeling LTE solutions from pukpr/GEM-LTE: GeoEnergyMath Laplaces Tidal Equation modeling and fitting software
Warnemunde Mean Sea Level (#11 from PSMSL.org). Dashed lines are cross-validation intervals.

North Atlantic Oscillation

NAO (top) and Warnemunde MSL (bottom) latent forcing layer
amo.dat.p

AMO trained on region outside of dashed line, so that’s the cross-validated region, using Descent optimized LTE annual time-series, Python
python3 ts_lte.py amo.dat –cc –plot –low 1930 –high 1960
using the following JSON parameters file
amo.dat.p
{
"Aliased": [
0.422362756,
0.38861749700000003,
0.23562139699999995,
0.259019747,
0.33201584700000003,
0.165274488,
0.262765007,
0.385761106,
0.07374525999999999,
0.215992198,
0.192246939,
0.528757205,
0.112996099,
0.03714361,
0.10034691,
0.07660165,
0.501613596,
2.0,
1.0
],
"AliasedAmp": [
0.03557922624939592,
0.09988731513671248,
0.07106292426402241,
0.1202147059011645,
-0.16310647366824904,
-0.21099766009700224,
0.3178250739779875,
-0.034763054040409205,
-0.26973831298426476,
-0.13417117453373803,
0.33741450649520405,
0.14844747522132112,
0.38176481941684715,
-0.24512757533159843,
0.17007002069621968,
-0.3175673142831867,
-0.0801663078936891,
0.0410641305028224,
0.15648561320675802
],
"AliasedPhase": [
12.907437383830702,
9.791011963532627,
20.894959747239227,
11.230932614457465,
24.106215317177334,
14.921596063027563,
11.928445369162157,
14.76066439534825,
9.307516552468496,
6.238399781667854,
4.78878496205605,
19.328424226102666,
4.1510957254818255,
24.986414787848002,
3.764292351659264,
7.899565162852414,
10.701455186458222,
6.575719630634085,
4.603123916071089
],
"DeltaTime": 7.217156366226141e-06,
"Hold": 0.001560890374528988,
"Imp_Amp": 36.03147961053978,
"Imp_Stride": 1,
"Initial": 0.023119471463386495,
"LTE_Amp": 1.2149052076222568,
"LTE_Freq": 232.0780473685175,
"LTE_Phase": -1.98155204056087,
"Periods": [
27.2122,
27.3216,
27.564500000000002,
13.63339513,
13.69114014,
13.5961,
13.6708,
13.72877789,
6795.015773000002,
1616.2951719999999,
2120.013852999989,
13.78725,
3232.690344000001,
9.142931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.22791356815287772,
0.03599719419115529,
0.18676833431961723,
0.03956128728097599,
-0.2649706920257545,
0.10022074474351093,
0.10436992221139457,
0.14430534046016136,
0.07102249228279979,
0.11758452315976271,
0.04510213195702457,
0.06361160068822835,
0.05674788795284906,
-0.043657524764462274,
0.07791151774412787,
0.019631216465477552,
-0.14009026634971397
],
"PeriodsPhase": [
13.451016651034463,
7.371101643819357,
18.44011357432109,
6.802030606034782,
21.120997888353294,
9.616514380782336,
5.715489866748063,
10.809731364754402,
9.031554832315345,
7.401459819968337,
5.9383444499771105,
14.60402121854254,
5.541215399062276,
8.44043335583645,
1.6019323722385819,
7.500513005887212,
7.860442540394975
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}
Primary 27.2122 > 27.5545 > 27.3216 > others

{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"0.5",
"1",
"2"
],
"AliasedAmp": [
-0.27685696043001307,
0.16964990314670372,
0.11895402824503996,
-0.22535505798739713,
-0.14980527635880514,
0.039162442368949016
],
"AliasedPhase": [
8.086868082389797,
6.5259913891848225,
6.976139887075208,
0.73810967841759,
-0.7194832011130626,
8.565521480562625
],
"DC": -0.2680318100166013,
"DeltaTime": 3.339861667887925,
"Hold": 0.0014930905734095634,
"Imp_Amp": 199.01398139940682,
"Imp_Amp2": -0.5731191105049073,
"Imp_Stride": 8,
"Initial": 0.06704092573627028,
"LTE_Amp": 1.3767200538799589,
"LTE_Freq": 125.32556941298645,
"LTE_Phase": 0.7307737940808291,
"LTE_Zero": 1.4258992716041372,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"6.809866946",
"2190.530426",
"6.816697567",
"6.823541904",
"1656.572278"
],
"PeriodsAmp": [
0.30508787370803825,
0.13110586375848174,
0.20288728084656027,
-0.04672659187556317,
-0.004826158765318568,
-0.035033863263707915,
-0.0368824777486948,
0.03511304770515584,
0.011720764708907096,
-0.004694584574980881,
0.029609791456868918,
0.039125743540538716,
-0.007414683923403197,
0.00010802542017018773,
-0.018330796222247217,
-0.006001961724770963,
-0.03735314717727939,
-0.004108234580768664,
0.011857949379825367,
0.01479879984548296,
0.02390111774094945,
-0.039440470787466424,
-0.032966674657844246,
-0.030591610040324502,
0.013039117473425073
],
"PeriodsPhase": [
14.569679572272141,
8.743347618608817,
6.063986820806294,
4.382376561017971,
9.81395082674981,
5.545094399669723,
7.378109970639206,
3.912962970116576,
7.840782183776614,
4.988264989477043,
5.697804841039319,
7.455439074616485,
2.972944156135133,
4.7630843491223365,
6.317733397950582,
7.279885606476663,
3.8917494187283728,
5.801812295837,
6.975196465036293,
6.128620153406749,
4.95108326060857,
4.307377590535454,
5.8886081102774535,
4.9456215506967265,
4.232011434810574
],
"Year": "365.2495755"
}
Alternate Julia fitting routine
Warnemunde, DE tidal station
https://docs.google.com/spreadsheets/d/1HysiqoPN-j1M2lTLUpQaGZPAxvJIesFrJMBoYJyWA5I/edit?usp=sharing
started from Warnemunde SLH model fit

Name Value
—- —–
ALIGN 0
EXTRA 0
FORCING 0
MAX_ITERS 50
RELATIVE 1
STEP 0.05
PS C:\Users\paul\github\pukpr\python\simple\run0> cat .\amo.dat.p
{
“Aliased”: [
“0.0537449”,
“0.1074898”,
“0.220485143”,
“0.5”,
“1”,
“2”
],
“AliasedAmp”: [
-0.12182091549739567,
0.25801568818215476,
0.09920867308439774,
-0.1737322618819654,
-0.07529335982382553,
0.052057481476465634
],
“AliasedPhase”: [
4.921761286209268,
5.7618887121423965,
7.487588835004665,
0.8600259809362271,
0.01213560781160881,
7.655542996972892
],
“DC”: -0.008758390763317466,
“Damp”: -0.022154904178658865,
“DeltaTime”: “3.416666667”,
“Hold”: 0.0014873352555352655,
“Imp_Amp”: 190.5449378494113,
“Imp_Amp2”: 1.466945315006192,
“Imp_Stride”: 7,
“Initial”: 0.060016503798714434,
“LTE_Amp”: 1.587179814234174,
“LTE_Freq”: 125.53536829233441,
“LTE_Phase”: 1.2439579952989555,
“LTE_Zero”: 0.896474895660982,
“Periods”: [
“27.2122”,
“27.3216”,
“27.5545”,
“13.63339513”,
“13.69114014”,
“13.6061”,
“13.6608”,
“13.71877789”,
“6795.985773”,
“1616.215172”,
“2120.513853”,
“13.77725”,
“3232.430344”,
“9.132931547”,
“9.108450374”,
“9.120674533”,
“27.0926041”,
“3397.992886”,
“9.095011909”,
“9.082856397”,
“6.809866946”,
“2190.530426”,
“6.816697567”,
“6.823541904”,
“1656.572278”
],
“PeriodsAmp”: [
0.27470885437689657,
0.12275502752316671,
0.08957207441483245,
-0.016351843276285773,
-0.0023253487734064167,
-0.027825652713169724,
-0.03622467995377892,
0.03745364586195977,
0.016931934821747943,
-0.007763938392135198,
0.001227009837326124,
-0.025790386622741152,
-0.008565987883641879,
0.00014664749664687222,
-0.01704107349960909,
-0.00797921907994325,
-0.03177647026752983,
-0.004956872049734769,
0.007932726074580026,
0.014516028377323971,
-0.021088964802417443,
-0.020789594142410307,
-0.0394312191315924,
-0.04134814573194381,
0.016270585503279013
],
“PeriodsPhase”: [
14.531794321199,
9.047644816654925,
6.2513288041048165,
4.835012524578427,
8.2937810112731,
5.467748908147056,
8.57387165414261,
4.054729761879573,
7.943122954685947,
8.951903685571338,
2.710382136770864,
8.02559427189266,
3.2041095507982096,
5.942537145429701,
5.976976092641082,
7.506337445154253,
5.347578022677064,
8.017917628086881,
5.8570430281895804,
6.547489676521564,
4.764028618408168,
4.06142922152038,
6.49245321390355,
4.201452643286066,
6.210242390637271
],
“Year”: “365.2495755”
}
PS C:\Users\paul\github\pukpr\python\simple\run0>
amo.dat.p
compare to warnemunde reference, warne.dat.p
{
“Aliased”: [
“0.0537449”,
“0.1074898”,
“0.220485143”,
“0.5”,
“1”,
“2”
],
“AliasedAmp”: [
-0.4042092506880945,
0.1498026647936091,
0.34974191131892546,
-0.06275860364797245,
-0.12693112051883154,
0.05360693094611856
],
“AliasedPhase”: [
5.022341284265671,
6.12724416388633,
5.10501755051668,
1.3489606861498495,
0.1576762764662913,
6.305517708416614
],
“DC”: -0.008758390763317466,
“Damp”: -0.004169125923760335,
“DeltaTime”: “3.416666667”,
“Hold”: 0.001492802207237816,
“Imp_Amp”: 197.45336102884804,
“Imp_Amp2”: 1.8841384082886352,
“Imp_Stride”: 8,
“Initial”: 0.06797642598445004,
“LTE_Amp”: 1.1234722131058268,
“LTE_Freq”: 129.45433340867712,
“LTE_Phase”: 0.9136521644032515,
“LTE_Zero”: 1.4732244756410906,
“Periods”: [
“27.2122”,
“27.3216”,
“27.5545”,
“13.63339513”,
“13.69114014”,
“13.6061”,
“13.6608”,
“13.71877789”,
“6795.985773”,
“1616.215172”,
“2120.513853”,
“13.77725”,
“3232.430344”,
“9.132931547”,
“9.108450374”,
“9.120674533”,
“27.0926041”,
“3397.992886”,
“9.095011909”,
“9.082856397”,
“6.809866946”,
“2190.530426”,
“6.816697567”,
“6.823541904”,
“1656.572278”
],
“PeriodsAmp”: [
0.2969846885625734,
0.12715090239433,
0.11195966030804025,
-0.014279802990919828,
-0.007476472864580455,
-0.027618411935182365,
-0.0314800276468536,
0.01803389223741826,
0.011163663341122482,
-0.0012907337497222084,
0.010385914775159287,
-0.024140665704639786,
-0.0024596839864129026,
0.00027007377126487056,
-0.014632061204798591,
-0.005915227697593744,
-0.04415788786521701,
-0.0030602495341499583,
0.009422574691039923,
0.013666201034033513,
-0.011874548174887829,
-0.01644029616663989,
-0.027183125961912056,
-0.01849393725550493,
0.0035426632273613356
],
“PeriodsPhase”: [
14.521637612309751,
8.824373362823483,
6.120768972631713,
5.031389621562438,
7.68019623052033,
5.535148594183447,
7.8408960747147844,
3.7085965346643084,
7.8128946785721185,
5.8037304389860065,
5.996864724827583,
8.12109584535951,
2.86102851568745,
6.520420198470608,
5.568571652192804,
7.4330567654835455,
4.544814917547044,
6.625719182549832,
7.045017606299215,
6.1446045083619385,
6.171838481758574,
4.209559209227534,
6.043091099560879,
4.664388204620863,
5.099462955240412
],
“Year”: “365.2495755”
}
warne.dat.p



AMO LTE
“LTE_Amp”: 1.587179814234174,
“LTE_Freq”: 125.53536829233441,
“LTE_Phase”: 1.2439579952989555,
“LTE_Zero”: 0.896474895660982,
Warne LTE
“LTE_Amp”: 1.1234722131058268,
“LTE_Freq”: 129.45433340867712,
“LTE_Phase”: 0.9136521644032515,
“LTE_Zero”: 1.4732244756410906,
AMO Warnemunde

Tidal Gauge Differential
A climate science breakthrough likely won’t be on some massive computation but on a novel formulation that exposes some fundamental pattern (perhaps discovered by deep mining during a machine learning exercise). Over 10 years ago, I wrote on a blog post on how one can extract the ENSO signal by doing simple signal processing on a sea-level height (SLH) tidal time-series — in this case, at Fort Denison located in Sydney harbor.
The formulation/trick is to take the difference between the SLH reading and that from 2 years (24 months) prior, described here
Check the recent blog post Lunar Torque Controls All for context of how it fits in to the unified model.
The rationale for this 24 month difference is likely related to the sloshing of the ocean triggered on an annual basis. I think this is a pattern that any ML exercise would find with very little effort. After all, it didn’t take me that long to find it. But the point is that the ML configuration has to be open and flexible enough to be able to search, generate, and test for the same formulation. IOW, it may not find it if the configuration, perhaps focused on computationally massive PDEs, is too narrow. That was my comment to a RC post on applying machine learning to climate science, see the following link and subsequent quote:
Nick McGreivy commented on:
“ML-based parameterizations have to work well for thousands of years of simulations, and thus need to be very stable (no random glitches or periodic blow-ups) (harder than you might think). Bias corrections based on historical observations might not generalize correctly in the future.”
This same issue arises when using ML to simulate PDEs. The solution is to analytically calculate what the stability condition(s) is (are), then at each timestep to add some numerical diffusion that nudges the solution towards satisfying the stability condition(s). I imagine this same technique could be used for ML-based parametrizations.
Bay of Fundy subbands

With the recent total solar eclipse, it revived lots of thought of Earth’s ecliptic plane. In terms of forcing, having the Moon temporarily in the ecliptic plane and also blocking the sun is not only a rare and (to some people) an exciting event, it’s also an extreme regime wrt to the Earth as the combined reinforcement is maximized.
In fact this is not just any tidal forcing — rather it’s in the class of tidal forcing that has been overlooked over time in preference to the conventional diurnal tides. As many of those that tracked the eclipse as it traced a path from Texas to Nova Scotia, they may have noted that the moon covers lots of ground in a day. But that’s mainly because of the earth’s rotation. To remove that rotation and isolate the mean orbital path is tricky. And that’s the time-span duration where long-period tidal effects and inertial motion can build up and show extremes in sea-level change. Consider the 4.53 year extreme tidal cycle observed at the Bay of Fundy (see Desplanque et al) located in Nova Scotia. This is predicted if the long-period lunar perigee anomaly (27.554 days and the 8.85 absidal precessional return cycle) amplifies the long period lunar ecliptic nodal cycle, as every 9.3 years the lunar path intersects the ecliptic plane, one ascending and the other descending as the moon’s gravitational pull directly aligns with the sun’s. The predicted frequencies are 1/8.85 ± 2/18.6 = 1/4.53 & 1/182, the latter identified by Keeling in 2000. The other oft-mentioned tidal extreme is at 18.6 years, which is identified as the other long period extreme at the Bay of Fundy by Desplanque, and that was also identified by NASA as an extreme nuisance tide via a press release and a spate of “Moon wobble” news articles 3 years ago.
What I find troubling is that I can’t find a scholarly citation where the 4.53 year extreme tidal cycle is explained in this way. It’s only reported as an empirical observation by Desplanque in several articles studying the Bay of Fundy tides.
Continue readingCross-Validation of Geophysics Behaviors
The fit to the ENSO model looks like this
The forcing spectrum like this, with the aliased draconic (27.212d) factor circled:
For QBO, we remove all the lunar factors except for the draconic, as this is the only declination factor with the same spherical group symmetry as the semi-annual solar declination.
And after modifying the annual (ENSO spring-barrier) impulse into a semi-annual impulse with equal and opposite excursions, the resultant model matches well (to first order) the QBO time series.
Although the alignment isn’t perfect, there are indications in the structure that the fit has a deeper significance. For example, note how many of the shoulders in the structure align, as highlighted below in yellow
The peaks and valleys do wander about a bit and might be a result of the sensitivity to the semi-annual impulse and the fact that this is only a monthly resolution. The chart below is a detailed fit of the QBO using data with a much finer daily resolution. As you can see, slight changes in the seasonal timing of the semi-annual pulse are needed to individually align the 70 and 30 hBar QBO time-series data.
This will require further work, especially in considering recently reported perturbations in the QBO periodicity, but it is telling that a shared draconic forcing of the ENSO and QBO models suggests an important cross-validation of the underlying causal mechanism.
Another potential geophysical cross-validation …
The underlying forcing of the ENSO model shows both an 18-year Saros cycle (which is an eclipse alignment cycle of all the tidal periods), along with a 6-year anomalistic/draconic interference cycle. This modulation of the main anomalistic cycle appears in both the underlying daily and monthly profile, shown below before applying an annual impulse. The 6-year is clearly evident as it aligns with the x-axis grid 1880, 1886, 1892, 1898, etc.

The bottom inset shows that a similar 6-year cycle consistently appears in length-of-day (LOD) analyses, this particular trace from a recent paper: [ Leonid Zotov et al 2020 J. Phys.: Conf. Ser. 1705 012002 ].
The 6-year cycle in the LOD is not aligned as strictly as the tidal model and it tends to wander, but it seems a more plausible and parsimonious explanation of the modulation than for example in this paper (where the 6-year LOD cycle is “similarly detected in the variations of C22 and S22, the degree-2 order-2 Stokes coefficients of the Earth’s gravitational field”).
Cross-validation confidence improves as the number of mutually agreeing alignments increase. Given the fact that controlled experiments are impossible to perform, this category of analyses is the best way to validate the geophysical models.
Continue reading
Sea-Level Height as a proxy for ENSO
Sea-level height has several scales. At the daily scale it represents the well-known lunisolar tidal cycle. At a multi-decadal, long-term scale it represents behaviors such as global warming. In between these two scales is what often appears to be noisy fluctuations to the untrained eye. Yet it’s fairly well-accepted [1] that much of this fluctuation is due to the side-effects of alternating La Nina and El Nino cycles (aka ENSO, the El Nino Southern Oscillation), as represented by measures such as NINO34 and SOI.
To see how startingly aligned this mapping is, consider the SLH readings from Ft. Denison in Sydney Harbor. The interval from 1980 to 2012 is shown below, along with a fit used recently to model ENSO.

(click to expand chart)
I chose a shorter interval to somewhat isolate the trend from a secular sea-level rise due to AGW. The last point is 2012 because tide gauge data collection ended then.
As cross-validation, this fit is extrapolated backwards to show how it matches the historic SOI cycles

Much of the fine structure aligns well, indicating that intrinsically the dynamics behind sea-level-height at this scale are due to ENSO changes, associated with the inverted barometer effect. The SOI is essentially the pressure differential between Darwin and Tahiti, so the prevailing atmospheric pressure occurring during varying ENSO conditions follows the rising or lowering Sydney Harbor sea-level in a synchronized fashion. The change is 1 cm for a 1 mBar change in pressure, so that with the SOI extremes showing 14 mBar variation at the Darwin location, this accounts for a 14 cm change in sea-level, roughly matching that shown in the first chart. Note that being a differential measurement, SOI does not suffer from long-term secular changes in trend.
Yet, the unsaid implication in all this is that not only are the daily variations in SLH due to lunar and solar cyclic tidal forces, but so are these monthly to decadal variations. The longstanding impediment is that oceanographers have not been able to solve Laplace’s Tidal Equations that reflected the non-linear character of the ocean’s response to the long-period lunisolar forcing. Once that’s been analytically demonstrated, we can observe that both SLH and ENSO share essentially identical lunisolar forcing (see chart below), arising from that same common-mode linked mechanism.

Many geographically located tidal gauge readings are available from the Permanent Service for Mean Sea Level (PSMSL) repository so I can imagine much can be done to improve the characterization of ENSO via SLH readings.
REFERENCES
[1] F. Zou, R. Tenzer, H. S. Fok, G. Meng and Q. Zhao, “The Sea-Level Changes in Hong Kong From Tide-Gauge Records and Remote Sensing Observations Over the Last Seven Decades,” in IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, vol. 14, pp. 6777-6791, 2021, doi: 10.1109/JSTARS.2021.3087263.
“Wobbling” Moon trending on Twitter

This NASA press release has received mainstream news attention.
The 18.6 year nodal cycle will generate higher tides that will exaggerate sea-level rise due to climate change.
Yahoo news item:
https://news.yahoo.com/lunar-orbit-apos-wobble-apos-173042717.html
So this is more-or-less a known behavior, but hopefully it raises awareness to the other work relating lunar forcing to ENSO, QBO, and the Chandler wobble.
Cited paper
Thompson, P.R., Widlansky, M.J., Hamlington, B.D. et al. Rapid increases and extreme months in projections of United States high-tide flooding. Nat. Clim. Chang. 11, 584–590 (2021). https://doi.org/10.1038/s41558-021-01077-8











