R/solar_lunar_constants.R

SOLAR_LONGITUDE_COEFFS <- list(
  coefficients = c(
    403406,
    195207,
    119433,
    112392,
    3891,
    2819,
    1721,
    660,
    350,
    334,
    314,
    268,
    242,
    234,
    158,
    132,
    129,
    114,
    99,
    93,
    86,
    78,
    72,
    68,
    64,
    46,
    38,
    37,
    32,
    29,
    28,
    27,
    27,
    25,
    24,
    21,
    21,
    20,
    18,
    17,
    14,
    13,
    13,
    13,
    12,
    10,
    10,
    10,
    10
  ),
  multipliers = c(
    0.9287892,
    35999.1376958,
    35999.4089666,
    35998.7287385,
    71998.20261,
    71998.4403,
    36000.35726,
    71997.4812,
    32964.4678,
    -19.4410,
    445267.1117,
    45036.8840,
    3.1008,
    22518.4434,
    -19.9739,
    65928.9345,
    9038.0293,
    3034.7684,
    33718.148,
    3034.448,
    -2280.773,
    29929.992,
    31556.493,
    149.588,
    9037.750,
    107997.405,
    -4444.176,
    151.771,
    67555.316,
    31556.080,
    -4561.540,
    107996.706,
    1221.655,
    62894.167,
    31437.369,
    14578.298,
    -31931.757,
    34777.243,
    1221.999,
    62894.511,
    -4442.039,
    107997.909,
    119.066,
    16859.071,
    -4.578,
    26895.292,
    -39.127,
    12297.536,
    90073.778
  ),
  addends = c(
    270.54861,
    340.19128,
    63.91854,
    331.26220,
    317.843,
    86.631,
    240.052,
    310.26,
    247.23,
    260.87,
    297.82,
    343.14,
    166.79,
    81.53,
    3.50,
    132.75,
    182.95,
    162.03,
    29.8,
    266.4,
    249.2,
    157.6,
    257.8,
    185.1,
    69.9,
    8.0,
    197.1,
    250.4,
    65.3,
    162.7,
    341.5,
    291.6,
    98.5,
    146.7,
    110.0,
    5.2,
    342.6,
    230.9,
    256.1,
    45.3,
    242.9,
    115.2,
    151.8,
    285.3,
    53.3,
    126.6,
    205.7,
    85.9,
    146.1
  )
)

LUNAR_DISTANCE_COEFFS <- list(
  cosine_coeff = c(
    -20905355,
    -3699111,
    -2955968,
    -569925,
    48888,
    -3149,
    246158,
    -152138,
    -170733,
    -204586,
    -129620,
    108743,
    104755,
    10321,
    0,
    79661,
    -34782,
    -23210,
    -21636,
    24208,
    30824,
    -8379,
    -16675,
    -12831,
    -10445,
    -11650,
    14403,
    -7003,
    0,
    10056,
    6322,
    -9884,
    5751,
    0,
    -4950,
    4130,
    0,
    -3958,
    0,
    3258,
    2616,
    -1897,
    -2117,
    2354,
    0,
    0,
    -1423,
    -1117,
    -1571,
    -1739,
    0,
    -4421,
    0,
    0,
    0,
    0,
    1165,
    0,
    0,
    8752
  ),
  args_lunar_elongation = c(
    0,
    2,
    2,
    0,
    0,
    0,
    2,
    2,
    2,
    2,
    0,
    1,
    0,
    2,
    0,
    0,
    4,
    0,
    4,
    2,
    2,
    1,
    1,
    2,
    2,
    4,
    2,
    0,
    2,
    2,
    1,
    2,
    0,
    0,
    2,
    2,
    2,
    4,
    0,
    3,
    2,
    4,
    0,
    2,
    2,
    2,
    4,
    0,
    4,
    1,
    2,
    0,
    1,
    3,
    4,
    2,
    0,
    1,
    2,
    2
  ),
  args_solar_anomaly = c(
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    -1,
    0,
    -1,
    1,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    1,
    -1,
    0,
    0,
    0,
    1,
    0,
    -1,
    0,
    -2,
    1,
    2,
    -2,
    0,
    0,
    -1,
    0,
    0,
    1,
    -1,
    2,
    2,
    1,
    -1,
    0,
    0,
    -1,
    0,
    1,
    0,
    1,
    0,
    0,
    -1,
    2,
    1,
    0,
    0
  ),
  args_lunar_anomaly = c(
    1,
    -1,
    0,
    2,
    0,
    0,
    -2,
    -1,
    1,
    0,
    -1,
    0,
    1,
    0,
    1,
    1,
    -1,
    3,
    -2,
    -1,
    0,
    -1,
    0,
    1,
    2,
    0,
    -3,
    -2,
    -1,
    -2,
    1,
    0,
    2,
    0,
    -1,
    1,
    0,
    -1,
    2,
    -1,
    1,
    -2,
    -1,
    -1,
    -2,
    0,
    1,
    4,
    0,
    -2,
    0,
    2,
    1,
    -2,
    -3,
    2,
    1,
    -1,
    3,
    -1
  ),
  args_moon_node = c(
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    2,
    -2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    2,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    0,
    0,
    0,
    0,
    -2,
    -2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -2
  )
)

LUNAR_LONGITUDE_COEFFS <- list(
  args_lunar_elongation = c(
    0,
    2,
    2,
    0,
    0,
    0,
    2,
    2,
    2,
    2,
    0,
    1,
    0,
    2,
    0,
    0,
    4,
    0,
    4,
    2,
    2,
    1,
    1,
    2,
    2,
    4,
    2,
    0,
    2,
    2,
    1,
    2,
    0,
    0,
    2,
    2,
    2,
    4,
    0,
    3,
    2,
    4,
    0,
    2,
    2,
    2,
    4,
    0,
    4,
    1,
    2,
    0,
    1,
    3,
    4,
    2,
    0,
    1,
    2
  ),
  args_solar_anomaly = c(
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    -1,
    0,
    -1,
    1,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    1,
    -1,
    0,
    0,
    0,
    1,
    0,
    -1,
    0,
    -2,
    1,
    2,
    -2,
    0,
    0,
    -1,
    0,
    0,
    1,
    -1,
    2,
    2,
    1,
    -1,
    0,
    0,
    -1,
    0,
    1,
    0,
    1,
    0,
    0,
    -1,
    2,
    1,
    0
  ),
  args_lunar_anomaly = c(
    1,
    -1,
    0,
    2,
    0,
    0,
    -2,
    -1,
    1,
    0,
    -1,
    0,
    1,
    0,
    1,
    1,
    -1,
    3,
    -2,
    -1,
    0,
    -1,
    0,
    1,
    2,
    0,
    -3,
    -2,
    -1,
    -2,
    1,
    0,
    2,
    0,
    -1,
    1,
    0,
    -1,
    2,
    -1,
    1,
    -2,
    -1,
    -1,
    -2,
    0,
    1,
    4,
    0,
    -2,
    0,
    2,
    1,
    -2,
    -3,
    2,
    1,
    -1,
    3
  ),
  args_moon_node = c(
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    2,
    -2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    2,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    -2,
    0,
    0,
    0,
    0,
    -2,
    -2,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ),
  sine_coefficients = c(
    6288774,
    1274027,
    658314,
    213618,
    -185116,
    -114332,
    58793,
    57066,
    53322,
    45758,
    -40923,
    -34720,
    -30383,
    15327,
    -12528,
    10980,
    10675,
    10034,
    8548,
    -7888,
    -6766,
    -5163,
    4987,
    4036,
    3994,
    3861,
    3665,
    -2689,
    -2602,
    2390,
    -2348,
    2236,
    -2120,
    -2069,
    2048,
    -1773,
    -1595,
    1215,
    -1110,
    -892,
    -810,
    759,
    -713,
    -700,
    691,
    596,
    549,
    537,
    520,
    -487,
    -399,
    -381,
    351,
    -340,
    330,
    327,
    -323,
    299,
    294
  )
)

LUNAR_LATITUDE_COEFFS <- list(
  sine_coeff = c(
    5128122,
    280602,
    277693,
    173237,
    55413,
    46271,
    32573,
    17198,
    9266,
    8822,
    8216,
    4324,
    4200,
    -3359,
    2463,
    2211,
    2065,
    -1870,
    1828,
    -1794,
    -1749,
    -1565,
    -1491,
    -1475,
    -1410,
    -1344,
    -1335,
    1107,
    1021,
    833,
    777,
    671,
    607,
    596,
    491,
    -451,
    439,
    422,
    421,
    -366,
    -351,
    331,
    315,
    302,
    -283,
    -229,
    223,
    223,
    -220,
    -220,
    -185,
    181,
    -177,
    176,
    166,
    -164,
    132,
    -119,
    115,
    107
  ),
  args_lunar_elongation = c(
    0,
    0,
    0,
    2,
    2,
    2,
    2,
    0,
    2,
    0,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    0,
    4,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    4,
    4,
    0,
    4,
    2,
    2,
    2,
    2,
    0,
    2,
    2,
    2,
    2,
    4,
    2,
    2,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    2,
    0,
    4,
    4,
    1,
    4,
    1,
    4,
    2
  ),
  args_solar_anomaly = c(
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -1,
    0,
    0,
    1,
    -1,
    -1,
    -1,
    1,
    0,
    1,
    0,
    1,
    0,
    1,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    -1,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    -1,
    -2,
    0,
    1,
    1,
    1,
    1,
    1,
    0,
    -1,
    1,
    0,
    -1,
    0,
    0,
    0,
    -1,
    -2
  ),
  args_lunar_anomaly = c(
    0,
    1,
    1,
    0,
    -1,
    -1,
    0,
    2,
    1,
    2,
    0,
    -2,
    1,
    0,
    -1,
    0,
    -1,
    -1,
    -1,
    0,
    0,
    -1,
    0,
    1,
    1,
    0,
    0,
    3,
    0,
    -1,
    1,
    -2,
    0,
    2,
    1,
    -2,
    3,
    2,
    -3,
    -1,
    0,
    0,
    1,
    0,
    1,
    1,
    0,
    0,
    -2,
    -1,
    1,
    -2,
    2,
    -2,
    -1,
    1,
    1,
    -1,
    0,
    0
  ),
  args_moon_node = c(
    1,
    1,
    -1,
    -1,
    1,
    -1,
    1,
    1,
    -1,
    -1,
    -1,
    -1,
    1,
    -1,
    1,
    1,
    -1,
    -1,
    -1,
    1,
    3,
    1,
    1,
    1,
    -1,
    -1,
    -1,
    1,
    -1,
    1,
    -3,
    1,
    -3,
    -1,
    -1,
    1,
    -1,
    1,
    -1,
    1,
    1,
    1,
    1,
    -1,
    3,
    -1,
    -1,
    1,
    -1,
    -1,
    1,
    -1,
    1,
    -1,
    -1,
    -1,
    -1,
    -1,
    -1,
    1
  )
)

NTH_NEW_MOON_COEFFS <- list(
  E_factor = c(
    0,
    1,
    0,
    0,
    1,
    1,
    2,
    0,
    0,
    1,
    0,
    1,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ),
  solar_coeff = c(
    0,
    1,
    0,
    0,
    -1,
    1,
    2,
    0,
    0,
    1,
    0,
    1,
    1,
    -1,
    2,
    0,
    3,
    1,
    0,
    1,
    -1,
    -1,
    1,
    0
  ),
  lunar_coeff = c(
    1,
    0,
    2,
    0,
    1,
    1,
    0,
    1,
    1,
    2,
    3,
    0,
    0,
    2,
    1,
    2,
    0,
    1,
    2,
    1,
    1,
    1,
    3,
    4
  ),
  moon_coeff = c(
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    -2,
    2,
    0,
    0,
    2,
    -2,
    0,
    0,
    -2,
    0,
    -2,
    2,
    2,
    2,
    -2,
    0,
    0
  ),
  sine_coeff = c(
    -0.40720,
    0.17241,
    0.01608,
    0.01039,
    0.00739,
    -0.00514,
    0.00208,
    -0.00111,
    -0.00057,
    0.00056,
    -0.00042,
    0.00042,
    0.00038,
    -0.00024,
    -0.00007,
    0.00004,
    0.00004,
    0.00003,
    0.00003,
    -0.00003,
    0.00003,
    -0.00002,
    -0.00002,
    0.00002
  ),
  add_const = c(
    251.88,
    251.83,
    349.42,
    84.66,
    141.74,
    207.14,
    154.84,
    34.52,
    207.19,
    291.34,
    161.72,
    239.56,
    331.55
  ),
  add_coeff = c(
    0.016321,
    26.651886,
    36.412478,
    18.206239,
    53.303771,
    2.453732,
    7.306860,
    27.261239,
    0.121824,
    1.844379,
    24.198154,
    25.513099,
    3.592518
  ),
  add_factor = c(
    0.000165,
    0.000164,
    0.000126,
    0.000110,
    0.000062,
    0.000060,
    0.000056,
    0.000047,
    0.000042,
    0.000040,
    0.000037,
    0.000035,
    0.000023
  )
)

Try the calcal package in your browser

Any scripts or data that you put into this service are public.

calcal documentation built on Feb. 25, 2026, 9:07 a.m.