@essrt/physics 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essrt/physics",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "description": "ESSRT (Expanding Solar System Resonance Theory) physics core \u2014 pure, injectable-constants, no I/O, no globals, no DOM. The complete model incl. fitted coefficients; every published version immutably ships one recorded model identity.",
5
5
  "essrt": {
6
6
  "modelVersion": "v11.0",
@@ -17,7 +17,7 @@
17
17
  */
18
18
 
19
19
  /** @type {string} */
20
- export const COEFFICIENTS_HASH = "17f2ead87bad401e";
20
+ export const COEFFICIENTS_HASH = "c6b0f26097c7945c";
21
21
 
22
22
  /** @type {Readonly<Record<string, unknown>>} */
23
23
  export const FITTED_COEFFICIENTS = Object.freeze({
@@ -29,7 +29,7 @@ export const FITTED_COEFFICIENTS = Object.freeze({
29
29
  CARDINAL_POINT_ECC_TERMS: {"SS":[{"order":1,"sin":116.05878933096193,"cos":6.053835966388666},{"order":2,"sin":-36.94641060512612,"cos":-3.6483119819549628}],"WS":[{"order":1,"sin":-116.03037928422094,"cos":-5.962252492120318},{"order":2,"sin":-42.131690533380095,"cos":-4.170223805142553}],"VE":[{"order":1,"sin":-5.9924039162609315,"cos":116.25494834666672},{"order":2,"sin":39.492321674775944,"cos":7.1383778514204534}],"AE":[{"order":1,"sin":5.900809238629194,"cos":-116.36664741389453},{"order":2,"sin":40.1142516966173,"cos":0.6760377717874158}]},
30
30
  CARDINAL_POINT_HARMONICS: {"SS":[[2,-0.0021263537553013138,0.0005395169758932997],[3,-0.007460739084007917,0.00017235850287369416],[4,-0.004278742415321993,0.001602256569838718],[5,-0.007352193936244787,0.000953160956183136],[6,-0.012397619247231017,-0.0009175678001549948],[7,-0.06811088290503968,-0.03231160219280074],[8,0.03688918319841461,0.015354974790808244],[9,0.0031080031062757996,0.00804647663493118],[10,0.0001027726743483649,0.006366123252278851],[11,0.0008265329294285571,0.006070883193881894],[12,-0.00039971822147829433,0.004648050204708476],[13,-0.0237307498736488,0.0037319159567338793],[14,-0.0013954966160393734,0.0010734919088238133],[15,-0.00008786831170625826,0.003722369308591496],[17,-0.00016245215703693673,0.0010098887973135587],[18,-0.0002716645738444743,0.0004939760907387072],[19,0.02253313186107514,0.0026135055828589646],[22,0.0007279740064232152,0.00025313914522270776],[23,0.001514232387144077,0.0009132347720956812],[24,-0.024186270444397466,-0.002633773306876702],[29,0.001494098849250974,0.00003499312126213944],[40,0.0013850859395228387,0.00017554926351556177],[48,0.00026353708701570177,0.000015854257427251558]],"WS":[[2,0.0010176082594428241,-0.0001929748322869152],[3,0.005674643796068353,-0.00038751032557975416],[4,0.0017823169864410006,0.000060840150253674195],[5,0.003902350115173372,0.0014943336753829987],[6,0.008701338455584007,0.003566955934104406],[7,0.06450443942934096,0.03585413473036107],[8,-0.04051461221456849,-0.006219814445349873],[9,-0.00609389958994842,-0.004782187176790898],[10,-0.003089830394353246,-0.0026906957144992483],[11,-0.003442518106690335,-0.0024410319700027745],[12,-0.0022616973859285214,-0.0021203178110572713],[13,0.021245500707680585,-0.0019863972877098434],[14,-0.0016335454958234703,-0.003040081796799866],[15,-0.0007374632894410084,-0.00038183352578103794],[17,-0.0005132043784786084,-0.00033082820944784554],[18,-0.00018870607216962194,-0.0001056600454742545],[19,-0.022722948377056483,-0.002656027088285117],[22,-0.00011725549396773591,0.00004222146728093096],[23,0.0014865134976541309,0.0008791017104325932],[24,0.023201945164141365,0.002362194517433196],[29,-0.0009371061463392303,0.000005809777032338154],[40,-0.0007389257062746273,-0.00004858499516087768],[48,0.00016169791080987097,0.000027838870110670492]],"VE":[[2,0.00023382686550988557,0.0013012690894998854],[3,0.0006768693772480606,0.0017633152103251936],[4,0.0004870205748665226,0.0038107658432373613],[5,0.001695016898998875,0.0031707710324003387],[6,0.004137323645613241,-0.00011763114983737229],[7,0.03662869459686472,-0.054460829908007095],[8,-0.008305363473843638,0.049678485560980624],[9,-0.0033871781141855887,0.01693131909427162],[10,-0.0015308607275127664,0.013836167297877464],[11,-0.0012984522292724427,0.013570132292706451],[12,-0.0007127616014617856,0.011177814913562484],[13,-0.00038177291846210585,-0.013503625822819353],[14,0.00034917468779335537,0.009027401377607817],[15,-0.0009059684907700966,0.004402707201698416],[17,0.0000185452031310814,0.0023828543812022098],[18,0.0000920843886282628,0.001162867581590914],[19,-0.0024912708532988503,0.023134772316608085],[22,-0.00019306319520862917,0.00010657201733974396],[23,-0.001459800845078806,-0.0010452969993960646],[24,0.0030771918634453633,-0.023553574795690507],[29,-0.00028332442093710863,0.0011754980172236009],[40,-0.00043028461825844543,0.0009476095286869555],[48,-0.00019895740011646612,0.00002534765455826324]],"AE":[[2,-0.0013168083603973427,-0.0017062749415338067],[3,-0.0023888831633842983,-0.00382587072239345],[4,-0.0027741804119988576,-0.005421062780396318],[5,-0.004716987188583744,-0.005418621651305338],[6,-0.007073800846606896,-0.003112700938128756],[7,-0.03884750575663966,0.051019584217455304],[8,0.0057073793159041495,-0.04862974809386755],[9,0.0019266340158542571,-0.021750791808213717],[10,0.00042568874139843437,-0.01789445951527781],[11,0.0008002748771934056,-0.016959151398793167],[12,0.000547840376846554,-0.013961686776188286],[13,0.0008691257278281115,0.012017817826432122],[14,0.0010415931945980145,-0.006765227441041762],[15,0.0007188491286263069,-0.007883253528404684],[17,0.0004008867799065113,-0.0031001430938628746],[18,0.00019044788357681412,-0.0015873821724755747],[19,0.002579253675391189,-0.023427869016830194],[22,-0.00013275872731161452,-0.0003639917290360791],[23,-0.0015179007675886482,-0.0007438057276552294],[24,-0.0019837404043797136,0.0240753672774524],[29,-0.00022683018096580752,-0.001226849673275034],[40,-0.0002006324309908082,-0.0010769701927092628],[48,-0.00022039472841982804,-0.00006869982617116371]]},
31
31
  CARDINAL_POINT_JOINT_TERMS: {"quadratureDeg":{"SS":0,"AE":90,"WS":180,"VE":270},"terms":[{"order":1,"div":20,"sin":0.00012298718625863202,"cos":-0.00004570865428244551},{"order":1,"div":21,"sin":-0.00003702220541142342,"cos":-0.000054594667698307694},{"order":1,"div":25,"sin":-0.00019689034303241199,"cos":0.00009610288028515778},{"order":1,"div":26,"sin":-0.0002472253165408766,"cos":0.0001285175417257623},{"order":1,"div":27,"sin":0.0006887110310923808,"cos":-0.00000992591081069649},{"order":1,"div":28,"sin":-0.00022514721185305626,"cos":0.0001272776902790914},{"order":1,"div":30,"sin":-0.0001216143492784022,"cos":0.000037513740681370165},{"order":1,"div":31,"sin":-0.00014744654640213897,"cos":-0.000015049935231815},{"order":1,"div":33,"sin":-0.00006573337723741824,"cos":-0.00008197081294359976},{"order":1,"div":34,"sin":-0.00010697200298420013,"cos":-0.00007190259861871528},{"order":1,"div":35,"sin":0.0008396730326691823,"cos":-0.0001614825119037259},{"order":1,"div":36,"sin":-0.00013829392187181036,"cos":-0.00003067139069964671},{"order":1,"div":37,"sin":-0.00011661732904204659,"cos":-0.000004122283056231254},{"order":2,"div":20,"sin":0.00006554579568392791,"cos":-0.000022078208656396927},{"order":2,"div":21,"sin":-0.00007973348839985569,"cos":0.000017621806735450313},{"order":2,"div":25,"sin":0.00005466836340098929,"cos":-0.000033413296449269965},{"order":2,"div":26,"sin":-0.00002548702993373088,"cos":0.00003515958855386493},{"order":2,"div":27,"sin":0.0000066181130745659535,"cos":0.000023186888746190917},{"order":2,"div":28,"sin":-0.000015323564949997447,"cos":0.000029766712997172834},{"order":2,"div":30,"sin":-0.000021685961975174492,"cos":0.000006001122709939856},{"order":2,"div":31,"sin":0.0000015806927876136162,"cos":-0.000027002383081133103},{"order":2,"div":33,"sin":-0.0000393505991158089,"cos":-0.000006565532033825103},{"order":2,"div":34,"sin":-0.00004522985055780593,"cos":-0.0000024142205715175256},{"order":2,"div":35,"sin":0.00019078545625530915,"cos":-0.00003317580946644653},{"order":2,"div":36,"sin":-0.000052512879391385674,"cos":0.000014524372567384369},{"order":2,"div":37,"sin":-0.00003931964500464408,"cos":0.000017325762654777968}],"note":"phase = order*lambda_X - 2*pi*div*cycles, self-corrected at 2000; counter-rotating — see plan §10g"},
32
- CLIMATE_FORMULA_COEFFS: {"config":{"H_kyr":335.317,"eight_H_kyr":2682.536,"L1_integers":[9,12,14,16,18,20,21,22,25,28,30,31,35,38,39,48,50,53,65,66,68,73,76,96,107,110,113,120,134,141,152,185],"L2_periods_kyr":{"405-kyr (fundamental)":404.5,"202-kyr (2nd harmonic)":202.25,"135-kyr (3rd harmonic)":134.83},"L3_transitions_ma":{"PETM":56,"EOT":34,"Mi-1":23,"MMCT":14,"iNHG":2.7,"MPT":1},"description":"Climate formula = intercept + L1 + L2 + L3 (in normalized units). De-normalize: y_raw = y_norm * y_std + y_mean + (trend_slope*t_kyr + trend_intercept)."},"regimes":{"lr04-post-mpt":{"label":"LR04 post-MPT","regime":"post-mpt","window_kyr":[0,1000],"n_samples":1001,"intercept":0.0012111612363188686,"L1":[{"n":9,"a":-0.0995251935331467,"b":0.0735958539001094},{"n":12,"a":0.1926144837989534,"b":-0.0802736374483427},{"n":14,"a":-0.0737669621963814,"b":-0.06751612296920122},{"n":16,"a":-0.02510150250086739,"b":-0.19506765074130583},{"n":18,"a":-0.06791098457240934,"b":0.04648625033661919},{"n":20,"a":-0.28116864673787,"b":-0.07638759281030251},{"n":21,"a":-0.2455952057968112,"b":0.12970817997145723},{"n":22,"a":-0.10129469171679499,"b":0.5195562020959481},{"n":25,"a":-0.18175433283296516,"b":0.4306624297267865},{"n":28,"a":-0.35824765409381143,"b":-0.6629684201652044},{"n":30,"a":-0.08984243767965358,"b":0.003209254704765256},{"n":31,"a":-0.01666645038841532,"b":0.4046950193876767},{"n":35,"a":-0.17980145973884165,"b":-0.13200740318932608},{"n":38,"a":-0.3593507889049426,"b":0.4002206673273417},{"n":39,"a":0.26598816861942776,"b":0.2575516599692471},{"n":48,"a":-0.19891038366180333,"b":-0.0554511942223533},{"n":50,"a":-0.022647425357587896,"b":0.11287891488448919},{"n":53,"a":-0.03154642045353713,"b":-0.045744861495295976},{"n":65,"a":-0.23249742943974538,"b":0.2894729129917759},{"n":66,"a":-0.19057663961367077,"b":-0.20321144307734298},{"n":68,"a":-0.05170080629061563,"b":-0.09394623038330009},{"n":73,"a":0.010571892367894058,"b":-0.06352637508810456},{"n":76,"a":-0.06325441449557727,"b":-0.019280335092855257},{"n":96,"a":0.011644688677859628,"b":0.0173448233994866},{"n":107,"a":-0.027557602263970027,"b":-0.04239264697467825},{"n":110,"a":-0.024897017314587534,"b":-0.051869808046730456},{"n":113,"a":-0.1652806100198844,"b":-0.09167808542003412},{"n":120,"a":0.09548113724866789,"b":0.17261908401201856},{"n":134,"a":0.014907506134757413,"b":0.03886314134667357},{"n":141,"a":0.06387644524968576,"b":-0.09030933699066153},{"n":152,"a":0.010576081970808749,"b":0.027723293634244323},{"n":185,"a":0.008492200395962825,"b":0.04050000466117239}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":-0.06871018523565597,"b":-0.044501924079275224},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.0012570138054152852,"b":0.010739728384415115},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.000713853261693815,"b":0.0003159747725457649}],"L3":[],"denormalization":{"y_mean":1.5012965895430689e-15,"y_std":0.43131092949760913,"trend_slope":-0.00008678094360729054,"trend_intercept":4.192006855420027},"r2":{"l1_only":0.8702417498406256,"l1_l2":0.8735160573771874,"l1_l2_l3":0.8735160573771874,"delta_l2":0.0032743075365617713,"delta_l3":0}},"lr04-inhg-mpt":{"label":"LR04 inhg-MPT","regime":"inhg-mpt","window_kyr":[1000,2700],"n_samples":1701,"intercept":0.008920278353108338,"L1":[{"n":9,"a":-0.07405028449453253,"b":0.15517081844707203},{"n":12,"a":0.01866923229432145,"b":-0.007063096527562734},{"n":14,"a":0.18279697169825898,"b":-0.07454169575921728},{"n":16,"a":0.10129829826713639,"b":0.10810604004092653},{"n":18,"a":0.038640928064159766,"b":0.02982469347024955},{"n":20,"a":-0.14787599025706077,"b":0.07577094969150679},{"n":21,"a":0.09677337243707089,"b":0.016860261470392657},{"n":22,"a":-0.022375864766743706,"b":0.02220905089979807},{"n":25,"a":-0.14076590923751678,"b":0.17555041743810823},{"n":28,"a":-0.21525004484676127,"b":-0.04578568753479185},{"n":30,"a":0.030143602368885667,"b":0.10254869314008506},{"n":31,"a":0.21710408149563598,"b":0.05383194958090321},{"n":35,"a":-0.0023973677459534523,"b":-0.10873258632641115},{"n":38,"a":0.004178455322226226,"b":-0.0011082608383255457},{"n":39,"a":-0.0875435703779072,"b":0.30052864306222427},{"n":48,"a":-0.10168222495799972,"b":0.04399372091035183},{"n":50,"a":-0.22835671100082874,"b":0.13718694296600267},{"n":53,"a":-0.09736101501073234,"b":-0.23337146539777567},{"n":65,"a":-0.07964560065133833,"b":0.6164308335693638},{"n":66,"a":0.25274046687246615,"b":-0.055605267629155186},{"n":68,"a":0.24482211095872197,"b":-0.21321398654701784},{"n":73,"a":0.008763221081432095,"b":-0.11335849212015736},{"n":76,"a":-0.0030493872100670004,"b":-0.16682188754319888},{"n":96,"a":0.11412815645319081,"b":0.014435303541047611},{"n":107,"a":-0.015380281657131366,"b":-0.0321802670584716},{"n":110,"a":0.04422499587380601,"b":-0.01588269092618962},{"n":113,"a":-0.1222035066635331,"b":-0.024574916330827413},{"n":120,"a":-0.018661416285125867,"b":0.13151829723736955},{"n":134,"a":-0.004310837767722002,"b":0.03107644805302884},{"n":141,"a":-0.007930364842267779,"b":-0.10629193080445061},{"n":152,"a":0.05066586999979433,"b":-0.001158007233720376},{"n":185,"a":-0.00797034945844687,"b":0.04741383351709869}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.09051490688867488,"b":0.07173880137358005},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.023909535713882123,"b":0.015217706592979607},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.00042536814705274734,"b":-0.004832147394600916}],"L3":[],"denormalization":{"y_mean":2.117321276827753e-15,"y_std":0.2533430989053228,"trend_slope":-0.00028446235786389366,"trend_intercept":4.264486402612575},"r2":{"l1_only":0.7215739272152626,"l1_l2":0.7288534879845776,"l1_l2_l3":0.7288534879845776,"delta_l2":0.007279560769315019,"delta_l3":0}},"lr04-pre-inhg":{"label":"LR04 pre-iNHG","regime":"pre-inhg","window_kyr":[2700,5320],"n_samples":2621,"intercept":0.004796508528784117,"L1":[{"n":9,"a":0.013779023691656556,"b":0.1887732393800048},{"n":12,"a":0.13129537834504676,"b":-0.03113522369142426},{"n":14,"a":0.1414594119329862,"b":0.11816702203867133},{"n":16,"a":0.1374774207957588,"b":-0.03532494932806938},{"n":18,"a":0.13889366703557265,"b":0.061983476126678046},{"n":20,"a":-0.08498932818178885,"b":0.09540707265299314},{"n":21,"a":-0.10835127103711396,"b":-0.028764326042978194},{"n":22,"a":0.11148882758014007,"b":-0.03865728945312771},{"n":25,"a":0.12735093632704228,"b":0.13982381914614075},{"n":28,"a":-0.05391956035920037,"b":0.09255118436355968},{"n":30,"a":-0.12842322409247706,"b":-0.022095279888407936},{"n":31,"a":0.060333412991577774,"b":0.09177578600913372},{"n":35,"a":-0.012478495685001064,"b":-0.04169256632491078},{"n":38,"a":-0.154256848048024,"b":-0.04574676829170835},{"n":39,"a":-0.1304853989733588,"b":0.07943845651841604},{"n":48,"a":-0.028123303831937296,"b":0.0662641289229987},{"n":50,"a":-0.12169089657630963,"b":0.22345682911110645},{"n":53,"a":-0.022223821871603613,"b":-0.17818151157130788},{"n":65,"a":0.231248153866511,"b":-0.2916791754030967},{"n":66,"a":-0.022864692071038147,"b":0.3181446212683465},{"n":68,"a":0.20471711753615746,"b":0.07437955465758662},{"n":73,"a":0.09271425866017498,"b":-0.07605761544176559},{"n":76,"a":0.05134351093719412,"b":-0.11159934131904131},{"n":96,"a":0.06193809192068687,"b":0.04756849127167064},{"n":107,"a":-0.08211876323001087,"b":0.004502440118732665},{"n":110,"a":0.03785327266780438,"b":-0.04550095466851478},{"n":113,"a":0.03639647062777348,"b":0.048238754955500465},{"n":120,"a":0.0368133955260415,"b":0.06701066470411021},{"n":134,"a":-0.028450773724023336,"b":0.031595793477797764},{"n":141,"a":-0.004500297237105567,"b":0.03908678223977317},{"n":152,"a":0.013099790949827193,"b":0.05640782705980925},{"n":185,"a":-0.02891241356346971,"b":0.02415316881767574}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.25891193485044134,"b":0.17371828100857337},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.016921027562455088,"b":-0.014197476885633338},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.012255018162150574,"b":0.004398149714187857}],"L3":[],"denormalization":{"y_mean":2.2229875746786803e-16,"y_std":0.1419188719967453,"trend_slope":-0.0001616384823512257,"trend_intercept":3.7150997304817532},"r2":{"l1_only":0.3813015022594486,"l1_l2":0.429750475284833,"l1_l2_l3":0.429750475284833,"delta_l2":0.04844897302538442,"delta_l3":0}},"lr04-full":{"label":"LR04 full","regime":"lr04-full","window_kyr":[0,5320],"n_samples":5321,"intercept":-0.0016330720932757827,"L1":[{"n":9,"a":-0.039185151843874236,"b":0.1028027878544019},{"n":12,"a":0.10301948451508858,"b":-0.02016680911380898},{"n":14,"a":0.055966767020889104,"b":0.02548225007193283},{"n":16,"a":0.0825862002141604,"b":-0.011142801627301923},{"n":18,"a":0.08795737198985376,"b":0.08505384386815164},{"n":20,"a":-0.0833847004330675,"b":0.05896022547761226},{"n":21,"a":0.04517410629977709,"b":0.07053289320749276},{"n":22,"a":-0.043187976112302504,"b":0.08310318850042439},{"n":25,"a":-0.06619299571246737,"b":0.2015362213761424},{"n":28,"a":-0.18004986253238145,"b":-0.15638338680106822},{"n":30,"a":0.08281826590512324,"b":0.09228691110994974},{"n":31,"a":0.07842938153386976,"b":0.13312690720033976},{"n":35,"a":-0.05983013686458974,"b":-0.11181828588827666},{"n":38,"a":-0.10003353278939382,"b":0.028430196111982324},{"n":39,"a":-0.09933535960424142,"b":0.12951479543338562},{"n":48,"a":-0.10124135193351344,"b":-0.004184617430671099},{"n":50,"a":-0.09567881414186163,"b":0.12225222459706246},{"n":53,"a":-0.039106538213266734,"b":-0.13283707936046205},{"n":65,"a":-0.11174691701044243,"b":0.25089233080359813},{"n":66,"a":0.020601599246667206,"b":-0.03797795334999951},{"n":68,"a":0.13350544838291886,"b":-0.09215169710518832},{"n":73,"a":0.038199430871435826,"b":-0.0841857203888797},{"n":76,"a":-0.005813074910088282,"b":-0.09082868201567769},{"n":96,"a":0.046438305781698386,"b":0.012844602230491898},{"n":107,"a":-0.04379619771020141,"b":-0.032852194511152386},{"n":110,"a":0.009950870224294472,"b":-0.04720533633465711},{"n":113,"a":-0.07680036454595568,"b":-0.038416915956664834},{"n":120,"a":0.033451248357208155,"b":0.09791337998530963},{"n":134,"a":-0.007268406349392994,"b":0.021288252328934228},{"n":141,"a":0.011560111434022273,"b":-0.054849284582987094},{"n":152,"a":0.020876832203619983,"b":0.016566773014120094},{"n":185,"a":-0.007060987512414488,"b":0.028239558896544135}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.07942892530837417,"b":0.07145000274630177},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.031051802518720632,"b":0.06979253345037166},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.015693036732781572,"b":-0.013993995124926967}],"L3":[{"label":"iNHG","t_kyr":2700,"beta":-0.19070682708954556},{"label":"MPT","t_kyr":1000,"beta":0.08523111265217007}],"denormalization":{"y_mean":8.786640107689267e-16,"y_std":0.26728652336026737,"trend_slope":-0.0002890388734746666,"trend_intercept":4.253595893576046},"r2":{"l1_only":0.23851034743183974,"l1_l2":0.2474557740025657,"l1_l2_l3":0.25525662694102225,"delta_l2":0.008945426570725945,"delta_l3":0.0078008529384565595}},"cenogrid-d18o":{"label":"CENOGRID δ¹⁸O","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.00001602686211273741,"L1":[{"n":9,"a":0.00962378075462271,"b":-0.003263475086878552},{"n":12,"a":0.0037269530675528356,"b":0.00787528999140077},{"n":14,"a":-0.0031536915286465507,"b":-0.002869531163041282},{"n":16,"a":-0.00022283423149329956,"b":-0.009746906077462656},{"n":18,"a":-0.0011693799218213778,"b":0.006890942568311449},{"n":20,"a":-0.0013096788048939253,"b":-0.007959970387753229},{"n":21,"a":0.003158870772980469,"b":0.0010743005808000303},{"n":22,"a":-0.0014208778904404391,"b":0.0013811686772555942},{"n":25,"a":-0.006546404540596593,"b":-0.0005082057100293619},{"n":28,"a":-0.009112937776092274,"b":-0.01654567050381012},{"n":30,"a":-0.0018422389136167707,"b":-0.001321814940870012},{"n":31,"a":0.007249316579560508,"b":0.01076606883574445},{"n":35,"a":-0.0003746519931765594,"b":-0.008535583295589575},{"n":38,"a":-0.002337493041692442,"b":0.0003424116815364203},{"n":39,"a":0.003253340413687406,"b":0.007527713085922034},{"n":48,"a":-0.0068470522070167615,"b":-0.008939408900639545},{"n":50,"a":-0.012231227013096086,"b":0.006279631132594548},{"n":53,"a":-0.01176198086471335,"b":-0.004470949479484912},{"n":65,"a":-0.007927658464132941,"b":0.012719422318754251},{"n":66,"a":-0.003620029612143832,"b":-0.00576365201448418},{"n":68,"a":0.008347937807959557,"b":-0.004428610084526836},{"n":73,"a":0.006492516280997703,"b":-0.003017982927162457},{"n":76,"a":0.0011690351630563851,"b":-0.005619440895051139},{"n":96,"a":0.0018567939998770625,"b":0.000299913281031477},{"n":107,"a":-0.0020019996095300254,"b":-0.004533038686529572},{"n":110,"a":0.0005001486931849433,"b":-0.002899913348978863},{"n":113,"a":-0.003686640337390224,"b":-0.003791287533903404},{"n":120,"a":0.0004731956477952011,"b":0.01016796154961575},{"n":134,"a":-0.005869594079637888,"b":0.00260064302771034},{"n":141,"a":-0.0010200380686295632,"b":0.0002626403150328052},{"n":152,"a":-0.002231018168438524,"b":-0.002114242582690146},{"n":185,"a":-0.0004689621628445171,"b":0.0000817723920968429}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.06570759747593674,"b":0.05222383705919761},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.003998270781965799,"b":-0.005580221960438302},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.0005452493435179027,"b":-0.005103620540960949}],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.9406820522647168},{"label":"EOT","t_kyr":34000,"beta":-1.6914958810434142},{"label":"Mi-1","t_kyr":23000,"beta":1.378424883226697},{"label":"MMCT","t_kyr":14000,"beta":-0.5721018868779643},{"label":"iNHG","t_kyr":2700,"beta":-0.9477478837426522},{"label":"MPT","t_kyr":1000,"beta":0.9598033678184575}],"denormalization":{"y_mean":3.1388799311243884e-16,"y_std":0.5138368170014185,"trend_slope":-0.000060475169948230774,"trend_intercept":3.5886100819307556},"r2":{"l1_only":0.001140303262665121,"l1_l2":0.0047003500178600666,"l1_l2_l3":0.6176613009398422,"delta_l2":0.0035600467551949455,"delta_l3":0.6129609509219821}},"cenogrid-d13c":{"label":"CENOGRID δ¹³C","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.00005414279487498172,"L1":[{"n":9,"a":0.005338473828240495,"b":-0.023091206831963005},{"n":12,"a":0.0003828507035659112,"b":0.00011796076309235661},{"n":14,"a":0.0037211222379592585,"b":-0.005440279318535575},{"n":16,"a":0.0015179010500321966,"b":-0.011153694047233856},{"n":18,"a":-0.0060441829402797425,"b":0.0014067013519241927},{"n":20,"a":0.011330299958277485,"b":-0.009365743651940341},{"n":21,"a":-0.006083184388396311,"b":-0.0071716042504788675},{"n":22,"a":0.005891788023228518,"b":-0.011625719098538915},{"n":25,"a":-0.002998708433273448,"b":-0.002425284508822263},{"n":28,"a":-0.004606115559338046,"b":-0.00522506041073265},{"n":30,"a":-0.0031268127627834628,"b":-0.0057408911878803134},{"n":31,"a":-0.0006975599235208692,"b":0.008223546177043826},{"n":35,"a":-0.0043981746116429675,"b":-0.010423318145693632},{"n":38,"a":0.002310842419578572,"b":-0.007315922976005076},{"n":39,"a":0.004005157049221934,"b":-0.0006981311160208023},{"n":48,"a":0.009237202711512037,"b":-0.006070723840607467},{"n":50,"a":0.0029511380883168953,"b":-0.007995750349815112},{"n":53,"a":-0.004356464801210605,"b":-0.002089561337944505},{"n":65,"a":0.0013634229096102686,"b":-0.014002661367543303},{"n":66,"a":0.009497211536255361,"b":-0.004104030174694335},{"n":68,"a":-0.005187392326990199,"b":0.005241392389860411},{"n":73,"a":0.006544317568239195,"b":0.000006970297478533888},{"n":76,"a":-0.005485396820039863,"b":-0.003637938532041029},{"n":96,"a":-0.0012790984070198625,"b":-0.0023466893606536765},{"n":107,"a":-0.0031720827718397576,"b":-0.0033220042224514144},{"n":110,"a":0.0028283855123447726,"b":-0.0017211884146841674},{"n":113,"a":0.0038613350038431975,"b":-0.0014070048283321617},{"n":120,"a":-0.0011869967366585062,"b":-0.0022822648297580253},{"n":134,"a":-0.0032142822976851653,"b":0.0013438701253102342},{"n":141,"a":-0.0023577629000963722,"b":0.004452885549992867},{"n":152,"a":-0.0015718917902917864,"b":-0.000023341513222700912},{"n":185,"a":0.0009140186026623447,"b":0.0004586784887968649}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.12063978416524974,"b":0.029906772026227803},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.003802666960653048,"b":-0.016731338007454265},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.016630805150028714,"b":-0.011290616856278541}],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.2947252119737593},{"label":"EOT","t_kyr":34000,"beta":-0.6511389830637635},{"label":"Mi-1","t_kyr":23000,"beta":-0.7995646857161036},{"label":"MMCT","t_kyr":14000,"beta":0.876145231687899},{"label":"iNHG","t_kyr":2700,"beta":1.326238410732585},{"label":"MPT","t_kyr":1000,"beta":-1.3292417525664886}],"denormalization":{"y_mean":-1.6966918546618317e-16,"y_std":0.5116419176812778,"trend_slope":0.000014091551862757799,"trend_intercept":0.17563680335949733},"r2":{"l1_only":0.001192811757378509,"l1_l2":0.00926748748963091,"l1_l2_l3":0.3513849547286956,"delta_l2":0.008074675732252401,"delta_l3":0.34211746723906467}},"epica-co2":{"label":"EPICA CO₂","regime":"epica-co2","window_kyr":[0,800],"n_samples":801,"intercept":0.02509868349579805,"L1":[{"n":9,"a":-0.13003386753012586,"b":0.08414979295891137},{"n":12,"a":-0.6236388603851609,"b":0.34247247340443243},{"n":14,"a":0.6631771893447128,"b":0.9687812023833793},{"n":16,"a":0.9068443378518338,"b":-0.3428782250083507},{"n":18,"a":-0.07606132538425875,"b":-0.5967175302058826},{"n":20,"a":0.5313227446554606,"b":0.15978812783889615},{"n":21,"a":-0.08258585443639624,"b":-0.2753833244031067},{"n":22,"a":0.39541340215045845,"b":-0.5841266391158294},{"n":25,"a":0.4568654969984005,"b":-0.6424030929602188},{"n":28,"a":0.14653083258036675,"b":0.21899842111633155},{"n":30,"a":-0.3510472972154039,"b":-0.22699235742763407},{"n":31,"a":0.07352733077244034,"b":-0.16702990660583567},{"n":35,"a":0.1334650859445657,"b":0.15082020828780487},{"n":38,"a":0.5198104249913299,"b":-0.7317366066994727},{"n":39,"a":-0.5685379187000535,"b":-0.10275769943020215},{"n":48,"a":0.10843173117562208,"b":0.0715025243352368},{"n":50,"a":-0.1027652959577797,"b":-0.009949537880590142},{"n":53,"a":-0.044570340872306206,"b":0.1042863559859665},{"n":65,"a":-0.14563851542868758,"b":0.049247801743060135},{"n":66,"a":0.46015546838724775,"b":0.2189781625962903},{"n":68,"a":0.16464748468015714,"b":-0.07979723358804339},{"n":73,"a":-0.06989554779284464,"b":0.04969251240079462},{"n":76,"a":-0.05535936251895954,"b":0.01884187757558046},{"n":96,"a":-0.019480164361414882,"b":0.06847314776774518},{"n":107,"a":0.02652405058532153,"b":0.06742222433960775},{"n":110,"a":0.020367387274551244,"b":0.04211384421026669},{"n":113,"a":0.15474869793452292,"b":0.059835282976371695},{"n":120,"a":-0.018576590780219695,"b":-0.05721197831802383},{"n":134,"a":-0.0033278247115,"b":-0.025503113862043878},{"n":141,"a":-0.0039267226298340075,"b":-0.03763392771970874},{"n":152,"a":0.0082486103359519,"b":0.018151792942286034},{"n":185,"a":0.05122046644997526,"b":-0.045923008600907284}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.15072042370599267,"b":0.02394293201461654},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.007223335228200088,"b":0.00029000470241465136},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.004616846508728569,"b":-0.0003472516198667081}],"L3":[],"denormalization":{"y_mean":2.980553797944989e-14,"y_std":25.51737494167102,"trend_slope":-0.006455378442643299,"trend_intercept":227.89326737247322},"r2":{"l1_only":0.8336437529715351,"l1_l2":0.8451857942676443,"l1_l2_l3":0.8451857942676443,"delta_l2":0.01154204129610914,"delta_l3":0},"carbon_amplification_ratios":{"9":{"n":9,"period_kyr":298.05955555555556,"lr04_post_mpt_amp":0.12378050678154681,"epica_amp":0.15488703741717694,"ratio":1.2513039528148666,"label":"g₂−g₇ Venus-Uranus ecc / Mercury Axial = 8H/9"},"12":{"n":12,"period_kyr":223.54466666666667,"lr04_post_mpt_amp":0.2086724616194606,"epica_amp":0.7114863478818493,"ratio":3.4095842947371295,"label":"s₅−s₁ Jupiter-Mercury nodal"},"14":{"n":14,"period_kyr":191.6097142857143,"lr04_post_mpt_amp":0.09999995786236443,"epica_amp":1.1740276838978454,"ratio":11.740281786055608,"label":"g₂−g₈ Venus-Neptune ecc"},"16":{"n":16,"period_kyr":167.6585,"lr04_post_mpt_amp":0.19667606309241886,"epica_amp":0.969500969715249,"ratio":4.929430427228334,"label":"Mars Axial = 8H/16"},"18":{"n":18,"period_kyr":149.02977777777778,"lr04_post_mpt_amp":0.08229746834473614,"epica_amp":0.6015456226041533,"ratio":7.3094061664732735,"label":"s₄−s₆ Mars-Saturn nodal"},"20":{"n":20,"period_kyr":134.1268,"lr04_post_mpt_amp":0.2913603820764891,"epica_amp":0.5548297980340198,"ratio":1.9042733060679595,"label":"g₃−g₂ Earth-Venus ecc"},"21":{"n":21,"period_kyr":127.73980952380953,"lr04_post_mpt_amp":0.27774307743287857,"epica_amp":0.28750025862996426,"ratio":1.0351302408228111,"label":"Mars Obliq / Jupiter Axial = 8H/21"},"22":{"n":22,"period_kyr":121.93345454545455,"lr04_post_mpt_amp":0.5293385133412892,"epica_amp":0.7053762748526169,"ratio":1.3325617862190728,"label":"s₂−s₄ Venus-Mars nodal / g₄−g₂ (Round 1 C8: highest L2 ratio at 12.84)"},"25":{"n":25,"period_kyr":107.30144,"lr04_post_mpt_amp":0.46744493352879074,"epica_amp":0.7882942446779952,"ratio":1.6863895362542054,"label":"s₁−s₄ Mercury-Mars nodal (100-kyr centroid)"},"28":{"n":28,"period_kyr":95.80485714285714,"lr04_post_mpt_amp":0.753570506190407,"epica_amp":0.26349875397834727,"ratio":0.3496670209539334,"label":"g₄−g₅ Mars-Jupiter ecc (Berger 95k)"},"30":{"n":30,"period_kyr":89.41786666666667,"lr04_post_mpt_amp":0.08989973817527222,"epica_amp":0.41804274328445756,"ratio":4.65009967514504,"label":"g₃−g₇ Earth-Uranus ecc"},"31":{"n":31,"period_kyr":86.53341935483871,"lr04_post_mpt_amp":0.40503805905833284,"epica_amp":0.18249728236681784,"ratio":0.4505682325041334,"label":"g₄−g₇ Mars-Uranus"},"35":{"n":35,"period_kyr":76.64388571428572,"lr04_post_mpt_amp":0.22305721109394244,"epica_amp":0.20139430079862528,"ratio":0.9028818203676291,"label":"Earth.Axial(104) − Mercury.ICRF(93) + Saturn.Obliq(24) (3-term beat; close to Mars apsidal at 8H/36)"},"38":{"n":38,"period_kyr":70.59305263157894,"lr04_post_mpt_amp":0.5378750524448473,"epica_amp":0.8975752556269172,"ratio":1.6687430501695426,"label":"s₈−s₃ Neptune-Earth nodal"},"39":{"n":39,"period_kyr":68.78297435897436,"lr04_post_mpt_amp":0.37024662510066425,"epica_amp":0.5777495216717852,"ratio":1.560445072293918,"label":"s₅−s₃ Earth nodal"},"48":{"n":48,"period_kyr":55.88616666666667,"lr04_post_mpt_amp":0.2064949773461111,"epica_amp":0.12988476166222698,"ratio":0.6289971956292383,"label":"s₇−s₆ Uranus-Saturn nodal"},"50":{"n":50,"period_kyr":53.65072,"lr04_post_mpt_amp":0.11512842959420262,"epica_amp":0.10324582004772566,"ratio":0.8967882252163082,"label":"g₆−g₅ Saturn-Jupiter ecc"},"53":{"n":53,"period_kyr":50.61388679245283,"lr04_post_mpt_amp":0.055567697420850166,"epica_amp":0.11341146031290357,"ratio":2.0409602264777162,"label":"Mars.AscNode(64) − Uranus.AscNode(11) s-beat (close to Mars Ecc cycle at 8H/52)"},"65":{"n":65,"period_kyr":41.269784615384616,"lr04_post_mpt_amp":0.37128105533683464,"epica_amp":0.15373979040182092,"ratio":0.4140792755028793,"label":"k+s₃ Earth obliquity (Berger 41k)"},"66":{"n":66,"period_kyr":40.64448484848485,"lr04_post_mpt_amp":0.27859351421742606,"epica_amp":0.5096022868676461,"ratio":1.8291965205978595,"label":"obliquity-band arithmetic-mean (Round 2 C10: EPICA CO₂ ratio 15.79)"},"68":{"n":68,"period_kyr":39.44905882352941,"lr04_post_mpt_amp":0.10723277285574526,"epica_amp":0.18296555058209002,"ratio":1.706246567252571,"label":"k+s₄ Berger Mars obliquity sub-peak"},"73":{"n":73,"period_kyr":36.747068493150685,"lr04_post_mpt_amp":0.06440004068378287,"epica_amp":0.08575974224521059,"ratio":1.3316721749650462,"label":"2|s₄| Mars nodal harmonic"},"76":{"n":76,"period_kyr":35.29652631578947,"lr04_post_mpt_amp":0.06612754550466153,"epica_amp":0.058477990467172725,"ratio":0.884321201110518,"label":"g₄−s₃ Mars-Earth beat"},"96":{"n":96,"period_kyr":27.943083333333334,"lr04_post_mpt_amp":0.02089118649487506,"epica_amp":0.07119022944738418,"ratio":3.407668083612593,"label":"k+g₆ Saturn climatic precession sub-peak (Round 1 A1 sideband)"},"107":{"n":107,"period_kyr":25.070429906542056,"lr04_post_mpt_amp":0.05056241647764536,"epica_amp":0.07245192609139588,"ratio":1.4329205591554015,"label":"k+g₇ Uranus climatic precession sub-peak (Round 1 A1)"},"110":{"n":110,"period_kyr":24.38669090909091,"lr04_post_mpt_amp":0.057535540824498514,"epica_amp":0.04678040549800916,"ratio":0.8130697100893534,"label":"k+g₃ Earth secondary precession sideband (Round 1 A1)"},"113":{"n":113,"period_kyr":23.739256637168143,"lr04_post_mpt_amp":0.18900410417456068,"epica_amp":0.16591389514230775,"ratio":0.8778322347385259,"label":"k+g₅ Jupiter climatic precession (Berger 23.7k)"},"120":{"n":120,"period_kyr":22.354466666666667,"lr04_post_mpt_amp":0.19726630664015402,"epica_amp":0.06015230825228382,"ratio":0.30492945945407424,"label":"k+g₂ Venus climatic precession = H/15"},"134":{"n":134,"period_kyr":20.01892537313433,"lr04_post_mpt_amp":0.04162424166864014,"epica_amp":0.02571931635893234,"ratio":0.617892730963778,"label":"k+g₅ Jupiter precession sub-peak (Round 1 A1)"},"141":{"n":141,"period_kyr":19.0250780141844,"lr04_post_mpt_amp":0.11061634872580531,"epica_amp":0.037838230220557524,"ratio":0.3420672500621997,"label":"k+g₃ Earth climatic precession — Berger quintet 19-kyr peak (subthreshold LR04, 3σ in Cheng monsoon; beats with n=113 to form n=28 per Wigley 1976)"},"152":{"n":152,"period_kyr":17.648263157894736,"lr04_post_mpt_amp":0.029672116873991274,"epica_amp":0.019938083144926386,"ratio":0.6719467717654775,"label":"k+g₄ Mars climatic precession sub-peak (Round 1 A1)"},"185":{"n":185,"period_kyr":14.500194594594594,"lr04_post_mpt_amp":0.041380766608657416,"epica_amp":0.06879286956009355,"ratio":1.6624358415269462,"label":"k+g₂ Venus precession sub-peak (Round 1 A1)"}}},"cenco2pip":{"label":"CenCO2PIP CO₂ (deep-time)","regime":"cenco2pip","window_kyr":[0,66000],"n_samples":661,"intercept":0.016379319171493434,"L1":[{"n":9,"a":0.0006135442349535857,"b":0.0004105385698334332},{"n":12,"a":0.0009729852475356464,"b":0.0005557567257649787},{"n":14,"a":0.0004695868449019586,"b":0.00015407085145136278},{"n":16,"a":0.000842228378656555,"b":-0.0009167033431056666},{"n":18,"a":0.0014499143192751932,"b":-0.0008315948258633104},{"n":20,"a":0.00032353217406463664,"b":-0.0002458235013227764},{"n":21,"a":0.0005181933791588079,"b":-0.0038870728442294286},{"n":22,"a":-0.0009990008691799425,"b":-0.0018635121462031428},{"n":25,"a":-0.013842815571713638,"b":-0.01887004259261632},{"n":28,"a":0.02821324316085222,"b":0.0346425697982303},{"n":30,"a":-0.005296842377337352,"b":-0.005193701588804456},{"n":31,"a":-0.0005937265903358129,"b":0.0003634694731705667},{"n":35,"a":0.0007770885325481615,"b":0.0005748167289352294},{"n":38,"a":0.0010509178473896504,"b":-0.000045071154070572234},{"n":39,"a":0.00048817353035711744,"b":0.00015418928078026836},{"n":48,"a":0.000984784365003719,"b":-0.00026376977450865937},{"n":50,"a":-0.006175741987117522,"b":0.0011271318797576179},{"n":53,"a":-0.0268574890971669,"b":-0.025277947402187712},{"n":65,"a":0.0008976656542442501,"b":0.0004443970733142626},{"n":66,"a":0.0009028265819185512,"b":-0.0002822115559156487},{"n":68,"a":0.0011730682755470008,"b":0.00008468544339761345},{"n":73,"a":0.0019158661673268716,"b":-0.0004157426300817781},{"n":76,"a":0.002235410382868609,"b":-0.003027740766027717},{"n":96,"a":0.0011641204811583372,"b":-0.00012646082385569336},{"n":107,"a":-0.09477349741045246,"b":0.196928960347087},{"n":110,"a":-0.009636391900466917,"b":0.003373064883293271},{"n":113,"a":-0.00006780002848554532,"b":0.002767788950030298},{"n":120,"a":0.00045191861243690847,"b":0.00011733688354313375},{"n":134,"a":-0.354527681860923,"b":-0.3766906478126637},{"n":141,"a":0.001393189816738785,"b":0.00023905583871641114},{"n":152,"a":0.0010180816333163472,"b":-0.001285695246414477},{"n":185,"a":-0.006581037204011087,"b":-0.020021001163745916}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.0014312276927094154,"b":0.002240492688354507},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.0006738387319812872,"b":0.0003909848895904283},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.0000946586449433579,"b":-0.0005426081695293755}],"L3":[{"label":"PETM","t_kyr":56000,"beta":-1.8798688093473028},{"label":"EOT","t_kyr":34000,"beta":1.8726117606990103},{"label":"Mi-1","t_kyr":23000,"beta":-0.9161078719668736},{"label":"MMCT","t_kyr":14000,"beta":0.3800604717521474},{"label":"iNHG","t_kyr":2700,"beta":-0.7402184932465288},{"label":"MPT","t_kyr":1000,"beta":0.38426286683854527}],"denormalization":{"y_mean":-2.091425032821257e-13,"y_std":209.18154000668048,"trend_slope":0.013251639299066168,"trend_intercept":214.15971983891893},"r2":{"l1_only":0.16106750642431011,"l1_l2":0.16107154209439578,"l1_l2_l3":0.7626295084612135,"delta_l2":0.000004035670085666965,"delta_l3":0.6015579663668177}}},"meta":{"script":"export_climate_formula_browser.py","consumer":"src/script.js — Climate Formula Explorer modal"}},
32
+ CLIMATE_FORMULA_COEFFS: {"config":{"H_kyr":335.317,"eight_H_kyr":2682.536,"L1_integers":[9,12,14,16,18,20,21,22,25,28,30,31,35,38,39,48,50,53,65,66,68,73,76,96,107,110,113,120,134,141,152,185],"L2_periods_kyr":{"405-kyr (fundamental)":404.5,"202-kyr (2nd harmonic)":202.25,"135-kyr (3rd harmonic)":134.83},"L3_transitions_ma":{"PETM":56,"EOT":34,"Mi-1":23,"MMCT":14,"iNHG":2.7,"MPT":1},"description":"Climate formula = intercept + L1 + L2 + L3 (in normalized units). De-normalize: y_raw = y_norm * y_std + y_mean + (trend_slope*t_kyr + trend_intercept)."},"regimes":{"lr04-post-mpt":{"label":"LR04 post-MPT","regime":"post-mpt","window_kyr":[0,1000],"n_samples":1001,"intercept":0.0012111612363188686,"L1":[{"n":9,"a":-0.0995251935331467,"b":0.0735958539001094},{"n":12,"a":0.1926144837989534,"b":-0.0802736374483427},{"n":14,"a":-0.0737669621963814,"b":-0.06751612296920122},{"n":16,"a":-0.02510150250086739,"b":-0.19506765074130583},{"n":18,"a":-0.06791098457240934,"b":0.04648625033661919},{"n":20,"a":-0.28116864673787,"b":-0.07638759281030251},{"n":21,"a":-0.2455952057968112,"b":0.12970817997145723},{"n":22,"a":-0.10129469171679499,"b":0.5195562020959481},{"n":25,"a":-0.18175433283296516,"b":0.4306624297267865},{"n":28,"a":-0.35824765409381143,"b":-0.6629684201652044},{"n":30,"a":-0.08984243767965358,"b":0.003209254704765256},{"n":31,"a":-0.01666645038841532,"b":0.4046950193876767},{"n":35,"a":-0.17980145973884165,"b":-0.13200740318932608},{"n":38,"a":-0.3593507889049426,"b":0.4002206673273417},{"n":39,"a":0.26598816861942776,"b":0.2575516599692471},{"n":48,"a":-0.19891038366180333,"b":-0.0554511942223533},{"n":50,"a":-0.022647425357587896,"b":0.11287891488448919},{"n":53,"a":-0.03154642045353713,"b":-0.045744861495295976},{"n":65,"a":-0.23249742943974538,"b":0.2894729129917759},{"n":66,"a":-0.19057663961367077,"b":-0.20321144307734298},{"n":68,"a":-0.05170080629061563,"b":-0.09394623038330009},{"n":73,"a":0.010571892367894058,"b":-0.06352637508810456},{"n":76,"a":-0.06325441449557727,"b":-0.019280335092855257},{"n":96,"a":0.011644688677859628,"b":0.0173448233994866},{"n":107,"a":-0.027557602263970027,"b":-0.04239264697467825},{"n":110,"a":-0.024897017314587534,"b":-0.051869808046730456},{"n":113,"a":-0.1652806100198844,"b":-0.09167808542003412},{"n":120,"a":0.09548113724866789,"b":0.17261908401201856},{"n":134,"a":0.014907506134757413,"b":0.03886314134667357},{"n":141,"a":0.06387644524968576,"b":-0.09030933699066153},{"n":152,"a":0.010576081970808749,"b":0.027723293634244323},{"n":185,"a":0.008492200395962825,"b":0.04050000466117239}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":-0.06871018523565597,"b":-0.044501924079275224},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.0012570138054152852,"b":0.010739728384415115},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.000713853261693815,"b":0.0003159747725457649}],"L3":[],"denormalization":{"y_mean":1.5012965895430689e-15,"y_std":0.43131092949760913,"trend_slope":-0.00008678094360729054,"trend_intercept":4.192006855420027},"r2":{"l1_only":0.8702417498406256,"l1_l2":0.8735160573771874,"l1_l2_l3":0.8735160573771874,"delta_l2":0.0032743075365617713,"delta_l3":0}},"lr04-inhg-mpt":{"label":"LR04 inhg-MPT","regime":"inhg-mpt","window_kyr":[1000,2700],"n_samples":1701,"intercept":0.008920278353108338,"L1":[{"n":9,"a":-0.07405028449453253,"b":0.15517081844707203},{"n":12,"a":0.01866923229432145,"b":-0.007063096527562734},{"n":14,"a":0.18279697169825898,"b":-0.07454169575921728},{"n":16,"a":0.10129829826713639,"b":0.10810604004092653},{"n":18,"a":0.038640928064159766,"b":0.02982469347024955},{"n":20,"a":-0.14787599025706077,"b":0.07577094969150679},{"n":21,"a":0.09677337243707089,"b":0.016860261470392657},{"n":22,"a":-0.022375864766743706,"b":0.02220905089979807},{"n":25,"a":-0.14076590923751678,"b":0.17555041743810823},{"n":28,"a":-0.21525004484676127,"b":-0.04578568753479185},{"n":30,"a":0.030143602368885667,"b":0.10254869314008506},{"n":31,"a":0.21710408149563598,"b":0.05383194958090321},{"n":35,"a":-0.0023973677459534523,"b":-0.10873258632641115},{"n":38,"a":0.004178455322226226,"b":-0.0011082608383255457},{"n":39,"a":-0.0875435703779072,"b":0.30052864306222427},{"n":48,"a":-0.10168222495799972,"b":0.04399372091035183},{"n":50,"a":-0.22835671100082874,"b":0.13718694296600267},{"n":53,"a":-0.09736101501073234,"b":-0.23337146539777567},{"n":65,"a":-0.07964560065133833,"b":0.6164308335693638},{"n":66,"a":0.25274046687246615,"b":-0.055605267629155186},{"n":68,"a":0.24482211095872197,"b":-0.21321398654701784},{"n":73,"a":0.008763221081432095,"b":-0.11335849212015736},{"n":76,"a":-0.0030493872100670004,"b":-0.16682188754319888},{"n":96,"a":0.11412815645319081,"b":0.014435303541047611},{"n":107,"a":-0.015380281657131366,"b":-0.0321802670584716},{"n":110,"a":0.04422499587380601,"b":-0.01588269092618962},{"n":113,"a":-0.1222035066635331,"b":-0.024574916330827413},{"n":120,"a":-0.018661416285125867,"b":0.13151829723736955},{"n":134,"a":-0.004310837767722002,"b":0.03107644805302884},{"n":141,"a":-0.007930364842267779,"b":-0.10629193080445061},{"n":152,"a":0.05066586999979433,"b":-0.001158007233720376},{"n":185,"a":-0.00797034945844687,"b":0.04741383351709869}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.09051490688867488,"b":0.07173880137358005},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.023909535713882123,"b":0.015217706592979607},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.00042536814705274734,"b":-0.004832147394600916}],"L3":[],"denormalization":{"y_mean":2.117321276827753e-15,"y_std":0.2533430989053228,"trend_slope":-0.00028446235786389366,"trend_intercept":4.264486402612575},"r2":{"l1_only":0.7215739272152626,"l1_l2":0.7288534879845776,"l1_l2_l3":0.7288534879845776,"delta_l2":0.007279560769315019,"delta_l3":0}},"lr04-pre-inhg":{"label":"LR04 pre-iNHG","regime":"pre-inhg","window_kyr":[2700,5320],"n_samples":2621,"intercept":0.004796508528784117,"L1":[{"n":9,"a":0.013779023691656556,"b":0.1887732393800048},{"n":12,"a":0.13129537834504676,"b":-0.03113522369142426},{"n":14,"a":0.1414594119329862,"b":0.11816702203867133},{"n":16,"a":0.1374774207957588,"b":-0.03532494932806938},{"n":18,"a":0.13889366703557265,"b":0.061983476126678046},{"n":20,"a":-0.08498932818178885,"b":0.09540707265299314},{"n":21,"a":-0.10835127103711396,"b":-0.028764326042978194},{"n":22,"a":0.11148882758014007,"b":-0.03865728945312771},{"n":25,"a":0.12735093632704228,"b":0.13982381914614075},{"n":28,"a":-0.05391956035920037,"b":0.09255118436355968},{"n":30,"a":-0.12842322409247706,"b":-0.022095279888407936},{"n":31,"a":0.060333412991577774,"b":0.09177578600913372},{"n":35,"a":-0.012478495685001064,"b":-0.04169256632491078},{"n":38,"a":-0.154256848048024,"b":-0.04574676829170835},{"n":39,"a":-0.1304853989733588,"b":0.07943845651841604},{"n":48,"a":-0.028123303831937296,"b":0.0662641289229987},{"n":50,"a":-0.12169089657630963,"b":0.22345682911110645},{"n":53,"a":-0.022223821871603613,"b":-0.17818151157130788},{"n":65,"a":0.231248153866511,"b":-0.2916791754030967},{"n":66,"a":-0.022864692071038147,"b":0.3181446212683465},{"n":68,"a":0.20471711753615746,"b":0.07437955465758662},{"n":73,"a":0.09271425866017498,"b":-0.07605761544176559},{"n":76,"a":0.05134351093719412,"b":-0.11159934131904131},{"n":96,"a":0.06193809192068687,"b":0.04756849127167064},{"n":107,"a":-0.08211876323001087,"b":0.004502440118732665},{"n":110,"a":0.03785327266780438,"b":-0.04550095466851478},{"n":113,"a":0.03639647062777348,"b":0.048238754955500465},{"n":120,"a":0.0368133955260415,"b":0.06701066470411021},{"n":134,"a":-0.028450773724023336,"b":0.031595793477797764},{"n":141,"a":-0.004500297237105567,"b":0.03908678223977317},{"n":152,"a":0.013099790949827193,"b":0.05640782705980925},{"n":185,"a":-0.02891241356346971,"b":0.02415316881767574}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.25891193485044134,"b":0.17371828100857337},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.016921027562455088,"b":-0.014197476885633338},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.012255018162150574,"b":0.004398149714187857}],"L3":[],"denormalization":{"y_mean":2.2229875746786803e-16,"y_std":0.1419188719967453,"trend_slope":-0.0001616384823512257,"trend_intercept":3.7150997304817532},"r2":{"l1_only":0.3813015022594486,"l1_l2":0.429750475284833,"l1_l2_l3":0.429750475284833,"delta_l2":0.04844897302538442,"delta_l3":0}},"lr04-full":{"label":"LR04 full","regime":"lr04-full","window_kyr":[0,5320],"n_samples":5321,"intercept":-0.0016330720932757827,"L1":[{"n":9,"a":-0.039185151843874236,"b":0.1028027878544019},{"n":12,"a":0.10301948451508858,"b":-0.02016680911380898},{"n":14,"a":0.055966767020889104,"b":0.02548225007193283},{"n":16,"a":0.0825862002141604,"b":-0.011142801627301923},{"n":18,"a":0.08795737198985376,"b":0.08505384386815164},{"n":20,"a":-0.0833847004330675,"b":0.05896022547761226},{"n":21,"a":0.04517410629977709,"b":0.07053289320749276},{"n":22,"a":-0.043187976112302504,"b":0.08310318850042439},{"n":25,"a":-0.06619299571246737,"b":0.2015362213761424},{"n":28,"a":-0.18004986253238145,"b":-0.15638338680106822},{"n":30,"a":0.08281826590512324,"b":0.09228691110994974},{"n":31,"a":0.07842938153386976,"b":0.13312690720033976},{"n":35,"a":-0.05983013686458974,"b":-0.11181828588827666},{"n":38,"a":-0.10003353278939382,"b":0.028430196111982324},{"n":39,"a":-0.09933535960424142,"b":0.12951479543338562},{"n":48,"a":-0.10124135193351344,"b":-0.004184617430671099},{"n":50,"a":-0.09567881414186163,"b":0.12225222459706246},{"n":53,"a":-0.039106538213266734,"b":-0.13283707936046205},{"n":65,"a":-0.11174691701044243,"b":0.25089233080359813},{"n":66,"a":0.020601599246667206,"b":-0.03797795334999951},{"n":68,"a":0.13350544838291886,"b":-0.09215169710518832},{"n":73,"a":0.038199430871435826,"b":-0.0841857203888797},{"n":76,"a":-0.005813074910088282,"b":-0.09082868201567769},{"n":96,"a":0.046438305781698386,"b":0.012844602230491898},{"n":107,"a":-0.04379619771020141,"b":-0.032852194511152386},{"n":110,"a":0.009950870224294472,"b":-0.04720533633465711},{"n":113,"a":-0.07680036454595568,"b":-0.038416915956664834},{"n":120,"a":0.033451248357208155,"b":0.09791337998530963},{"n":134,"a":-0.007268406349392994,"b":0.021288252328934228},{"n":141,"a":0.011560111434022273,"b":-0.054849284582987094},{"n":152,"a":0.020876832203619983,"b":0.016566773014120094},{"n":185,"a":-0.007060987512414488,"b":0.028239558896544135}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.07942892530837417,"b":0.07145000274630177},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":-0.031051802518720632,"b":0.06979253345037166},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.015693036732781572,"b":-0.013993995124926967}],"L3":[{"label":"iNHG","t_kyr":2700,"beta":-0.19070682708954556},{"label":"MPT","t_kyr":1000,"beta":0.08523111265217007}],"denormalization":{"y_mean":8.786640107689267e-16,"y_std":0.26728652336026737,"trend_slope":-0.0002890388734746666,"trend_intercept":4.253595893576046},"r2":{"l1_only":0.23851034743183974,"l1_l2":0.2474557740025657,"l1_l2_l3":0.25525662694102225,"delta_l2":0.008945426570725945,"delta_l3":0.0078008529384565595}},"cenogrid-d18o":{"label":"CENOGRID δ¹⁸O","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.00001602686211273741,"L1":[{"n":9,"a":0.00962378075462271,"b":-0.003263475086878552},{"n":12,"a":0.0037269530675528356,"b":0.00787528999140077},{"n":14,"a":-0.0031536915286465507,"b":-0.002869531163041282},{"n":16,"a":-0.00022283423149329956,"b":-0.009746906077462656},{"n":18,"a":-0.0011693799218213778,"b":0.006890942568311449},{"n":20,"a":-0.0013096788048939253,"b":-0.007959970387753229},{"n":21,"a":0.003158870772980469,"b":0.0010743005808000303},{"n":22,"a":-0.0014208778904404391,"b":0.0013811686772555942},{"n":25,"a":-0.006546404540596593,"b":-0.0005082057100293619},{"n":28,"a":-0.009112937776092274,"b":-0.01654567050381012},{"n":30,"a":-0.0018422389136167707,"b":-0.001321814940870012},{"n":31,"a":0.007249316579560508,"b":0.01076606883574445},{"n":35,"a":-0.0003746519931765594,"b":-0.008535583295589575},{"n":38,"a":-0.002337493041692442,"b":0.0003424116815364203},{"n":39,"a":0.003253340413687406,"b":0.007527713085922034},{"n":48,"a":-0.0068470522070167615,"b":-0.008939408900639545},{"n":50,"a":-0.012231227013096086,"b":0.006279631132594548},{"n":53,"a":-0.01176198086471335,"b":-0.004470949479484912},{"n":65,"a":-0.007927658464132941,"b":0.012719422318754251},{"n":66,"a":-0.003620029612143832,"b":-0.00576365201448418},{"n":68,"a":0.008347937807959557,"b":-0.004428610084526836},{"n":73,"a":0.006492516280997703,"b":-0.003017982927162457},{"n":76,"a":0.0011690351630563851,"b":-0.005619440895051139},{"n":96,"a":0.0018567939998770625,"b":0.000299913281031477},{"n":107,"a":-0.0020019996095300254,"b":-0.004533038686529572},{"n":110,"a":0.0005001486931849433,"b":-0.002899913348978863},{"n":113,"a":-0.003686640337390224,"b":-0.003791287533903404},{"n":120,"a":0.0004731956477952011,"b":0.01016796154961575},{"n":134,"a":-0.005869594079637888,"b":0.00260064302771034},{"n":141,"a":-0.0010200380686295632,"b":0.0002626403150328052},{"n":152,"a":-0.002231018168438524,"b":-0.002114242582690146},{"n":185,"a":-0.0004689621628445171,"b":0.0000817723920968429}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.06570759747593674,"b":0.05222383705919761},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.003998270781965799,"b":-0.005580221960438302},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.0005452493435179027,"b":-0.005103620540960949}],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.9406820522647168},{"label":"EOT","t_kyr":34000,"beta":-1.6914958810434142},{"label":"Mi-1","t_kyr":23000,"beta":1.378424883226697},{"label":"MMCT","t_kyr":14000,"beta":-0.5721018868779643},{"label":"iNHG","t_kyr":2700,"beta":-0.9477478837426522},{"label":"MPT","t_kyr":1000,"beta":0.9598033678184575}],"denormalization":{"y_mean":3.1388799311243884e-16,"y_std":0.5138368170014185,"trend_slope":-0.000060475169948230774,"trend_intercept":3.5886100819307556},"r2":{"l1_only":0.001140303262665121,"l1_l2":0.0047003500178600666,"l1_l2_l3":0.6176613009398422,"delta_l2":0.0035600467551949455,"delta_l3":0.6129609509219821}},"cenogrid-d13c":{"label":"CENOGRID δ¹³C","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.00005414279487498172,"L1":[{"n":9,"a":0.005338473828240495,"b":-0.023091206831963005},{"n":12,"a":0.0003828507035659112,"b":0.00011796076309235661},{"n":14,"a":0.0037211222379592585,"b":-0.005440279318535575},{"n":16,"a":0.0015179010500321966,"b":-0.011153694047233856},{"n":18,"a":-0.0060441829402797425,"b":0.0014067013519241927},{"n":20,"a":0.011330299958277485,"b":-0.009365743651940341},{"n":21,"a":-0.006083184388396311,"b":-0.0071716042504788675},{"n":22,"a":0.005891788023228518,"b":-0.011625719098538915},{"n":25,"a":-0.002998708433273448,"b":-0.002425284508822263},{"n":28,"a":-0.004606115559338046,"b":-0.00522506041073265},{"n":30,"a":-0.0031268127627834628,"b":-0.0057408911878803134},{"n":31,"a":-0.0006975599235208692,"b":0.008223546177043826},{"n":35,"a":-0.0043981746116429675,"b":-0.010423318145693632},{"n":38,"a":0.002310842419578572,"b":-0.007315922976005076},{"n":39,"a":0.004005157049221934,"b":-0.0006981311160208023},{"n":48,"a":0.009237202711512037,"b":-0.006070723840607467},{"n":50,"a":0.0029511380883168953,"b":-0.007995750349815112},{"n":53,"a":-0.004356464801210605,"b":-0.002089561337944505},{"n":65,"a":0.0013634229096102686,"b":-0.014002661367543303},{"n":66,"a":0.009497211536255361,"b":-0.004104030174694335},{"n":68,"a":-0.005187392326990199,"b":0.005241392389860411},{"n":73,"a":0.006544317568239195,"b":0.000006970297478533888},{"n":76,"a":-0.005485396820039863,"b":-0.003637938532041029},{"n":96,"a":-0.0012790984070198625,"b":-0.0023466893606536765},{"n":107,"a":-0.0031720827718397576,"b":-0.0033220042224514144},{"n":110,"a":0.0028283855123447726,"b":-0.0017211884146841674},{"n":113,"a":0.0038613350038431975,"b":-0.0014070048283321617},{"n":120,"a":-0.0011869967366585062,"b":-0.0022822648297580253},{"n":134,"a":-0.0032142822976851653,"b":0.0013438701253102342},{"n":141,"a":-0.0023577629000963722,"b":0.004452885549992867},{"n":152,"a":-0.0015718917902917864,"b":-0.000023341513222700912},{"n":185,"a":0.0009140186026623447,"b":0.0004586784887968649}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.12063978416524974,"b":0.029906772026227803},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.003802666960653048,"b":-0.016731338007454265},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.016630805150028714,"b":-0.011290616856278541}],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.2947252119737593},{"label":"EOT","t_kyr":34000,"beta":-0.6511389830637635},{"label":"Mi-1","t_kyr":23000,"beta":-0.7995646857161036},{"label":"MMCT","t_kyr":14000,"beta":0.876145231687899},{"label":"iNHG","t_kyr":2700,"beta":1.326238410732585},{"label":"MPT","t_kyr":1000,"beta":-1.3292417525664886}],"denormalization":{"y_mean":-1.6966918546618317e-16,"y_std":0.5116419176812778,"trend_slope":0.000014091551862757799,"trend_intercept":0.17563680335949733},"r2":{"l1_only":0.001192811757378509,"l1_l2":0.00926748748963091,"l1_l2_l3":0.3513849547286956,"delta_l2":0.008074675732252401,"delta_l3":0.34211746723906467}},"epica-co2":{"label":"EPICA CO₂","regime":"epica-co2","window_kyr":[0,800],"n_samples":801,"intercept":0.02509868349579805,"L1":[{"n":9,"a":-0.13003386753012586,"b":0.08414979295891137},{"n":12,"a":-0.6236388603851609,"b":0.34247247340443243},{"n":14,"a":0.6631771893447128,"b":0.9687812023833793},{"n":16,"a":0.9068443378518338,"b":-0.3428782250083507},{"n":18,"a":-0.07606132538425875,"b":-0.5967175302058826},{"n":20,"a":0.5313227446554606,"b":0.15978812783889615},{"n":21,"a":-0.08258585443639624,"b":-0.2753833244031067},{"n":22,"a":0.39541340215045845,"b":-0.5841266391158294},{"n":25,"a":0.4568654969984005,"b":-0.6424030929602188},{"n":28,"a":0.14653083258036675,"b":0.21899842111633155},{"n":30,"a":-0.3510472972154039,"b":-0.22699235742763407},{"n":31,"a":0.07352733077244034,"b":-0.16702990660583567},{"n":35,"a":0.1334650859445657,"b":0.15082020828780487},{"n":38,"a":0.5198104249913299,"b":-0.7317366066994727},{"n":39,"a":-0.5685379187000535,"b":-0.10275769943020215},{"n":48,"a":0.10843173117562208,"b":0.0715025243352368},{"n":50,"a":-0.1027652959577797,"b":-0.009949537880590142},{"n":53,"a":-0.044570340872306206,"b":0.1042863559859665},{"n":65,"a":-0.14563851542868758,"b":0.049247801743060135},{"n":66,"a":0.46015546838724775,"b":0.2189781625962903},{"n":68,"a":0.16464748468015714,"b":-0.07979723358804339},{"n":73,"a":-0.06989554779284464,"b":0.04969251240079462},{"n":76,"a":-0.05535936251895954,"b":0.01884187757558046},{"n":96,"a":-0.019480164361414882,"b":0.06847314776774518},{"n":107,"a":0.02652405058532153,"b":0.06742222433960775},{"n":110,"a":0.020367387274551244,"b":0.04211384421026669},{"n":113,"a":0.15474869793452292,"b":0.059835282976371695},{"n":120,"a":-0.018576590780219695,"b":-0.05721197831802383},{"n":134,"a":-0.0033278247115,"b":-0.025503113862043878},{"n":141,"a":-0.0039267226298340075,"b":-0.03763392771970874},{"n":152,"a":0.0082486103359519,"b":0.018151792942286034},{"n":185,"a":0.05122046644997526,"b":-0.045923008600907284}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.15072042370599267,"b":0.02394293201461654},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.007223335228200088,"b":0.00029000470241465136},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":0.004616846508728569,"b":-0.0003472516198667081}],"L3":[],"denormalization":{"y_mean":2.980553797944989e-14,"y_std":25.51737494167102,"trend_slope":-0.006455378442643299,"trend_intercept":227.89326737247322},"r2":{"l1_only":0.8336437529715351,"l1_l2":0.8451857942676443,"l1_l2_l3":0.8451857942676443,"delta_l2":0.01154204129610914,"delta_l3":0},"carbon_amplification_ratios":{"9":{"n":9,"period_kyr":298.05955555555556,"lr04_post_mpt_amp":0.12378050678154681,"epica_amp":0.15488703741717694,"ratio":1.2513039528148666,"label":"g₂−g₇ Venus-Uranus ecc / Mercury Axial = 8H/9"},"12":{"n":12,"period_kyr":223.54466666666667,"lr04_post_mpt_amp":0.2086724616194606,"epica_amp":0.7114863478818493,"ratio":3.4095842947371295,"label":"s₅−s₁ Jupiter-Mercury nodal"},"14":{"n":14,"period_kyr":191.6097142857143,"lr04_post_mpt_amp":0.09999995786236443,"epica_amp":1.1740276838978454,"ratio":11.740281786055608,"label":"g₂−g₈ Venus-Neptune ecc"},"16":{"n":16,"period_kyr":167.6585,"lr04_post_mpt_amp":0.19667606309241886,"epica_amp":0.969500969715249,"ratio":4.929430427228334,"label":"Mars Axial = 8H/16"},"18":{"n":18,"period_kyr":149.02977777777778,"lr04_post_mpt_amp":0.08229746834473614,"epica_amp":0.6015456226041533,"ratio":7.3094061664732735,"label":"s₄−s₆ Mars-Saturn nodal"},"20":{"n":20,"period_kyr":134.1268,"lr04_post_mpt_amp":0.2913603820764891,"epica_amp":0.5548297980340198,"ratio":1.9042733060679595,"label":"g₃−g₂ Earth-Venus ecc"},"21":{"n":21,"period_kyr":127.73980952380953,"lr04_post_mpt_amp":0.27774307743287857,"epica_amp":0.28750025862996426,"ratio":1.0351302408228111,"label":"Mars Obliq / Jupiter Axial = 8H/21"},"22":{"n":22,"period_kyr":121.93345454545455,"lr04_post_mpt_amp":0.5293385133412892,"epica_amp":0.7053762748526169,"ratio":1.3325617862190728,"label":"s₂−s₄ Venus-Mars nodal / g₄−g₂ (Round 1 C8: highest L2 ratio at 12.84)"},"25":{"n":25,"period_kyr":107.30144,"lr04_post_mpt_amp":0.46744493352879074,"epica_amp":0.7882942446779952,"ratio":1.6863895362542054,"label":"s₁−s₄ Mercury-Mars nodal (100-kyr centroid)"},"28":{"n":28,"period_kyr":95.80485714285714,"lr04_post_mpt_amp":0.753570506190407,"epica_amp":0.26349875397834727,"ratio":0.3496670209539334,"label":"g₄−g₅ Mars-Jupiter ecc (Berger 95k)"},"30":{"n":30,"period_kyr":89.41786666666667,"lr04_post_mpt_amp":0.08989973817527222,"epica_amp":0.41804274328445756,"ratio":4.65009967514504,"label":"g₃−g₇ Earth-Uranus ecc"},"31":{"n":31,"period_kyr":86.53341935483871,"lr04_post_mpt_amp":0.40503805905833284,"epica_amp":0.18249728236681784,"ratio":0.4505682325041334,"label":"g₄−g₇ Mars-Uranus"},"35":{"n":35,"period_kyr":76.64388571428572,"lr04_post_mpt_amp":0.22305721109394244,"epica_amp":0.20139430079862528,"ratio":0.9028818203676291,"label":"s₄−s₈ Mars-Neptune nodal (75.98 kyr, 0.9%) — lattice-exact: Mars.Peri_ecl(36) − Venus.AscNode(1), the 8H-modulation sideband of the Mars perihelion line"},"38":{"n":38,"period_kyr":70.59305263157894,"lr04_post_mpt_amp":0.5378750524448473,"epica_amp":0.8975752556269172,"ratio":1.6687430501695426,"label":"s₈−s₃ Neptune-Earth nodal"},"39":{"n":39,"period_kyr":68.78297435897436,"lr04_post_mpt_amp":0.37024662510066425,"epica_amp":0.5777495216717852,"ratio":1.560445072293918,"label":"s₅−s₃ Earth nodal"},"48":{"n":48,"period_kyr":55.88616666666667,"lr04_post_mpt_amp":0.2064949773461111,"epica_amp":0.12988476166222698,"ratio":0.6289971956292383,"label":"s₇−s₆ Uranus-Saturn nodal"},"50":{"n":50,"period_kyr":53.65072,"lr04_post_mpt_amp":0.11512842959420262,"epica_amp":0.10324582004772566,"ratio":0.8967882252163082,"label":"g₆−g₅ Saturn-Jupiter ecc"},"53":{"n":53,"period_kyr":50.61388679245283,"lr04_post_mpt_amp":0.055567697420850166,"epica_amp":0.11341146031290357,"ratio":2.0409602264777162,"label":"s₆−s₈ Saturn-Neptune nodal (50.52 kyr, 0.2%) — lattice-exact: Mars.AscNode(64) − Uranus.AscNode(11) (= Mars.Ecc(52) + Venus.AscNode(1), the 8H sideband of the Mars eccentricity line)"},"65":{"n":65,"period_kyr":41.269784615384616,"lr04_post_mpt_amp":0.37128105533683464,"epica_amp":0.15373979040182092,"ratio":0.4140792755028793,"label":"k+s₃ Earth obliquity (Berger 41k)"},"66":{"n":66,"period_kyr":40.64448484848485,"lr04_post_mpt_amp":0.27859351421742606,"epica_amp":0.5096022868676461,"ratio":1.8291965205978595,"label":"obliquity-band arithmetic-mean (Round 2 C10: EPICA CO₂ ratio 15.79)"},"68":{"n":68,"period_kyr":39.44905882352941,"lr04_post_mpt_amp":0.10723277285574526,"epica_amp":0.18296555058209002,"ratio":1.706246567252571,"label":"k+s₄ Berger Mars obliquity sub-peak"},"73":{"n":73,"period_kyr":36.747068493150685,"lr04_post_mpt_amp":0.06440004068378287,"epica_amp":0.08575974224521059,"ratio":1.3316721749650462,"label":"2|s₄| Mars nodal harmonic"},"76":{"n":76,"period_kyr":35.29652631578947,"lr04_post_mpt_amp":0.06612754550466153,"epica_amp":0.058477990467172725,"ratio":0.884321201110518,"label":"g₄−s₃ Mars-Earth beat"},"96":{"n":96,"period_kyr":27.943083333333334,"lr04_post_mpt_amp":0.02089118649487506,"epica_amp":0.07119022944738418,"ratio":3.407668083612593,"label":"k+g₆ Saturn climatic precession sub-peak (Round 1 A1 sideband)"},"107":{"n":107,"period_kyr":25.070429906542056,"lr04_post_mpt_amp":0.05056241647764536,"epica_amp":0.07245192609139588,"ratio":1.4329205591554015,"label":"k+g₇ Uranus climatic precession sub-peak (Round 1 A1)"},"110":{"n":110,"period_kyr":24.38669090909091,"lr04_post_mpt_amp":0.057535540824498514,"epica_amp":0.04678040549800916,"ratio":0.8130697100893534,"label":"k+g₃ Earth secondary precession sideband (Round 1 A1)"},"113":{"n":113,"period_kyr":23.739256637168143,"lr04_post_mpt_amp":0.18900410417456068,"epica_amp":0.16591389514230775,"ratio":0.8778322347385259,"label":"k+g₅ Jupiter climatic precession (Berger 23.7k)"},"120":{"n":120,"period_kyr":22.354466666666667,"lr04_post_mpt_amp":0.19726630664015402,"epica_amp":0.06015230825228382,"ratio":0.30492945945407424,"label":"k+g₂ Venus climatic precession = H/15"},"134":{"n":134,"period_kyr":20.01892537313433,"lr04_post_mpt_amp":0.04162424166864014,"epica_amp":0.02571931635893234,"ratio":0.617892730963778,"label":"k+g₅ Jupiter precession sub-peak (Round 1 A1)"},"141":{"n":141,"period_kyr":19.0250780141844,"lr04_post_mpt_amp":0.11061634872580531,"epica_amp":0.037838230220557524,"ratio":0.3420672500621997,"label":"k+g₃ Earth climatic precession — Berger quintet 19-kyr peak (subthreshold LR04, 3σ in Cheng monsoon; beats with n=113 to form n=28 per Wigley 1976)"},"152":{"n":152,"period_kyr":17.648263157894736,"lr04_post_mpt_amp":0.029672116873991274,"epica_amp":0.019938083144926386,"ratio":0.6719467717654775,"label":"k+g₄ Mars climatic precession sub-peak (Round 1 A1)"},"185":{"n":185,"period_kyr":14.500194594594594,"lr04_post_mpt_amp":0.041380766608657416,"epica_amp":0.06879286956009355,"ratio":1.6624358415269462,"label":"k+g₂ Venus precession sub-peak (Round 1 A1)"}}},"cenco2pip":{"label":"CenCO2PIP CO₂ (deep-time)","regime":"cenco2pip","window_kyr":[0,66000],"n_samples":661,"intercept":0.016379319171493434,"L1":[{"n":9,"a":0.0006135442349535857,"b":0.0004105385698334332},{"n":12,"a":0.0009729852475356464,"b":0.0005557567257649787},{"n":14,"a":0.0004695868449019586,"b":0.00015407085145136278},{"n":16,"a":0.000842228378656555,"b":-0.0009167033431056666},{"n":18,"a":0.0014499143192751932,"b":-0.0008315948258633104},{"n":20,"a":0.00032353217406463664,"b":-0.0002458235013227764},{"n":21,"a":0.0005181933791588079,"b":-0.0038870728442294286},{"n":22,"a":-0.0009990008691799425,"b":-0.0018635121462031428},{"n":25,"a":-0.013842815571713638,"b":-0.01887004259261632},{"n":28,"a":0.02821324316085222,"b":0.0346425697982303},{"n":30,"a":-0.005296842377337352,"b":-0.005193701588804456},{"n":31,"a":-0.0005937265903358129,"b":0.0003634694731705667},{"n":35,"a":0.0007770885325481615,"b":0.0005748167289352294},{"n":38,"a":0.0010509178473896504,"b":-0.000045071154070572234},{"n":39,"a":0.00048817353035711744,"b":0.00015418928078026836},{"n":48,"a":0.000984784365003719,"b":-0.00026376977450865937},{"n":50,"a":-0.006175741987117522,"b":0.0011271318797576179},{"n":53,"a":-0.0268574890971669,"b":-0.025277947402187712},{"n":65,"a":0.0008976656542442501,"b":0.0004443970733142626},{"n":66,"a":0.0009028265819185512,"b":-0.0002822115559156487},{"n":68,"a":0.0011730682755470008,"b":0.00008468544339761345},{"n":73,"a":0.0019158661673268716,"b":-0.0004157426300817781},{"n":76,"a":0.002235410382868609,"b":-0.003027740766027717},{"n":96,"a":0.0011641204811583372,"b":-0.00012646082385569336},{"n":107,"a":-0.09477349741045246,"b":0.196928960347087},{"n":110,"a":-0.009636391900466917,"b":0.003373064883293271},{"n":113,"a":-0.00006780002848554532,"b":0.002767788950030298},{"n":120,"a":0.00045191861243690847,"b":0.00011733688354313375},{"n":134,"a":-0.354527681860923,"b":-0.3766906478126637},{"n":141,"a":0.001393189816738785,"b":0.00023905583871641114},{"n":152,"a":0.0010180816333163472,"b":-0.001285695246414477},{"n":185,"a":-0.006581037204011087,"b":-0.020021001163745916}],"L2":[{"p_kyr":404.5,"label":"405-kyr (fundamental)","a":0.0014312276927094154,"b":0.002240492688354507},{"p_kyr":202.25,"label":"202-kyr (2nd harmonic)","a":0.0006738387319812872,"b":0.0003909848895904283},{"p_kyr":134.83,"label":"135-kyr (3rd harmonic)","a":-0.0000946586449433579,"b":-0.0005426081695293755}],"L3":[{"label":"PETM","t_kyr":56000,"beta":-1.8798688093473028},{"label":"EOT","t_kyr":34000,"beta":1.8726117606990103},{"label":"Mi-1","t_kyr":23000,"beta":-0.9161078719668736},{"label":"MMCT","t_kyr":14000,"beta":0.3800604717521474},{"label":"iNHG","t_kyr":2700,"beta":-0.7402184932465288},{"label":"MPT","t_kyr":1000,"beta":0.38426286683854527}],"denormalization":{"y_mean":-2.091425032821257e-13,"y_std":209.18154000668048,"trend_slope":0.013251639299066168,"trend_intercept":214.15971983891893},"r2":{"l1_only":0.16106750642431011,"l1_l2":0.16107154209439578,"l1_l2_l3":0.7626295084612135,"delta_l2":0.000004035670085666965,"delta_l3":0.6015579663668177}}},"meta":{"script":"export_climate_formula_browser.py","consumer":"src/script.js — Climate Formula Explorer modal"}},
33
33
  DT_RESONATOR: {"display_name":"Core-mantle swing","driver":"Resonator","functional_class":"episode (2-kick IMPULSE-CONSISTENT windowed damped oscillation — sin-only kicks, displacement-continuous; zero before first kick)","kick_epochs_year":[-1600,1600],"kick_coefficients_s":[{"cos":0,"sin":760.3221892468256},{"cos":0,"sin":-76.3493982442574}],"T0_lattice_n":685,"T0_yr":3916.1109489051096,"Q":1.8,"drive_tones":[{"pair":"bond-hallstatt","dn":726,"period_yr":3694.9531680440773,"phi_locked_rad":-0.4616152283022974,"amp_s":186.14,"phase_convention":"cos(2π·dn/8H·y − φ_locked), kick-1-envelope-shared"}],"rms_s":31.269890503801374,"raw_at_j2000_s":-149.82685977847515,"lod_raw_at_j2000_s_per_day":0.0006237191440304154,"deep_time_checks_s":{"900":-245.8439379884609,"2000":-82.32559425279462,"5000":5.334235000224568,"100000":-1.545960510634632e-17,"-100000":0,"-5000":0,"-801":0},"regeneration_rule":"drive-tone menu = Δn difference tones of the ACTIVE flag set (any count); refit this script after any stack change (3rd/5th cycle)","status":"JOINT WORLD SHIPPED (--joint --write): amplitudes from the joint equality-constrained fit (kick2 ~0 — the termination is carried by flag interference in the joint world); phases/epochs/T0/Q remain the Stage-1/3 convention. Default-ON.","impulse_consistent":true},
34
34
  DT_STACK: {"bond":{"lattice_n":1830,"period_yr":1465.8666666666666,"cos_coeff_s":145.55092942423886,"sin_coeff_s":329.34746510072887,"raw_at_j2000_s":152.06408184557264,"amplitude_s":360.0761389269436,"phase_deg":66.15757672735135,"source":"Stage D anchored fit (USNO LOD constraint active)","joint_mode":true},"hallstatt":{"lattice_n":1104,"period_yr":2429.8333333333335,"cos_coeff_s":-73.00792820024905,"sin_coeff_s":32.70844569690342,"raw_at_j2000_s":-61.685166343361075,"amplitude_s":80,"phase_deg":155.86703617290817,"target_amp_source":"CAPPED from anchored quad-fit free amp 100.73 s → 80 s prior","joint_mode":true},"jose5":{"lattice_n":2989,"period_yr":897.469387755102,"cos_coeff_s":-34.5239711109052,"sin_coeff_s":36.16760178299611,"raw_at_j2000_s":31.185593588239136,"amplitude_s":50.00000000000001,"phase_deg":133.66807127984734,"target_amp_source":"CAPPED from anchored quad-fit free amp 86.44 s → 50 s prior","joint_mode":true},"jose4":{"lattice_n":3749,"period_yr":715.5337423312883,"cos_coeff_s":38.542513112148065,"sin_coeff_s":-31.850819188835548,"raw_at_j2000_s":41.35969402774114,"amplitude_s":50,"phase_deg":-39.56969682845315,"target_amp_source":"unconstrained: quad-fit free amp 47.06 s (below 50 s prior — no cap applied)","joint_mode":true}},
35
35
  ELONGATION_CORRECTION: {"venus":{"cosVwE_sinEl_ra":-0.00013078499578943705,"cosVwE_sinEl_dec":0.00023700025209189867,"sinEl_d_ra":0.0007755608738916972,"sinEl_d_dec":-0.0003797976373342036,"sinVwE_sinEl_ra":-0.0006776328282247138,"sinVwE_sinEl_dec":-0.00043481049672109887,"sin2VwE_sinEl_ra":0.0018944674227536075,"sin2VwE_sinEl_dec":0.007226452365794387,"cos2VwE_sinEl_ra":0.0022333742453015813,"cos2VwE_sinEl_dec":0.00643045263681664,"cos4VwE_sinEl_ra":-0.005168878088645803,"cos4VwE_sinEl_dec":-0.001292412216853322,"sin4VwE_sinEl_ra":0.002473729458674539,"sin4VwE_sinEl_dec":0.000937054827431583,"sinVwE_sinEl_d2_ra":0.0002912977464846237,"sinVwE_sinEl_d2_dec":0.00009508378159137789,"cos3VwE_sinEl_ra":-0.0004372175697726782,"cos3VwE_sinEl_dec":0.002048597993702653,"sin3VwE_sinEl_ra":-0.011369485008173839,"sin3VwE_sinEl_dec":-0.007442688270196107,"sin2syn_ra":-0.0010979280775001478,"sin2syn_dec":-0.00036294328226461474,"cos1syn_ra":0.0006738224187823681,"cos1syn_dec":-0.0006544590346891286,"sin3VwE_sinEl_d2_ra":0.002112353789427301,"sin3VwE_sinEl_d2_dec":0.0024447308843828846,"sin2VwE_sinEl_d2_ra":-0.000381924061656027,"sin2VwE_sinEl_d2_dec":-0.001112791195900534,"cos2VwE_sinEl_d2_ra":-0.0009611408402006777,"cos2VwE_sinEl_d2_dec":-0.0016972655933243698,"cosEl_d_ra":0.00019899967515409905,"cosEl_d_dec":-0.00034331917768957944,"cosVwE_cosEl_d_ra":-0.005960071418246849,"cosVwE_cosEl_d_dec":0.0031678195308038003,"sinVwE_cosEl_d_ra":-0.007190793725682356,"sinVwE_cosEl_d_dec":0.0013596615637549907,"cosEl_d2_ra":-0.00020663256097824926,"cosEl_d2_dec":-0.00004027080936022818,"cosVwE_cosEl_d2_ra":0.0005814547197492051,"cosVwE_cosEl_d2_dec":-0.000935906915634443,"sinVwE_cosEl_d2_ra":0.0007813571841350501,"sinVwE_cosEl_d2_dec":-0.00047223215820587456},"mars":{"cosVwE_sinEl_ra":-0.0011140487798611339,"cosVwE_sinEl_dec":-0.0036743796624175667,"sinEl_d_ra":0.0033627186215710245,"sinEl_d_dec":-0.012701815547956385,"sinVwE_sinEl_ra":-0.006356141564681869,"sinVwE_sinEl_dec":-0.00013369961659808483,"sin2VwE_sinEl_ra":0.00031724439612794344,"sin2VwE_sinEl_dec":0.01739168539941939,"cos2VwE_sinEl_ra":0.004143516153439421,"cos2VwE_sinEl_dec":0.00022778444218044325,"cos4VwE_sinEl_ra":0.005428306044246736,"cos4VwE_sinEl_dec":-0.01080111524328561,"sin4VwE_sinEl_ra":-0.0222174954712206,"sin4VwE_sinEl_dec":0.004286393953615477,"sinVwE_sinEl_d2_ra":0.005283420045811403,"sinVwE_sinEl_d2_dec":-0.0019096834272178508,"cos3VwE_sinEl_ra":-0.01713337342795123,"cos3VwE_sinEl_dec":0.002581862227614283,"sin3VwE_sinEl_ra":0.01566231796548501,"sin3VwE_sinEl_dec":-0.0046477676601650916,"sin2syn_ra":0.00256480149974197,"sin2syn_dec":-0.012209611899495584,"cos1syn_ra":-0.001006874061925775,"cos1syn_dec":0.009872831735740904,"sin3VwE_sinEl_d2_ra":-0.037392015803510585,"sin3VwE_sinEl_d2_dec":0.002473538068428684,"sin2VwE_sinEl_d2_ra":0.0038455948792325678,"sin2VwE_sinEl_d2_dec":-0.014778577154897714,"cos2VwE_sinEl_d2_ra":-0.011807978628793191,"cos2VwE_sinEl_d2_dec":0.0012557544306986937,"cosEl_d_ra":0.000284882868911627,"cosEl_d_dec":-0.0021820884562501544,"cosVwE_cosEl_d_ra":-0.0003505964419227473,"cosVwE_cosEl_d_dec":0.0055104246995418575,"sinVwE_cosEl_d_ra":0.0002518986669389568,"sinVwE_cosEl_d_dec":-0.0020101942296837116,"cosEl_d2_ra":0.00006092485835005758,"cosEl_d2_dec":-0.001141320906493464,"cosVwE_cosEl_d2_ra":0.00023028197939182156,"cosVwE_cosEl_d2_dec":-0.002735862075021542,"sinVwE_cosEl_d2_ra":0.00011442353028413846,"sinVwE_cosEl_d2_dec":-0.0005857378114159205}},
@@ -616,6 +616,10 @@ export declare const REFERENCE_DATA: {
616
616
  "sunModelTrueErrorDeg": number;
617
617
  "sunTropicalYearDiffSeconds": number;
618
618
  "sunSiderealYearDiffSeconds": number;
619
+ "frameworkSunVsJplRmsArcsec": number;
620
+ "meeusCh25SunVsJplRmsArcsec": number;
621
+ "moonSeriesLonVsJplRmsArcsec": number;
622
+ "moonSeriesLatVsJplRmsArcsec": number;
619
623
  "mercuryNewtonianArcsecCy": number;
620
624
  "mercuryObservedICRFArcsecCy": number;
621
625
  "mercuryPark2017RateArcsecCy": number;
@@ -764,6 +764,10 @@ export const REFERENCE_DATA = Object.freeze({
764
764
  "sunModelTrueErrorDeg": 0.003,
765
765
  "sunTropicalYearDiffSeconds": 0.1,
766
766
  "sunSiderealYearDiffSeconds": 0.02,
767
+ "frameworkSunVsJplRmsArcsec": 0.95,
768
+ "meeusCh25SunVsJplRmsArcsec": 1.28,
769
+ "moonSeriesLonVsJplRmsArcsec": 2.96,
770
+ "moonSeriesLatVsJplRmsArcsec": 0.65,
767
771
  "mercuryNewtonianArcsecCy": 532,
768
772
  "mercuryObservedICRFArcsecCy": 575,
769
773
  "mercuryPark2017RateArcsecCy": 575.31,
@@ -1,167 +1,178 @@
1
1
  /**
2
- * Sun planetary completion v2 — the DERIVED table (Stage D2, plan §12i
3
- * item 10; supersedes the v1 fitted 10-term table).
2
+ * Sun planetary completion v3 — the DERIVED table on FRAMEWORK carriers
3
+ * (FQ-5 N3, plan §12i; supersedes v2's IAU-literal argument rates, which
4
+ * superseded the v1 fitted 10-term table).
4
5
  *
5
6
  * DERIVATION, not fit: the table is extracted from the framework's OWN
6
7
  * physics — twin epoch-phased 8-body RK4 integrations (Sun, planets, EMB)
7
8
  * built entirely from framework constants, planet phases taken from the
8
9
  * engine scene graph, differenced full-vs-base3 to isolate the planetary
9
10
  * signal, with the EMB secular-perihelion channel projected out (that
10
- * channel belongs to the framework's own ϖ(t)/e(t) laws). The 68 terms
11
+ * channel belongs to the framework's own ϖ(t)/e(t) laws). The 70 terms
11
12
  * below are the analytic reading of that derived signal: main synodic
12
13
  * tones plus eccentricity-modulation sidebands (main ± mean anomaly of
13
- * the modulating planet, main ± M_E). Table-vs-signal fidelity 0.64″.
14
- * JPL Horizons enters only as VALIDATION, never as fit target: the
15
- * derived signal matches JPL residuals at corr −0.997 / slope −0.999
16
- * (0.60″ combined), and shipping it takes the all-phase Sun residual
17
- * 3.48″ → 2.12″, the 179-eclipse syzygy fleet 5.51″ → 3.99″, and the
18
- * NASA centerline reference set 5.30″ 3.94″ shadow-plane (jointly
19
- * with the derived Moon series extension, moon/series-extension.cjs —
20
- * the pre-registered acceptance was all four gates, never a subset).
21
- * Instruments: tools/explore/d2-derived-sun.mjs (signal),
22
- * d2-sun-table-extraction.mjs (table), d2-joint-preview.mjs /
23
- * d2-widened-centerlines.mjs (validation).
14
+ * the modulating planet, main ± M_E). Table-vs-signal fidelity 0.61″
15
+ * (the v2 IAU-carrier projection read 0.64″ the framework carriers are
16
+ * the signal's NATURAL basis, since the lab's tones sit at the framework
17
+ * synodic frequencies). JPL Horizons enters only as VALIDATION, never as
18
+ * fit target. Instruments: tools/explore/d2-derived-sun.mjs (signal),
19
+ * n2-sun-framework-carriers.mjs (carrier feasibility + conditioning),
20
+ * n3-carrier-swap-preview.mjs (table + the swap gates).
24
21
  *
25
- * DECLARED INPUTS (the three non-framework residues):
22
+ * THE CARRIERS (FQ-5 N3, the doctrine's final mile for the Sun side):
23
+ * the six planetary mean-longitude RATES are no longer instrument
24
+ * literals — they are INJECTED by the model wiring, computed live from
25
+ * the framework's own planet records (one revolution per the record's
26
+ * tropical period; Earth from the framework mean solar year), as is the
27
+ * Moon-elongation rate for the EMB-wobble carrier. The J2000 phase
28
+ * anchors (ARG_L0, PERI, D0) remain declared epoch constants — the
29
+ * "anchored by design" class; any constant phase offset is absorbed into
30
+ * the fitted cos/sin split exactly. N3 gates measured before the swap:
31
+ * all-phase JPL sd 2.15″ → 2.14″ (unchanged), syzygy fleet unchanged to
32
+ * 0.01″, BCE arbitration detrended sd 0.199 min ≈ 5.5 km — below the
33
+ * ancient corpus's discriminating power; conditioning probe: the v2 and
34
+ * v3 composed tables agree at 0.146″ RMS in-window, diverging only
35
+ * 0.93″ at ±600 yr (benign near-degenerate repartition, no
36
+ * ill-conditioning).
37
+ *
38
+ * DECLARED INPUTS (the remaining non-framework residues):
26
39
  * (i) planet/Sun mass ratios — observed IAU constants (shared with the
27
40
  * whole framework; nothing here fits them);
28
- * (ii) argument polynomials IAU-class instrument literals, phase
29
- * carriers only; their framework-native derivation is research
30
- * item 20.3e;
41
+ * (ii) the J2000 phase anchors ARG_L0 / PERI / D0 — epoch initial
42
+ * conditions ("anchored by design" class; the RATES are now
43
+ * framework-derived, injected);
31
44
  * (iii) the 2lE term (+1.42″ sin 2lE) — DECLARED FITTED, not derived: a
32
- * finder-annual artifact of the current SUN_HARMONICS chain, to be
33
- * absorbed at the next Step-0 refit. Everything else in this file
34
- * is derived. The Earth-around-EMB wobble, fitted −6.64″ in v1, is
35
- * now DERIVED: amplitude a_M·μ/AU with μ = 1/(1+M_E/M_M), injected
36
- * by the factory below from live package constants (6.4399″ at the
37
- * current constants), sign negative in the subtract convention.
45
+ * finder-annual artifact, measured chain-independent at E4/E5
46
+ * (re-fit noise 0.12″/−0.03″). Everything else in this file is
47
+ * derived. The Earth-around-EMB wobble is DERIVED: amplitude
48
+ * a_M·μ/AU with μ = 1/(1+M_E/M_M), injected by the model wiring
49
+ * from live package constants (6.4399″ at current constants), sign
50
+ * negative in the subtract convention.
38
51
  *
39
52
  * THE CONSTANT-ATTRIBUTION RULE (v1's 20.3h-lite trap, still honored):
40
53
  * the table carries NO constant term — the constant is attributed to the
41
54
  * tier's existing anchors, so the terms ship without the +6″ syzygy-mean
42
55
  * penalty an eclipse-sample fit produced.
43
56
  *
44
- * Sign convention: unchanged from v1 — the evaluation models
45
- * (framework − truth), so consumers SUBTRACT it from the finder Sun
46
- * longitude. TERMS literals are stored in the extraction's native sign
47
- * (d2-sun-table.local.json) and negated in the evaluator, exactly as the
48
- * validated joint-preview instrument composes them.
57
+ * Sign convention: unchanged — the evaluation models (framework − truth),
58
+ * so consumers SUBTRACT it from the finder Sun longitude. TERMS literals
59
+ * are stored in the extraction's native sign
60
+ * (n3-framework-table.local.json) and negated in the evaluator.
49
61
  *
50
62
  * MATCHED PAIR: the amplitudes are the residual of the CURRENT finder
51
- * Sun chain (framework rate + EoC + SUN_HARMONICS) and must be
52
- * RE-DERIVED whenever that chain moves a Step-0 SUN_HARMONICS refit,
53
- * an eccentricity/perihelion definition change, or 20.3e. Re-derivation
54
- * is the D2 instrument chain above (regenerate d2-sun-table.local.json,
55
- * re-embed). ENFORCED: PAIRED_SUN_HARMONICS_SHA256 below is the
56
- * fingerprint of the SUN_LONGITUDE_HARMONICS this table was derived
57
- * under; the create-model parity gate (test:model, in `npm run check`)
58
- * recomputes it from live constants and fails on mismatch. The api
59
- * centerline gate (≤8″ shadow-plane) backstops gross staleness
63
+ * Sun chain AND pair with the injected carrier rates re-derive the
64
+ * table (the N2/N3 instrument chain) whenever either moves: a Step-0
65
+ * SUN_HARMONICS refit, an eccentricity/perihelion definition change, or
66
+ * a planet-record period change. ENFORCED: PAIRED_SUN_HARMONICS_SHA256
67
+ * below is the fingerprint of the SUN_LONGITUDE_HARMONICS this table was
68
+ * derived under; the create-model parity gate (test:model, in `npm run
69
+ * check`) recomputes it from live constants and fails on mismatch. The
70
+ * carrier↔table pairing is enforced by both living in this one module
71
+ * with the rates injected from the same constants the records read. The
72
+ * api centerline gate (≤8″ shadow-plane) backstops gross staleness
60
73
  * independently.
61
74
  *
62
- * E4/E5 PAIRING VERDICT (20.3h Phase 0): the framework-native Sun
63
- * landing REPLACED the finder Sun form (Meeus Ch. 25 → the assembled
64
- * framework Sun with the f(Y)+torque drift). The re-derivation this
65
- * header calls for was MEASURED INSTEAD: the residual 2lE re-fit under
66
- * the new chain is noise (−0.12″ sin / −0.03″ cos vs the declared-fitted
67
- * +1.42″ tools/explore/e3b-native-sun.mjs §2), the all-phase Sun
68
- * residual improved to 0.95″, and every gate stayed green — the table's
69
- * planetary content is chain-independent physics and the pairing holds
70
- * WITHOUT re-extraction. The +1.42″ 2lE term is thereby measured to be
71
- * genuinely planetary-class, not a Meeus-EoC absorber.
75
+ * FQ-5 N2 RECORD (the carrier attribution): 8/10 carriers measured
76
+ * framework-expressible at <0.1″ induced error (e3b-argument-attribution
77
+ * E0); the Delaunay pair Mp/F FAILED exact closure (the framework
78
+ * composition carries a 16.9″/cy catalog-input residual 0.26 μd of
79
+ * sidereal month) and stays a DECLARED INPUT in moon/series-extension
80
+ * the documented negative of the pre-registered stop-gate.
72
81
  */
73
82
 
74
83
  'use strict';
75
84
 
76
- /** Of-date mean-longitude polynomials, degrees per Julian century TT
77
- * (IAU-class instrument literalsphase carriers, see header (ii)).
78
- * Body order everywhere below: Mercury, Venus, Earth (EMB), Mars,
79
- * Jupiter, Saturn. */
85
+ /** J2000 mean-longitude phase anchors (deg), body order Mercury, Venus,
86
+ * Earth (EMB), Mars, Jupiter, Saturn declared epoch constants
87
+ * (header (ii)); the RATES are injected (framework-derived). */
80
88
  const ARG_L0 = [252.250906, 181.979801, 100.466457, 355.433000, 34.351519, 50.077444];
81
- const ARG_L1 = [149472.674, 58517.815676, 36000.769780, 19141.696300, 3036.302389, 1223.511013];
82
89
  /** J2000 perihelion longitudes (deg), same body order — mean anomaly
83
90
  * M_X = l_X − ϖ_X; slow ϖ drift is absorbed by the sidebands over the
84
91
  * valid window. */
85
92
  const PERI = [77.456, 131.564, 102.937, 336.060, 14.331, 93.057];
86
- /** Moon mean elongation (deg/cy TT) — the EMB-wobble carrier. */
87
- const ARG_D = [297.8501921, 445267.1114034];
93
+ /** Moon mean elongation J2000 phase anchor (deg) — the EMB-wobble
94
+ * carrier; its rate is injected (framework-derived). */
95
+ const ARG_D0 = 297.8501921;
88
96
 
89
97
  /**
90
98
  * The derived table, extraction-native sign (negated in the evaluator):
91
99
  * [[6 mean-longitude multipliers lMe,lV,lE,lM,lJ,lS],
92
100
  * [6 mean-anomaly multipliers MMe,MV,ME,MMa,MJ,MS], cos″, sin″].
93
- * 68 terms ≥ 0.05″ from the D2 extraction (79-term LSQ, fidelity 0.64″).
101
+ * 70 terms ≥ 0.05″ from the N3 framework-carrier extraction (79-term
102
+ * LSQ on the D2 derived signal, fidelity 0.61″).
94
103
  * @type {Array<[number[], number[], number, number]>}
95
104
  */
96
105
  const TERMS = [
97
- [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, 0, 0], -0.0841, -11.6309],
98
- [[0, 0, 2, 0, -2, 0], [0, 0, -1, 0, 0, 0], -0.3235, 8.2645],
99
- [[0, 0, 1, -1, 0, 0], [0, 0, 0, -1, 0, 0], -2.9917, -6.8503],
100
- [[0, 0, 2, -2, 0, 0], [0, 0, -1, 0, 0, 0], -6.2197, -2.1203],
101
- [[0, 2, -2, 0, 0, 0], [0, 0, 0, 0, 0, 0], 0.0199, -6.4326],
102
- [[0, 0, 1, 0, -2, 0], [0, 0, 1, 0, 0, 0], 1.7254, 4.5991],
103
- [[0, 1, -1, 0, 0, 0], [0, 0, 0, 0, 0, 0], 0.1362, 4.8325],
104
- [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, 1, 0], 1.1469, 4.2788],
105
- [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, 0, 0], -3.8890, 1.2230],
106
- [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, 0, 0], 3.3414, 1.5744],
107
- [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, -1, 0], -2.6985, -1.2967],
108
- [[0, 3, -4, 0, 0, 0], [0, 0, 0, 0, 0, 0], 2.9374, -0.5408],
109
- [[0, 0, 1, 0, -1, 0], [0, 0, -1, 0, 0, 0], -2.5406, -0.1812],
110
- [[0, 0, 2, -2, 0, 0], [0, 0, 0, 0, 0, 0], 1.3755, -2.0301],
111
- [[0, 0, 2, -3, 0, 0], [0, 0, 0, 1, 0, 0], -2.2367, -0.4398],
112
- [[0, 0, -1, 2, 0, 0], [0, 0, 0, 0, 0, 0], 1.8705, 0.3499],
113
- [[0, 3, -3, 0, 0, 0], [0, -1, 0, 0, 0, 0], -1.3492, 1.2893],
114
- [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, 1, 0], 1.5453, 0.1289],
115
- [[0, 2, -3, 0, 0, 0], [0, 0, 0, 0, 0, 0], 1.3344, -0.4621],
116
- [[0, 3, -3, 0, 0, 0], [0, 0, -1, 0, 0, 0], -0.0755, -1.4049],
117
- [[0, 0, -2, 4, 0, 0], [0, 0, 0, 0, 0, 0], 0.2780, 1.2111],
118
- [[0, 0, -1, 2, 0, 0], [0, 0, -1, 0, 0, 0], -0.7161, 0.8440],
119
- [[0, 3, -4, 0, 0, 0], [0, 0, -1, 0, 0, 0], 0.9894, 0.3587],
120
- [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, 0, 0], 0.0063, 1.0463],
121
- [[0, 2, -3, 0, 0, 0], [0, 0, 1, 0, 0, 0], 0.9834, 0.1318],
122
- [[0, 0, 2, -3, 0, 0], [0, 0, 0, -1, 0, 0], 0.4834, 0.8318],
123
- [[0, 1, -1, 0, 0, 0], [0, -1, 0, 0, 0, 0], -0.5335, 0.5905],
124
- [[0, 0, 2, -2, 0, 0], [0, 0, 0, -1, 0, 0], 0.5371, -0.5685],
125
- [[0, 0, 2, -3, 0, 0], [0, 0, 0, 0, 0, 0], -0.7373, -0.0880],
126
- [[0, 2, -2, 0, 0, 0], [0, 0, -1, 0, 0, 0], 0.0163, -0.7372],
127
- [[0, 0, -1, 2, 0, 0], [0, 0, 0, -1, 0, 0], -0.0119, 0.6500],
128
- [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, 1, 0], 0.0023, -0.6287],
129
- [[0, 0, 1, 0, -1, 0], [0, 0, 1, 0, 0, 0], 0.5714, -0.1358],
130
- [[0, 0, -2, 4, 0, 0], [0, 0, -1, 0, 0, 0], -0.5046, 0.2858],
131
- [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, 1, 0], -0.5567, 0.1036],
132
- [[0, 2, -3, 0, 0, 0], [0, 0, -1, 0, 0, 0], 0.5469, -0.0167],
133
- [[0, 2, -3, 0, 0, 0], [0, 1, 0, 0, 0, 0], -0.4309, 0.2809],
134
- [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, -1, 0], 0.2206, -0.4616],
135
- [[0, 3, -4, 0, 0, 0], [0, -1, 0, 0, 0, 0], -0.4549, -0.2097],
136
- [[0, 0, 2, 0, -3, 0], [0, 0, -1, 0, 0, 0], 0.2809, 0.3489],
137
- [[0, 0, 1, -1, 0, 0], [0, 0, 0, 0, 0, 0], 0.2863, 0.3116],
138
- [[0, 0, 2, -3, 0, 0], [0, 0, -1, 0, 0, 0], -0.4141, -0.0359],
139
- [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, 0], 0.0863, -0.4015],
140
- [[0, 0, -1, 2, 0, 0], [0, 0, 0, 1, 0, 0], -0.2200, 0.3372],
141
- [[0, 1, -1, 0, 0, 0], [0, 0, -1, 0, 0, 0], -0.2017, 0.2910],
142
- [[0, 2, -2, 0, 0, 0], [0, -1, 0, 0, 0, 0], 0.2499, -0.1777],
143
- [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, -1, 0], -0.2254, 0.1676],
144
- [[0, 3, -3, 0, 0, 0], [0, 0, 0, 0, 0, 0], -0.1859, -0.1961],
145
- [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, 1], -0.0710, 0.2499],
146
- [[0, 0, -2, 4, 0, 0], [0, 0, 0, -1, 0, 0], 0.2125, -0.1175],
147
- [[0, 0, 1, 0, 0, -1], [0, 0, -1, 0, 0, 0], -0.0460, 0.2379],
148
- [[0, 3, -4, 0, 0, 0], [0, 1, 0, 0, 0, 0], -0.1410, 0.1566],
149
- [[0, 0, 1, -1, 0, 0], [0, 0, 0, 1, 0, 0], -0.0476, 0.1897],
150
- [[0, 2, -2, 0, 0, 0], [0, 0, 1, 0, 0, 0], -0.1559, -0.1155],
151
- [[0, 0, 2, 0, -3, 0], [0, 0, 1, 0, 0, 0], 0.1631, -0.0164],
152
- [[0, 1, -1, 0, 0, 0], [0, 1, 0, 0, 0, 0], 0.1307, -0.0678],
153
- [[0, 0, 2, -3, 0, 0], [0, 0, 1, 0, 0, 0], 0.1331, -0.0291],
154
- [[0, 0, -2, 4, 0, 0], [0, 0, 1, 0, 0, 0], 0.1227, 0.0482],
155
- [[0, 0, 2, 0, 0, -2], [0, 0, 0, 0, 0, 0], -0.0388, 0.1044],
156
- [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, -1], -0.0309, 0.1027],
157
- [[0, 0, 1, 0, -2, 0], [0, 0, -1, 0, 0, 0], -0.0741, 0.0308],
158
- [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, -1, 0], 0.0102, 0.0783],
159
- [[0, 1, -1, 0, 0, 0], [0, 0, 1, 0, 0, 0], -0.0026, 0.0765],
160
- [[0, 0, 2, 0, -2, 0], [0, 0, 1, 0, 0, 0], -0.0084, 0.0686],
161
- [[0, 3, -4, 0, 0, 0], [0, 0, 1, 0, 0, 0], 0.0273, -0.0576],
162
- [[0, 0, 1, -1, 0, 0], [0, 0, 1, 0, 0, 0], 0.0570, 0.0117],
163
- [[0, 0, 2, -2, 0, 0], [0, 0, 0, 1, 0, 0], 0.0426, -0.0336],
164
- [[0, 0, 1, -1, 0, 0], [0, 0, -1, 0, 0, 0], -0.0335, -0.0395],
106
+ [[0, 0, 1, 0, -2, 0], [0, 0, 1, 0, 0, 0], 23.4846, 2.3099],
107
+ [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, 0, 0], -1.7235, -14.0062],
108
+ [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, 1, 0], 7.4894, -7.7252],
109
+ [[0, 3, -3, 0, 0, 0], [0, 0, -1, 0, 0, 0], 5.7813, 1.7078],
110
+ [[0, 3, -4, 0, 0, 0], [0, 0, 0, 0, 0, 0], 1.1877, 5.8649],
111
+ [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, 0, 0], 1.6357, -4.9485],
112
+ [[0, 2, -3, 0, 0, 0], [0, 0, 1, 0, 0, 0], -4.9053, -0.3900],
113
+ [[0, 1, -1, 0, 0, 0], [0, 0, 0, 0, 0, 0], 0.1351, 4.8331],
114
+ [[0, 0, 2, -3, 0, 0], [0, 0, 0, 1, 0, 0], -0.2239, -3.1687],
115
+ [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, 1, 0], -2.1749, -1.7705],
116
+ [[0, 0, 1, -1, 0, 0], [0, 0, 0, -1, 0, 0], 0.8107, -2.5127],
117
+ [[0, 0, 1, 0, -1, 0], [0, 0, -1, 0, 0, 0], -2.5403, -0.1821],
118
+ [[0, 0, -1, 2, 0, 0], [0, 0, 0, 0, 0, 0], -1.3152, -2.0575],
119
+ [[0, 2, -2, 0, 0, 0], [0, 0, 0, 0, 0, 0], -1.8073, -0.8142],
120
+ [[0, 3, -3, 0, 0, 0], [0, -1, 0, 0, 0, 0], -0.8611, 1.7708],
121
+ [[0, 0, -1, 2, 0, 0], [0, 0, -1, 0, 0, 0], 1.2659, 1.1195],
122
+ [[0, 0, 2, -2, 0, 0], [0, 0, -1, 0, 0, 0], 1.1646, 1.0865],
123
+ [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, -1, 0], 0.4560, -1.2051],
124
+ [[0, 0, -2, 4, 0, 0], [0, 0, 0, -1, 0, 0], -0.2198, 1.2107],
125
+ [[0, 3, -3, 0, 0, 0], [0, 0, 0, 0, 0, 0], 0.5260, -1.0137],
126
+ [[0, 2, -2, 0, 0, 0], [0, 0, -1, 0, 0, 0], -1.1195, 0.1107],
127
+ [[0, 0, 2, -2, 0, 0], [0, 0, 0, 0, 0, 0], 0.8202, -0.7125],
128
+ [[0, 3, -4, 0, 0, 0], [0, 0, -1, 0, 0, 0], 0.9722, 0.3524],
129
+ [[0, 0, 2, -3, 0, 0], [0, 0, 0, 0, 0, 0], 0.9763, -0.2018],
130
+ [[0, 3, -4, 0, 0, 0], [0, 0, 1, 0, 0, 0], 0.1162, 0.9095],
131
+ [[0, 0, 2, -2, 0, 0], [0, 0, 0, -1, 0, 0], 0.2940, 0.8000],
132
+ [[0, 2, -3, 0, 0, 0], [0, 0, 0, 0, 0, 0], 0.2210, -0.6939],
133
+ [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, -1, 0], -0.2188, 0.6572],
134
+ [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, 0, 0], 0.6135, 0.3150],
135
+ [[0, 1, -1, 0, 0, 0], [0, -1, 0, 0, 0, 0], 0.6161, -0.1008],
136
+ [[0, 0, 1, -1, 0, 0], [0, 0, 0, 1, 0, 0], 0.4387, -0.4123],
137
+ [[0, 0, 2, 0, -2, 0], [0, 0, -1, 0, 0, 0], -0.1825, 0.5176],
138
+ [[0, 2, -3, 0, 0, 0], [0, 1, 0, 0, 0, 0], 0.1125, -0.5348],
139
+ [[0, 0, -2, 4, 0, 0], [0, 0, -1, 0, 0, 0], -0.4800, 0.2245],
140
+ [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, 0], 0.0845, -0.4012],
141
+ [[0, 0, 1, 0, -1, 0], [0, 0, 1, 0, 0, 0], 0.1622, -0.3517],
142
+ [[0, 0, 2, 0, -3, 0], [0, 0, -1, 0, 0, 0], 0.3786, 0.0361],
143
+ [[0, 0, 2, -3, 0, 0], [0, 0, 0, -1, 0, 0], 0.0701, -0.3556],
144
+ [[0, 0, 1, -1, 0, 0], [0, 0, 0, 0, 0, 0], -0.2643, -0.2045],
145
+ [[0, 0, 1, 0, -1, 0], [0, 0, 0, 0, 1, 0], 0.2650, -0.1462],
146
+ [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, 1], 0.3016, 0.0060],
147
+ [[0, 0, -1, 2, 0, 0], [0, 0, 0, 1, 0, 0], -0.0582, -0.2912],
148
+ [[0, 0, 2, 0, -2, 0], [0, 0, 0, 0, 1, 0], -0.2051, -0.2135],
149
+ [[0, 0, 1, 0, -2, 0], [0, 0, 0, 0, -1, 0], 0.0858, 0.2762],
150
+ [[0, 0, 2, -3, 0, 0], [0, 0, -1, 0, 0, 0], 0.1911, 0.2163],
151
+ [[0, 0, -1, 2, 0, 0], [0, 0, 0, -1, 0, 0], 0.2815, -0.0450],
152
+ [[0, 2, -3, 0, 0, 0], [0, 0, -1, 0, 0, 0], 0.2490, 0.0551],
153
+ [[0, 0, 1, 0, 0, -1], [0, 0, -1, 0, 0, 0], -0.0456, 0.2371],
154
+ [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, 0, 0], 0.1560, -0.1469],
155
+ [[0, 3, -4, 0, 0, 0], [0, 1, 0, 0, 0, 0], -0.1412, 0.1568],
156
+ [[0, 3, -4, 0, 0, 0], [0, -1, 0, 0, 0, 0], -0.1616, -0.1314],
157
+ [[0, 0, -2, 4, 0, 0], [0, 0, 0, 0, 0, 0], 0.1728, -0.0849],
158
+ [[0, 1, -1, 0, 0, 0], [0, 0, -1, 0, 0, 0], -0.0449, 0.1649],
159
+ [[0, 0, 2, 0, -3, 0], [0, 0, 1, 0, 0, 0], 0.1632, -0.0164],
160
+ [[0, 2, -2, 0, 0, 0], [0, -1, 0, 0, 0, 0], 0.0534, -0.1430],
161
+ [[0, 0, 2, -3, 0, 0], [0, 0, 1, 0, 0, 0], 0.1316, -0.0275],
162
+ [[0, 0, -2, 4, 0, 0], [0, 0, 1, 0, 0, 0], 0.1216, 0.0451],
163
+ [[0, 0, 2, -2, 0, 0], [0, 0, 0, 1, 0, 0], -0.1046, 0.0620],
164
+ [[0, 0, 1, -1, 0, 0], [0, 0, 1, 0, 0, 0], -0.1075, -0.0488],
165
+ [[0, 0, 2, 0, 0, -2], [0, 0, 0, 0, 0, 0], -0.0385, 0.1030],
166
+ [[0, 0, 1, 0, 0, -1], [0, 0, 0, 0, 0, -1], -0.0308, 0.1049],
167
+ [[0, 1, -1, 0, 0, 0], [0, 1, 0, 0, 0, 0], -0.0875, -0.0250],
168
+ [[0, 0, 1, 0, -2, 0], [0, 0, -1, 0, 0, 0], -0.0738, 0.0295],
169
+ [[0, 0, 2, 0, -3, 0], [0, 0, 0, 0, -1, 0], 0.0097, 0.0787],
170
+ [[0, 1, -1, 0, 0, 0], [0, 0, 1, 0, 0, 0], -0.0016, 0.0762],
171
+ [[0, 2, -2, 0, 0, 0], [0, 0, 1, 0, 0, 0], 0.0562, -0.0490],
172
+ [[0, 3, -3, 0, 0, 0], [0, 0, 1, 0, 0, 0], 0.0638, -0.0362],
173
+ [[0, 0, 2, 0, -2, 0], [0, 0, 1, 0, 0, 0], -0.0085, 0.0686],
174
+ [[0, 2, -2, 0, 0, 0], [0, 1, 0, 0, 0, 0], -0.0453, 0.0505],
175
+ [[0, 0, 1, -1, 0, 0], [0, 0, -1, 0, 0, 0], -0.0353, -0.0379],
165
176
  ];
166
177
 
167
178
  /** The declared-fitted semiannual leftover (header (iii)): +1.42″ sin 2lE. */
@@ -170,15 +181,29 @@ const FITTED_2LE_ARCSEC = 1.42;
170
181
  const D2R = Math.PI / 180;
171
182
 
172
183
  /**
173
- * @param {{ embWobbleArcsec: number }} opts - the DERIVED Earth-around-EMB
174
- * wobble amplitude a_M·μ/AU in arcsec = 1/(1+M_E/M_M)); computed
175
- * from live constants by the model wiring so it tracks the constants.
184
+ * @param {{ embWobbleArcsec: number,
185
+ * carrierRatesDegPerCy: { planets: number[], moonElongation: number } }} opts
186
+ * - embWobbleArcsec: the DERIVED Earth-around-EMB wobble amplitude
187
+ * a_M·μ/AU in arcsec (μ = 1/(1+M_E/M_M));
188
+ * - carrierRatesDegPerCy.planets: the six FRAMEWORK mean-longitude
189
+ * rates (deg/Julian-century TT), body order Me,V,E,Ma,J,S — one
190
+ * revolution per the model's own tropical period records;
191
+ * - carrierRatesDegPerCy.moonElongation: the framework Moon
192
+ * mean-elongation rate (deg/cy TT) for the EMB-wobble carrier.
193
+ * All computed from live constants by the model wiring so the
194
+ * carrier↔table matched pair tracks the constants.
176
195
  * @returns {{ sunPlanetaryCompletionDeg: (T: number) => number }}
177
196
  */
178
- function createSunPlanetaryCompletion({ embWobbleArcsec }) {
197
+ function createSunPlanetaryCompletion({ embWobbleArcsec, carrierRatesDegPerCy }) {
179
198
  if (!Number.isFinite(embWobbleArcsec)) {
180
199
  throw new Error('createSunPlanetaryCompletion: embWobbleArcsec must be a finite number (derived a_M·μ/AU in arcsec)');
181
200
  }
201
+ const rates = carrierRatesDegPerCy;
202
+ if (!rates || !Array.isArray(rates.planets) || rates.planets.length !== 6
203
+ || rates.planets.some((r) => !Number.isFinite(r)) || !Number.isFinite(rates.moonElongation)) {
204
+ throw new Error('createSunPlanetaryCompletion: carrierRatesDegPerCy must supply 6 finite planet rates (Me,V,E,Ma,J,S) and a finite moonElongation rate (deg/cy TT)');
205
+ }
206
+ const L1 = rates.planets, D1 = rates.moonElongation;
182
207
  /**
183
208
  * Planetary-completion correction to the finder Sun longitude.
184
209
  * @param {number} T - Julian centuries TT from J2000
@@ -187,7 +212,7 @@ function createSunPlanetaryCompletion({ embWobbleArcsec }) {
187
212
  function sunPlanetaryCompletionDeg(T) {
188
213
  const l = new Float64Array(6), M = new Float64Array(6);
189
214
  for (let i = 0; i < 6; i++) {
190
- l[i] = (ARG_L0[i] + ARG_L1[i] * T) * D2R;
215
+ l[i] = (ARG_L0[i] + L1[i] * T) * D2R;
191
216
  M[i] = l[i] - PERI[i] * D2R;
192
217
  }
193
218
  let table = 0;
@@ -196,7 +221,7 @@ function createSunPlanetaryCompletion({ embWobbleArcsec }) {
196
221
  for (let i = 0; i < 6; i++) th += kl[i] * l[i] + kM[i] * M[i];
197
222
  table += cA * Math.cos(th) + sA * Math.sin(th);
198
223
  }
199
- const D = (ARG_D[0] + ARG_D[1] * T) * D2R;
224
+ const D = (ARG_D0 + D1 * T) * D2R;
200
225
  const arcsec = -table - embWobbleArcsec * Math.sin(D)
201
226
  + FITTED_2LE_ARCSEC * Math.sin(2 * l[2]);
202
227
  return arcsec / 3600;
@@ -206,7 +231,8 @@ function createSunPlanetaryCompletion({ embWobbleArcsec }) {
206
231
 
207
232
  /** sha256/16 of JSON.stringify(FITTED_COEFFICIENTS.SUN_LONGITUDE_HARMONICS)
208
233
  * at derivation time — the matched-pair fingerprint asserted by test:model.
209
- * Unchanged from v1: SUN_HARMONICS did not move in the D2 landing. */
234
+ * Unchanged from v1/v2: SUN_HARMONICS did not move in the D2 or N3
235
+ * landings. */
210
236
  const PAIRED_SUN_HARMONICS_SHA256 = 'e2cf42e9770c9e0a';
211
237
 
212
238
  module.exports = { createSunPlanetaryCompletion, PAIRED_SUN_HARMONICS_SHA256 };
package/src/model.js CHANGED
@@ -867,40 +867,64 @@ export function assembleModel(C, F) {
867
867
  return eccentricityAt(year) + (eccentricityBase / 2) * (cos3 - cos3J2000);
868
868
  };
869
869
  const sunMeanLongitudeDegAt = (() => {
870
- const Y_LO = -3000, Y_HI = 3000, STEP = 10;
871
- /** @type {Float64Array|null} */
872
- let cum = null;
870
+ // SW PHASE B the CLOSED FORM on the integrated lattice phase
871
+ // (supersedes the E5 ±3,000-yr trapezoid table; valid at EVERY epoch,
872
+ // no table, no domain window). drift = D_smooth + Σₖ D_k + D_torque:
873
+ // · D_smooth — the deep chain's smooth SI tropical-year physics
874
+ // (tropicalYearDaysBase × LOD), two-point trapezoid: the same
875
+ // structure the scene twin uses, so the scene δ stays bounded.
876
+ // · Each oscillatory term integrates ANALYTICALLY: the antiderivative
877
+ // of cos/sin on the integrated phase is (H/2πk)·[sin/−cos] — the H
878
+ // drift lives in the phase itself; the amplitude factor uses H_J2000
879
+ // (ppm-class difference, negligible).
880
+ // · THE REBASE (E5's corpus-preferred J2000 rate anchor) is applied
881
+ // PER HARMONIC as a SIN-SATURATED ramp, (H/2πk)·sin(Δφₖ): equal to
882
+ // the linear rebase for |Δφₖ| ≪ 1 (the corpus era) and bounded by
883
+ // the harmonic's own period beyond — extending a linearized local
884
+ // slope to deep time would be the fitted-linear-slope trap. Every
885
+ // quantity is derived; zero new constants; each component and its
886
+ // slope vanish at year 2000 by construction (the drift-only
887
+ // property is exact, not tabulated).
888
+ const RATE_LIN = sunTropicalRateDegPerCy / 100; // deg / SI yr
873
889
  const precessionP0DegPerYr = 13 * 360 / H;
874
890
  const tanEps = Math.tan(earthtiltMean * Math.PI / 180);
875
- /** E5 the two-component obliquity excursion, radians, integrated phase.
876
- * @param {number} year @returns {number} */
877
- const obliquityExcursionRad = (year) => (
878
- -earthInclAmplitude * Math.cos(phaseRadians(balancedYear, year, 3))
879
- + earthInclAmplitude * Math.cos(phaseRadians(balancedYear, year, 8))
880
- ) * Math.PI / 180;
891
+ const A_RAD = earthInclAmplitude * Math.PI / 180;
881
892
  /** @param {number} year @returns {number} */
882
- const rateSIYr = (year) => 360 * (365.25 * 86400)
883
- / (tropicalYearDirectDays(year)
884
- * (deepLod.lodSecondsAtAge(yearToTMa(year)) ?? meanLengthOfDay))
885
- - precessionP0DegPerYr * tanEps * obliquityExcursionRad(year);
893
+ const rateSmooth = (year) => 360 * (365.25 * 86400)
894
+ / (tropicalYearDaysBase(year)
895
+ * (deepLod.lodSecondsAtAge(yearToTMa(year)) ?? meanLengthOfDay));
896
+ /** @type {{rateSm0: number, ph0: Map<number, number>}|null} */
897
+ let anchor = null;
886
898
  return /** @param {number} year @returns {number} */ (year) => {
887
- if (cum === null) {
888
- const n = (Y_HI - Y_LO) / STEP + 1;
889
- cum = new Float64Array(n);
890
- const ref = rateSIYr(2000);
891
- let prev = rateSIYr(Y_LO) - ref;
892
- for (let i = 1; i < n; i++) {
893
- const next = rateSIYr(Y_LO + i * STEP) - ref;
894
- cum[i] = cum[i - 1] + 0.5 * (prev + next) * STEP;
895
- prev = next;
896
- }
897
- const at2000 = cum[(2000 - Y_LO) / STEP];
898
- for (let i = 0; i < n; i++) cum[i] -= at2000;
899
+ if (anchor === null) {
900
+ const ph0 = new Map();
901
+ for (const [k] of F.TROPICAL_YEAR_HARMONICS) ph0.set(k, phaseRadians(balancedYear, 2000, k));
902
+ for (const k of [3, 8]) if (!ph0.has(k)) ph0.set(k, phaseRadians(balancedYear, 2000, k));
903
+ anchor = { rateSm0: rateSmooth(2000), ph0 };
899
904
  }
900
- const x = (Math.min(Math.max(year, Y_LO), Y_HI) - Y_LO) / STEP;
901
- const i = Math.min(Math.floor(x), cum.length - 2);
902
- const drift = cum[i] + (x - i) * (cum[i + 1] - cum[i]);
903
- return sunL0Deg + sunTropicalRateDegPerCy * (year - 2000) / 100 + drift;
905
+ const dy = year - 2000;
906
+ // smooth deep physics (two-point trapezoid; exact 0 at 2000)
907
+ let drift = 0.5 * (rateSmooth(year) - anchor.rateSm0) * dy;
908
+ // year-harmonic ripple: rate (RATE_LIN/T̄)·h(y); antiderivative +
909
+ // sin-saturated per-harmonic rebase
910
+ const HK = H / (2 * Math.PI);
911
+ for (const [k, sK, cK] of F.TROPICAL_YEAR_HARMONICS) {
912
+ const ph = phaseRadians(balancedYear, year, k);
913
+ const ph0 = /** @type {number} */ (anchor.ph0.get(k));
914
+ const scale = -(RATE_LIN / meanSolarYearDays) * (HK / k);
915
+ const anti = (-sK) * (Math.cos(ph) - Math.cos(ph0)) + cK * (Math.sin(ph) - Math.sin(ph0));
916
+ const h0 = sK * Math.sin(ph0) + cK * Math.cos(ph0);
917
+ drift += scale * (anti - h0 * Math.sin(ph - ph0));
918
+ }
919
+ // torque (E5): rate = −p₀·tanε·δε, δε = A(−cos φ₃ + cos φ₈); same
920
+ // antiderivative + per-component sin-saturated rebase
921
+ for (const [k, sgn] of [[3, -1], [8, 1]]) {
922
+ const ph = phaseRadians(balancedYear, year, k);
923
+ const ph0 = /** @type {number} */ (anchor.ph0.get(k));
924
+ const scale = -precessionP0DegPerYr * tanEps * A_RAD * sgn * (HK / k);
925
+ drift += scale * ((Math.sin(ph) - Math.sin(ph0)) - Math.cos(ph0) * Math.sin(ph - ph0));
926
+ }
927
+ return sunL0Deg + sunTropicalRateDegPerCy * dy / 100 + drift;
904
928
  };
905
929
  })();
906
930
 
@@ -943,7 +967,24 @@ export function assembleModel(C, F) {
943
967
  // μ = 1/(1+M_E/M_M) — 6.4399″ at current constants, tracks them live.
944
968
  const embWobbleArcsec = (moonDistanceKm / (MASS_RATIO_EARTH_MOON + 1) / currentAUDistance)
945
969
  * (648000 / Math.PI);
946
- const { sunPlanetaryCompletionDeg } = createSunPlanetaryCompletion({ embWobbleArcsec });
970
+ // FQ-5 N3 the completion's carriers are FRAMEWORK-derived: one
971
+ // revolution per the model's own tropical period records (Earth from
972
+ // the framework mean solar year; the Moon-elongation rate from the
973
+ // sidereal month/year identity). The v3 table's amplitudes were
974
+ // re-extracted on exactly these rates (the carrier↔table matched pair).
975
+ const degPerCyOf = /** @param {number} cyclesPerDay */ (cyclesPerDay) => 360 * 36525 * cyclesPerDay;
976
+ const carrierRatesDegPerCy = {
977
+ planets: [
978
+ degPerCyOf(1 / C.planetOrbitalElements.mercury.solarYearInput),
979
+ degPerCyOf(1 / C.planetOrbitalElements.venus.solarYearInput),
980
+ degPerCyOf(1 / meanSolarYearDays),
981
+ degPerCyOf(1 / C.planetOrbitalElements.mars.solarYearInput),
982
+ degPerCyOf(1 / C.planetOrbitalElements.jupiter.solarYearInput),
983
+ degPerCyOf(1 / C.planetOrbitalElements.saturn.solarYearInput),
984
+ ],
985
+ moonElongation: degPerCyOf(1 / moonSiderealMonthInput - 1 / meanSiderealYearDays),
986
+ };
987
+ const { sunPlanetaryCompletionDeg } = createSunPlanetaryCompletion({ embWobbleArcsec, carrierRatesDegPerCy });
947
988
  const besselian = createBesselian({
948
989
  moonFullAtDaysTT: /** @param {number} dDaysTT */ (dDaysTT) => {
949
990
  const ev = moonSeries.sceneEvalAt(dDaysTT);
@@ -21,9 +21,16 @@
21
21
  * gates, never a subset.
22
22
  *
23
23
  * Arguments are the instrument-grade Delaunay polynomials (IAU/Meeus
24
- * class, degrees/Julian-century TT) — phase carriers only, same
25
- * epistemic status as the Sun completion's argument literals (their
26
- * framework-native derivation is research item 20.3e).
24
+ * class, degrees/Julian-century TT) — phase carriers only, DECLARED
25
+ * INPUTS by the FQ-5 N2 stop-gate (the documented negative of research
26
+ * item 20.3e): the framework composition of Mp carries a measured
27
+ * 16.9″/cy catalog-input residual (≡ 0.26 μd of sidereal month —
28
+ * e3b-argument-attribution E0 + the N1 quantification), which is NOT
29
+ * exact closure, and the evaluation target here is JPL reality where
30
+ * the DE-fitted literals are truth-class. The Sun completion's
31
+ * PLANETARY carriers, by contrast, went framework-native at N3 (its
32
+ * derived signal is framework-frequency; see
33
+ * eclipse/sun-planetary-completion.cjs v3).
27
34
  *
28
35
  * Sign convention: sine terms, ADDED to the full-series Moon longitude
29
36
  * and latitude (the validated sense; see besselian.cjs bodiesAt).