Skip to content

Instantly share code, notes, and snippets.

@pukpr
Created June 21, 2025 17:19
Show Gist options
  • Select an option

  • Save pukpr/0465a8bbedc76f4b2dc87a7cdfdd3072 to your computer and use it in GitHub Desktop.

Select an option

Save pukpr/0465a8bbedc76f4b2dc87a7cdfdd3072 to your computer and use it in GitHub Desktop.
Reduced tide summation including mixed terms
function Tide_Sum_Custom (Template : in Data_Pairs;
Constituents : in Long_Periods_Amp_Phase;
Periods : in Long_Periods;
Ref_Time : in Long_Float := 0.0;
Scaling : in Long_Float := 1.0;
Cos_Phase : in Boolean := True;
Year_Len : in Long_Float := Year_Length;
Integ: in Long_Float := 0.0;
Ext_Forcing : in Data_Pairs := Empty_Data;
Ext_Factor : in Long_Float := 0.0;
Ext_Phase : in Long_Float := 0.0;
Ext_Amp : in Long_Float := 0.0
) return Data_Pairs is
Pi : Long_Float := Ada.Numerics.Pi;
Time : Long_Float;
Res : Data_Pairs := Template;
D, A, T : Long_Float;
TF : Long_Float;
pragma Unreferenced (Integ, Scaling, Cos_Phase, Ext_Forcing, Ext_Factor, Ext_Phase, Ext_Amp);
begin
for I in Template'Range loop
Time := Template(I).Date + Ref_Time;
declare -- uses 18.6y and 173
use Ada.Numerics.Long_Elementary_Functions;
L : Amp_Phase renames Constituents(2);
Freq : Long_Float := Year_Len / Periods(2);
HF : Amp_Phase renames Constituents(5);
HP : Long_Float := Year_Len / Periods(5);
NF : Amp_Phase renames Constituents(11);
NP : Long_Float := Year_Len / Periods(11);
begin
D := L.Amplitude*(Cos(2.0*Pi*Freq*Time + L.Phase +
HF.Amplitude*Cos(2.0*Pi*HP*Time + HF.Phase) +
NF.Amplitude*Cos(2.0*Pi*NP*Time + NF.Phase)
));
end;
declare
use Ada.Numerics.Long_Elementary_Functions;
L : Amp_Phase renames Constituents(9);
Freq : Long_Float := Year_Len / Periods(9);
PF : Amp_Phase renames Constituents(14);
PP : Long_Float := Year_Len / (2.0*Periods(14));
EF : Amp_Phase renames Constituents(15); -- arbitrary
begin --ampA*(ABS(SIN(freq*$A18+$E$13*ABS(SIN(freq*($A18+$E$14)))+phaseA))))
A := L.Amplitude*(Cos(2.0*Pi*Freq*Time + L.Phase +
PF.Amplitude*Abs(Cos(2.0*Pi*PP*Time +
EF.Amplitude*Abs(Cos(2.0*Pi*PP*Time +
EF.Phase)) +
PF.Phase))
));
end;
declare
use Ada.Numerics.Long_Elementary_Functions;
L : Amp_Phase renames Constituents(7);
Freq : Long_Float := Year_Len / Periods(7);
begin --ampA*(ABS(SIN(freq*$A18+$E$13*ABS(SIN(freq*($A18+$E$14)))+phaseA))))
T := L.Amplitude*Cos(2.0*Pi*Freq*Time + L.Phase);
end;
declare
A1 : Long_Float renames Constituents(16).Amplitude;
A2 : Long_Float renames Constituents(17).Amplitude;
A3 : Long_Float renames Constituents(18).Amplitude;
A4 : Long_Float renames Constituents(19).Amplitude;
D1 : Long_Float renames Constituents(20).Amplitude;
D2 : Long_Float renames Constituents(21).Amplitude;
D3 : Long_Float renames Constituents(22).Amplitude;
D4 : Long_Float renames Constituents(23).Amplitude;
DA2 : Long_Float renames Constituents(24).Amplitude;
D2A2 : Long_Float renames Constituents(25).Amplitude;
D2A : Long_Float renames Constituents(26).Amplitude;
DA3 : Long_Float renames Constituents(27).Amplitude;
D3A : Long_Float renames Constituents(28).Amplitude;
begin
TF := T + A1*A + A2*A**2 + A3*A**3 + A4*A**4 +
D1*D + D2*D**2 + D3*D**3 + D4*D**4 +
DA2*D*(A**2) + D2A2*(D**2)*(A**2) + D2A*(D**2)*A +
DA3*D*(A**3) + D3A*(D**3)*A ;
Res(I) := (Time, TF);
end;
end loop;
return Res;
end Tide_Sum_Custom;
@pukpr

pukpr commented Jun 26, 2025

Copy link
Copy Markdown
Author

Overfitting the non-LTE part, with extra 4.4 etc factors

[] NINO4

image

Status: 9 2 0.76369 0.20023 # 2300

   0.26960120543 :offset:
  -0.00107140627 :bg:
   0.20355805816 :impA:
 -10.06852340240 :impB:
  -4.53825047056 :impC:
   6.12598834971:delA:
   0.43513694667:delB:
  -3.87574634665:asym:
  -0.13585367844:ann1:
  -4.35823511777:ann2:
  -1.88502402143:sem1:
   0.57452060522:sem2:
   0.00035216281:year:
   0.34662498117:IR:
  -0.70641551348 :mA:
  -0.00561097214 :mP:
  -0.30271332318 :shiftT:
   0.21790768191 :init:
---- Tidal ----
  27.32166155400,    0.01808205062,    7.73245457216,  1,  504,  2.99185446830221E-03
  27.21222081500,    1.19851779719,    0.40485002893,  2,  80745,  1.48249009575208E-03
1095.17502233364,    0.00000000000,    0.00000000000,  3, -100,  1.02005430122255E-04
-3083.60350686619,   -0.00000000000,    0.00000000000,  4, -100,  7.90132309267928E-04
 173.30379429721,    1.11073490297,   -2.30734915911,  5,  100200,  1.10741491935749E-03
  13.63341568476,   -0.02585677475,    8.04065885266,  6, -120,  1.30360938693915E-01
  13.66083077700,   -0.01537178690,   -3.48297175030,  7, -105,  3.15888935364211E-01
  13.60611040750,   -0.03347363431,    4.63864352913,  8, -403,  1.10350593353712E-02
  27.55454988600,   -0.49537715015,    5.82497186937,  9, -679,  8.56004729354089E-02
  13.77727494300,    0.00501481232,   -3.93501841498,  10, -63,  1.36806736230545E-02
6793.47648813065,    0.88590880883,  -56.20182472551,  11,  88126,  1.00413981823776E-03
1616.30271425126,   -0.01793022793,   -5.24547181818,  12, -7108,  2.55845054643550E-04
  27.09267692660,    0.00000000000,   -0.00000000000,  13, -100,  5.01386210448549E-03
-205.88340433861,   -1.18847790218,    2.37732481230,  14, -166777,  7.13042181496757E-04
  13.69115772864,    1.45749667568,    0.54701594255,  15,  51881,  2.80389764676023E-03
1305.66025845931,    0.28326580338,    0.00000000000,  16,  71741,  3.94294770541628E-04
  27.44323926226,   -0.00716092252,    0.00000000000,  17, -275,  4.08728425887432E-03
  27.66676714572,   -1.32602871006,    0.00000000000,  18, -20582,  6.47399376167565E-03
2190.35004466729,   -0.18375642068,    0.00000000000,  19, -16325,  1.13251965441760E-03
  26.98505934729,   -0.02207980245,    0.00000000000,  20, -829,  3.02761316081279E-03
6167.20701373239,   -0.03934992179,    0.00000000000,  21, -12733,  3.11473159735622E-04
-3232.60542850251,    0.02753907733,    0.00000000000,  22,  4978,  5.42336402804491E-04
 199.82742538721,    0.01538956624,    0.00000000000,  23,  1135,  1.24603968080457E-03
  27.33282433123,    0.01265402583,    0.00000000000,  24,  273,  3.38831226167356E-03
-2120.90900683440,    0.08030393598,    0.00000000000,  25,  8720,  9.10462351327644E-04
  13.51938052729,   -0.11882256002,    0.00000000000,  26, -5939,  2.03505313566542E-03
  26.76165906720,    0.49773443558,    0.00000000000,  27,  56210,  8.83913608281136E-04
  13.74939096637,   -0.01972268096,   -0.00000000000,  28, -1479,  1.43041155329352E-03
  27.67821376175,   -0.00000000000,    0.00000000000,  29, -100,  1.61193493108131E-03
---- LTE ----
   0.00786492500 :trend:
   0.00002594306 :accel:
   0.39870098316 :K0:
  15.10747720217 :level:
  -0.81657485152,    0.18897068177,   -0.72651276128 1
  -1.63314970304,    0.22708272302,   -0.91281802480 2
  -4.08287425760,    0.04857810496,    0.11184088245 5
  -5.71602396064,    0.06857129569,    0.56773453255 7
 -15.51492217887,    0.02234972857,   -2.66010091836 19
 -18.78122158495,    0.05715415433,   -2.83535035080 23

DTW 0.7636851484 0.2002198185 9 1
0.09273405782:dLOD: 365.24249840000:Yr: nino4.dat
PS C:\Users\paul\github\pukpr\GEM-LTE\run> ../backup component_artificial_n4pt58short1pt77_cust8overnight_mf1_n34dtwCCfilter_n4_biquad_N34_N4cDTWccWOW1try2_bend1harmALL44f_2plus1a

image

image

Status: 10 2 0.77095 0.04102 # 20

   0.20032354232 :offset:
  -0.00107140627 :bg:
   0.11711542095 :impA:
  -9.86371097257 :impB:
  -4.53259555651 :impC:
   6.12546084091:delA:
   0.43513694667:delB:
  -3.87579040812:asym:
  -0.02045133253:ann1:
  -3.43859921125:ann2:
  -1.88668959218:sem1:
   0.57342014021:sem2:
   0.00035216281:year:
   0.34662576920:IR:
  -0.70644481788 :mA:
  -0.00561139635 :mP:
  -0.28698335709 :shiftT:
   0.21753969807 :init:
---- Tidal ----
  27.32166155400,    0.01808466309,    7.72919853233,  1,  504,  2.99185446830221E-03
  27.21222081500,    1.19846099761,    0.40499781891,  2,  80741,  1.48249009575208E-03
1095.17502233364,    0.00000000000,    0.00000000000,  3, -100,  1.02005430122255E-04
-3083.60350686619,   -0.00000000000,    0.00000000000,  4, -100,  7.90132309267928E-04
 173.30379429721,    1.11165526568,   -2.30568715199,  5,  100283,  1.10741491935749E-03
  13.63341568476,   -0.02581345490,    8.04272507544,  6, -120,  1.30360938693915E-01
  13.66083077700,   -0.01534597141,   -3.48306325534,  7, -105,  3.15888935364211E-01
  13.60611040750,   -0.03362583252,    4.63626195731,  8, -405,  1.10350593353712E-02
  27.55454988600,   -0.49538887861,    5.82497005643,  9, -679,  8.56004729354089E-02
  13.77727494300,    0.00474411832,   -3.94107141272,  10, -65,  1.36806736230545E-02
6793.47648813065,    0.88549637024,  -56.20176975976,  11,  88085,  1.00413981823776E-03
1616.30271425126,   -0.01794451368,   -5.24727752963,  12, -7114,  2.55845054643550E-04
  27.09267692660,    0.00000000000,   -0.00000000000,  13, -100,  5.01386210448549E-03
-205.88340433861,   -1.18848848508,    2.37702491834,  14, -166779,  7.13042181496757E-04
  13.69115772864,    1.45682455972,    0.54700627080,  15,  51857,  2.80389764676023E-03
1305.66025845931,    0.28326132480,    0.00000000000,  16,  71740,  3.94294770541628E-04
  27.44323926226,   -0.00712067932,    0.00000000000,  17, -274,  4.08728425887432E-03
  27.66676714572,   -1.32605728364,    0.00000000000,  18, -20583,  6.47399376167565E-03
2190.35004466729,   -0.18389781047,    0.00000000000,  19, -16338,  1.13251965441760E-03
  26.98505934729,   -0.02208489195,    0.00000000000,  20, -829,  3.02761316081279E-03
6167.20701373239,   -0.03935303427,    0.00000000000,  21, -12734,  3.11473159735622E-04
-3232.60542850251,    0.02751420565,    0.00000000000,  22,  4973,  5.42336402804491E-04
 199.82742538721,    0.01538381165,    0.00000000000,  23,  1135,  1.24603968080457E-03
  27.33282433123,    0.01295425884,    0.00000000000,  24,  282,  3.38831226167356E-03
-2120.90900683440,    0.08022144952,    0.00000000000,  25,  8711,  9.10462351327644E-04
  13.51938052729,   -0.11881315348,    0.00000000000,  26, -5938,  2.03505313566542E-03
  26.76165906720,    0.49817487393,    0.00000000000,  27,  56260,  8.83913608281136E-04
  13.74939096637,   -0.01957924677,   -0.00000000000,  28, -1469,  1.43041155329352E-03
  27.67821376175,   -0.00000000000,    0.00000000000,  29, -100,  1.61193493108131E-03
---- LTE ----
   0.00846722747 :trend:
   0.00002975952 :accel:
   0.40577621940 :K0:
  16.25178349721 :level:
  -0.40810168091,    0.04213431642,    0.70721743162 1
  -0.81620336181,    0.18309692900,   -0.74806727448 2
  -1.63240672363,    0.23196559978,   -0.88382704189 4
  -4.08101680906,    0.04256191680,    0.30334591366 10
  -5.71342353269,    0.07447213813,    0.81085790233 14
 -38.36155800520,    0.09614094232,   -1.59293834647 94
 -18.77267732169,    0.05308050300,   -2.82108546389 46
  -2.44861008544,    0.06030004084,    2.06281578031 6
  -3.67291512816,    0.05614682804,   -2.32951440184 9

CC 0.7709526587 0.0410194356 10 1
0.09261611703:dLOD: 365.24249840000:Yr: nino4.dat
PS C:\Users\paul\github\pukpr\GEM-LTE\run> ../restore component_artificial_n4pt58short1pt77_cust8overnight_mf1_n34dtwCCfilter_n4_biquad_N34_N4cDTWccWOW1try2_bend1harmALL44f_2plus1c

PS C:\Users\paul\github\pukpr\python> python .\extract_satellite_periods_harmonics_compare.py ..\GEM-LTE\run\lte_results.csv 0.5 1.0
0.07086999022482894
0.08748778103616814
0.13734115347018572
0.15347018572825025
0.17204301075268819
0.22531769305962854
0.23460410557184752
0.2883675464320626
0.3064516129032258
0.3225806451612903
0.34506353861192574
0.39100684261974583
0.42424242424242425
0.46529814271749753
0.48729227761485827
0.49560117302052786
Correlation Coefficient (NumPy): [[1.         0.62122483]

image

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment