Source code for pymeeus.Earth

# -*- coding: utf-8 -*-


# PyMeeus: Python module implementing astronomical algorithms.
# Copyright (C) 2018  Dagoberto Salazar
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.


from math import sqrt, radians, sin, cos, tan, atan

from Angle import Angle
from Epoch import Epoch
from Coordinates import geometric_vsop_pos, apparent_vsop_pos


"""
.. module:: Earth
   :synopsis: Class to model Earth's globe
   :license: GNU Lesser General Public License v3 (LGPLv3)

.. moduleauthor:: Dagoberto Salazar
"""


VSOP87_L = [
    # L0
    [
        [175347045.673, 0.00000000000, 0.00000000000],
        [3341656.456, 4.66925680417, 6283.07584999140],
        [34894.275, 4.62610241759, 12566.15169998280],
        [3417.571, 2.82886579606, 3.52311834900],
        [3497.056, 2.74411800971, 5753.38488489680],
        [3135.896, 3.62767041758, 77713.77146812050],
        [2676.218, 4.41808351397, 7860.41939243920],
        [2342.687, 6.13516237631, 3930.20969621960],
        [1273.166, 2.03709655772, 529.69096509460],
        [1324.292, 0.74246356352, 11506.76976979360],
        [901.855, 2.04505443513, 26.29831979980],
        [1199.167, 1.10962944315, 1577.34354244780],
        [857.223, 3.50849156957, 398.14900340820],
        [779.786, 1.17882652114, 5223.69391980220],
        [990.250, 5.23268129594, 5884.92684658320],
        [753.141, 2.53339053818, 5507.55323866740],
        [505.264, 4.58292563052, 18849.22754997420],
        [492.379, 4.20506639861, 775.52261132400],
        [356.655, 2.91954116867, 0.06731030280],
        [284.125, 1.89869034186, 796.29800681640],
        [242.810, 0.34481140906, 5486.77784317500],
        [317.087, 5.84901952218, 11790.62908865880],
        [271.039, 0.31488607649, 10977.07880469900],
        [206.160, 4.80646606059, 2544.31441988340],
        [205.385, 1.86947813692, 5573.14280143310],
        [202.261, 2.45767795458, 6069.77675455340],
        [126.184, 1.08302630210, 20.77539549240],
        [155.516, 0.83306073807, 213.29909543800],
        [115.132, 0.64544911683, 0.98032106820],
        [102.851, 0.63599846727, 4694.00295470760],
        [101.724, 4.26679821365, 7.11354700080],
        [99.206, 6.20992940258, 2146.16541647520],
        [132.212, 3.41118275555, 2942.46342329160],
        [97.607, 0.68101272270, 155.42039943420],
        [85.128, 1.29870743025, 6275.96230299060],
        [74.651, 1.75508916159, 5088.62883976680],
        [101.895, 0.97569221824, 15720.83878487840],
        [84.711, 3.67080093025, 71430.69561812909],
        [73.547, 4.67926565481, 801.82093112380],
        [73.874, 3.50319443167, 3154.68708489560],
        [78.756, 3.03698313141, 12036.46073488820],
        [79.637, 1.80791330700, 17260.15465469040],
        [85.803, 5.98322631256, 161000.68573767410],
        [56.963, 2.78430398043, 6286.59896834040],
        [61.148, 1.81839811024, 7084.89678111520],
        [69.627, 0.83297596966, 9437.76293488700],
        [56.116, 4.38694880779, 14143.49524243060],
        [62.449, 3.97763880587, 8827.39026987480],
        [51.145, 0.28306864501, 5856.47765911540],
        [55.577, 3.47006009062, 6279.55273164240],
        [41.036, 5.36817351402, 8429.24126646660],
        [51.605, 1.33282746983, 1748.01641306700],
        [51.992, 0.18914945834, 12139.55350910680],
        [49.000, 0.48735065033, 1194.44701022460],
        [39.200, 6.16832995016, 10447.38783960440],
        [35.566, 1.77597314691, 6812.76681508600],
        [36.770, 6.04133859347, 10213.28554621100],
        [36.596, 2.56955238628, 1059.38193018920],
        [33.291, 0.59309499459, 17789.84561978500],
        [35.954, 1.70876111898, 2352.86615377180],
        [40.938, 2.39850881707, 19651.04848109800],
        [30.047, 2.73975123935, 1349.86740965880],
        [30.412, 0.44294464135, 83996.84731811189],
        [23.663, 0.48473567763, 8031.09226305840],
        [23.574, 2.06527720049, 3340.61242669980],
        [21.089, 4.14825464101, 951.71840625060],
        [24.738, 0.21484762138, 3.59042865180],
        [25.352, 3.16470953405, 4690.47983635860],
        [22.820, 5.22197888032, 4705.73230754360],
        [21.419, 1.42563735525, 16730.46368959580],
        [21.891, 5.55594302562, 553.56940284240],
        [17.481, 4.56052900359, 135.06508003540],
        [19.925, 5.22208471269, 12168.00269657460],
        [19.860, 5.77470167653, 6309.37416979120],
        [20.300, 0.37133792946, 283.85931886520],
        [14.421, 4.19315332546, 242.72860397400],
        [16.225, 5.98837722564, 11769.85369316640],
        [15.077, 4.19567181073, 6256.77753019160],
        [19.124, 3.82219996949, 23581.25817731760],
        [18.888, 5.38626880969, 149854.40013480789],
        [14.346, 3.72355084422, 38.02767263580],
        [17.898, 2.21490735647, 13367.97263110660],
        [12.054, 2.62229588349, 955.59974160860],
        [11.287, 0.17739328092, 4164.31198961300],
        [13.971, 4.40138139996, 6681.22485339960],
        [13.621, 1.88934471407, 7632.94325965020],
        [12.503, 1.13052412208, 5.52292430740],
        [10.498, 5.35909518669, 1592.59601363280],
        [9.803, 0.99947478995, 11371.70468975820],
        [9.220, 4.57138609781, 4292.33083295040],
        [10.327, 6.19982566125, 6438.49624942560],
        [12.003, 1.00351456700, 632.78373931320],
        [10.827, 0.32734520222, 103.09277421860],
        [8.356, 4.53902685948, 25132.30339996560],
        [10.005, 6.02914963280, 5746.27133789600],
        [8.409, 3.29946744189, 7234.79425624200],
        [8.006, 5.82145271907, 28.44918746780],
        [10.523, 0.93871805506, 11926.25441366880],
        [7.686, 3.12142363172, 7238.67559160000],
        [9.378, 2.62414241032, 5760.49843189760],
        [8.127, 6.11228001785, 4732.03062734340],
        [9.232, 0.48343968736, 522.57741809380],
        [9.802, 5.24413991147, 27511.46787353720],
        [7.871, 0.99590177926, 5643.17856367740],
        [8.123, 6.27053013650, 426.59819087600],
        [9.048, 5.33686335897, 6386.16862421000],
        [8.620, 4.16538210888, 7058.59846131540],
        [6.297, 4.71724819317, 6836.64525283380],
        [7.575, 3.97382858911, 11499.65622279280],
        [7.756, 2.95729056763, 23013.53953958720],
        [7.314, 0.60652505806, 11513.88331679440],
        [5.955, 2.87641047971, 6283.14316029419],
        [6.534, 5.79072926033, 18073.70493865020],
        [7.188, 3.99831508699, 74.78159856730],
        [7.346, 4.38582365437, 316.39186965660],
        [5.413, 5.39199024641, 419.48464387520],
        [5.127, 2.36062848786, 10973.55568635000],
        [7.056, 0.32258441903, 263.08392337280],
        [6.625, 3.66475158672, 17298.18232732620],
        [6.762, 5.91132535899, 90955.55169449610],
        [4.938, 5.73672165674, 9917.69687450980],
        [5.547, 2.45152597661, 12352.85260454480],
        [5.958, 3.32051344676, 6283.00853968860],
        [4.471, 2.06385999536, 7079.37385680780],
        [6.153, 1.45823331144, 233141.31440436150],
        [4.348, 4.42342175480, 5216.58037280140],
        [6.123, 1.07494905258, 19804.82729158280],
        [4.488, 3.65285037150, 206.18554843720],
        [4.020, 0.83995823171, 20.35531939880],
        [5.188, 4.06503864016, 6208.29425142410],
        [5.307, 0.38217636096, 31441.67756975680],
        [3.785, 2.34369213733, 3.88133535800],
        [4.497, 3.27230796845, 11015.10647733480],
        [4.132, 0.92128915753, 3738.76143010800],
        [3.521, 5.97844807108, 3894.18182954220],
        [4.215, 1.90601120623, 245.83164622940],
        [3.701, 5.03069397926, 536.80451209540],
        [3.865, 1.82634360607, 11856.21865142450],
        [3.652, 1.01838584934, 16200.77272450120],
        [3.390, 0.97785123922, 8635.94200376320],
        [3.737, 2.95380107829, 3128.38876509580],
        [3.507, 3.71291946325, 6290.18939699220],
        [3.086, 3.64646921512, 10.63666534980],
        [3.397, 1.10590684017, 14712.31711645800],
        [3.334, 0.83684924911, 6496.37494542940],
        [2.805, 2.58504514144, 14314.16811304980],
        [3.650, 1.08344142571, 88860.05707098669],
        [3.388, 3.20185096055, 5120.60114558360],
        [3.252, 3.47859752062, 6133.51265285680],
        [2.553, 3.94869034189, 1990.74501704100],
        [3.520, 2.05559692878, 244287.60000722768],
        [2.565, 1.56071784900, 23543.23050468179],
        [2.621, 3.85639359951, 266.60704172180],
        [2.955, 3.39692949667, 9225.53927328300],
        [2.876, 6.02635617464, 154717.60988768269],
        [2.395, 1.16131956403, 10984.19235169980],
        [3.161, 1.32798718453, 10873.98603048040],
        [3.163, 5.08946464629, 21228.39202354580],
        [2.361, 4.27212906992, 6040.34724601740],
        [3.030, 1.80209931347, 35371.88726597640],
        [2.343, 3.57689860500, 10969.96525769820],
        [2.618, 2.57870156528, 22483.84857449259],
        [2.113, 3.71393780256, 65147.61976813770],
        [2.019, 0.81393923319, 170.67287061920],
        [2.003, 0.38091017375, 6172.86952877200],
        [2.506, 3.74379142438, 10575.40668294180],
        [2.381, 0.10581361289, 7.04623669800],
        [1.949, 4.86892513469, 36.02786667740],
        [2.074, 4.22794774570, 5650.29211067820],
        [1.924, 5.59460549860, 6282.09552892320],
        [1.949, 1.07002512703, 5230.80746680300],
        [1.988, 5.19736046771, 6262.30045449900],
        [1.887, 3.74365662683, 23.87843774780],
        [1.787, 1.25929682929, 12559.03815298200],
        [1.883, 1.90364058477, 15.25247118500],
        [1.816, 3.68083868442, 15110.46611986620],
        [1.701, 4.41105895380, 110.20632121940],
        [1.990, 3.93295788548, 6206.80977871580],
        [2.103, 0.75354917468, 13521.75144159140],
        [1.774, 0.48747535361, 1551.04522264800],
        [1.882, 0.86684493432, 22003.91463486980],
        [1.924, 1.22898324132, 709.93304855830],
        [2.009, 4.62850921980, 6037.24420376200],
        [1.924, 0.60231842508, 6284.05617105960],
        [1.596, 3.98332956992, 13916.01910964160],
        [1.664, 4.41939715469, 8662.24032356300],
        [1.971, 1.04560500503, 18209.33026366019],
        [1.942, 4.31335979989, 6244.94281435360],
        [1.476, 0.93271367331, 2379.16447357160],
        [1.810, 0.49112137707, 1.48447270830],
        [1.346, 1.51574702235, 4136.91043351620],
        [1.528, 5.61835711404, 6127.65545055720],
        [1.791, 3.22187270126, 39302.09696219600],
        [1.747, 3.05638656738, 18319.53658487960],
        [1.431, 4.51153808594, 20426.57109242200],
        [1.695, 0.22047718414, 25158.60171976540],
        [1.242, 4.46665769933, 17256.63153634140],
        [1.463, 4.69242679213, 14945.31617355440],
        [1.205, 1.86912144659, 4590.91018048900],
        [1.192, 2.74227166898, 12569.67481833180],
        [1.222, 5.18120087482, 5333.90024102160],
        [1.390, 5.42894648983, 143571.32428481648],
        [1.473, 1.70479245805, 11712.95531823080],
        [1.362, 2.61069503292, 6062.66320755260],
        [1.148, 6.03001800540, 3634.62102451840],
        [1.198, 5.15294130422, 10177.25767953360],
        [1.266, 0.11421493643, 18422.62935909819],
        [1.411, 1.09908857534, 3496.03282613400],
        [1.349, 2.99805109633, 17654.78053974960],
        [1.253, 2.79850152848, 167283.76158766550],
        [1.311, 1.60942984879, 5481.25491886760],
        [1.079, 6.20304501787, 3.28635741780],
        [1.181, 1.20653776978, 131.54196168640],
        [1.254, 5.45103277798, 6076.89030155420],
        [1.035, 2.32142722747, 7342.45778018060],
        [1.117, 0.38838354256, 949.17560896980],
        [0.966, 3.18341890851, 11087.28512591840],
        [1.171, 3.39635049962, 12562.62858163380],
        [1.121, 0.72627490378, 220.41264243880],
        [1.024, 2.19378315386, 11403.67699557500],
        [0.888, 3.91173199285, 4686.88940770680],
        [0.910, 1.98802695087, 735.87651353180],
        [0.830, 0.48984915507, 24072.92146977640],
        [1.096, 6.17377835617, 5436.99301524020],
        [0.908, 0.44959639433, 7477.52286021600],
        [0.974, 1.52996238356, 9623.68827669120],
        [0.840, 1.79543266333, 5429.87946823940],
        [0.778, 6.17699177946, 38.13303563780],
        [0.776, 4.09855402433, 14.22709400160],
        [1.068, 4.64200173735, 43232.30665841560],
        [0.954, 1.49988435748, 1162.47470440780],
        [0.907, 0.86986870809, 10344.29506538580],
        [0.931, 4.06044689031, 28766.92442448400],
        [0.739, 5.04368197372, 639.89728631400],
        [0.937, 3.46884698960, 1589.07289528380],
        [0.763, 5.86304932998, 16858.48253293320],
        [0.953, 4.20801492835, 11190.37790013700],
        [0.708, 1.72899988940, 13095.84266507740],
        [0.969, 1.64439522215, 29088.81141598500],
        [0.717, 0.16688678895, 11.72935283600],
        [0.962, 3.53092337542, 12416.58850284820],
        [0.747, 5.77866940346, 12592.45001978260],
        [0.672, 1.91095796194, 3.93215326310],
        [0.671, 5.46240843677, 18052.92954315780],
        [0.675, 6.28311558823, 4535.05943692440],
        [0.684, 0.39975012080, 5849.36411211460],
        [0.799, 0.29851185294, 12132.43996210600],
        [0.758, 0.96370823331, 1052.26838318840],
        [0.782, 5.33878339919, 13517.87010623340],
        [0.730, 1.70106160291, 17267.26820169119],
        [0.749, 2.59599901875, 11609.86254401220],
        [0.734, 2.78417782952, 640.87760738220],
        [0.688, 5.15048287468, 16496.36139620240],
        [0.770, 1.62469589333, 4701.11650170840],
        [0.633, 2.20587893893, 25934.12433108940],
        [0.760, 4.21317219403, 377.37360791580],
        [0.584, 2.13420121623, 10557.59416082380],
        [0.574, 0.24250054587, 9779.10867612540],
        [0.573, 3.16435264609, 533.21408344360],
        [0.685, 3.19344289472, 12146.66705610760],
        [0.675, 0.96179233959, 10454.50138660520],
        [0.648, 1.46327342555, 6268.84875598980],
        [0.589, 2.50543543638, 3097.88382272579],
        [0.551, 5.28099026956, 9388.00590941520],
        [0.696, 3.65342150016, 4804.20927592700],
        [0.669, 2.51030077026, 2388.89402044920],
        [0.550, 0.06883864342, 20199.09495963300],
        [0.629, 4.13350995675, 45892.73043315699],
        [0.678, 6.09190163533, 135.62532501000],
        [0.593, 1.50136257618, 226858.23855437007],
        [0.542, 3.58573645173, 6148.01076995600],
        [0.682, 5.02203067788, 17253.04110768959],
        [0.565, 4.29309238610, 11933.36796066960],
        [0.486, 0.77746204893, 27.40155609680],
        [0.503, 0.58963565969, 15671.08175940660],
        [0.616, 4.06539884128, 227.47613278900],
        [0.583, 6.12695541996, 18875.52586977400],
        [0.537, 2.15056440980, 21954.15760939799],
        [0.669, 6.06986269566, 47162.51635463520],
        [0.475, 0.40343842110, 6915.85958930460],
        [0.540, 2.83444222174, 5326.78669402080],
        [0.530, 5.26359885263, 10988.80815753500],
        [0.582, 3.24533095664, 153.77881048480],
        [0.641, 3.24711791371, 2107.03450754240],
        [0.621, 3.09698523779, 33019.02111220460],
        [0.466, 3.14982372198, 10440.27429260360],
        [0.466, 0.90708835657, 5966.68398033480],
        [0.528, 0.81926454470, 813.55028395980],
        [0.603, 3.81378921927, 316428.22867391503],
        [0.559, 1.81894804124, 17996.03116822220],
        [0.437, 2.28625594435, 6303.85124548380],
        [0.518, 4.86069178322, 20597.24396304120],
        [0.424, 6.23520018693, 6489.26139842860],
        [0.518, 6.17617826756, 0.24381748350],
        [0.404, 5.72804304258, 5642.19824260920],
        [0.458, 1.34117773915, 6287.00800325450],
        [0.548, 5.68454458320, 155427.54293624099],
        [0.547, 1.03391472061, 3646.35037735440],
        [0.428, 4.69800981138, 846.08283475120],
        [0.413, 6.02520699406, 6279.48542133960],
        [0.534, 3.03030638223, 66567.48586525429],
        [0.383, 1.49056949125, 19800.94595622480],
        [0.410, 5.28319622279, 18451.07854656599],
        [0.352, 4.68891600359, 4907.30205014560],
        [0.480, 5.36572651091, 348.92442044800],
        [0.344, 5.89157452896, 6546.15977336420],
        [0.340, 0.37557426440, 13119.72110282519],
        [0.434, 4.98417785901, 6702.56049386660],
        [0.332, 2.68902519126, 29296.61538957860],
        [0.448, 2.16478480251, 5905.70224207560],
        [0.344, 2.06546633735, 49.75702547180],
        [0.315, 1.24023811803, 4061.21921539440],
        [0.324, 2.30897526929, 5017.50837136500],
        [0.413, 0.17171692962, 6286.66627864320],
        [0.431, 3.86601101393, 12489.88562870720],
        [0.349, 4.55372342974, 4933.20844033260],
        [0.323, 0.41971136084, 10770.89325626180],
        [0.341, 2.68612860807, 11.04570026390],
        [0.316, 3.52936906658, 17782.73207278420],
        [0.315, 5.63357264999, 568.82187402740],
        [0.340, 3.83571212349, 10660.68693504240],
        [0.297, 0.62691416712, 20995.39296644940],
        [0.405, 1.00085779471, 16460.33352952499],
        [0.414, 1.21998752076, 51092.72605085480],
        [0.336, 4.71465945226, 6179.98307577280],
        [0.361, 3.71227508354, 28237.23345938940],
        [0.385, 6.21925225757, 24356.78078864160],
        [0.327, 1.05606504715, 11919.14086666800],
        [0.327, 6.14222420989, 6254.62666252360],
        [0.268, 2.47224339737, 664.75604513000],
        [0.269, 1.86207884109, 23141.55838292460],
        [0.345, 0.93461290184, 6058.73105428950],
        [0.296, 4.51687557180, 6418.14093002680],
        [0.353, 4.50033653082, 36949.23080842420],
        [0.260, 4.04963546305, 6525.80445396540],
        [0.298, 2.20046722622, 156137.47598479927],
        [0.253, 3.49900838384, 29864.33402730900],
        [0.254, 2.44901693835, 5331.35744374080],
        [0.296, 0.84347588787, 5729.50644714900],
        [0.298, 1.29194706125, 22805.73556599360],
        [0.241, 2.00721280805, 16737.57723659660],
        [0.311, 1.23668016334, 6281.59137728310],
        [0.240, 2.51650377121, 6245.04817735560],
        [0.332, 3.55576945724, 7668.63742494250],
        [0.264, 4.44052061202, 12964.30070339100],
        [0.257, 1.79654471948, 11080.17157891760],
        [0.260, 3.33077598420, 5888.44996493220],
        [0.285, 0.30886361430, 11823.16163945020],
        [0.290, 5.70141882483, 77.67377042800],
        [0.255, 4.00939664440, 5881.40372823420],
        [0.253, 4.73318493678, 16723.35014259500],
        [0.228, 0.95333661324, 5540.08578945880],
        [0.319, 1.38633229189, 163096.18036118348],
        [0.224, 1.65156322696, 10027.90319572920],
        [0.226, 0.34106460604, 17796.95916678580],
        [0.236, 4.19817431922, 19.66976089979],
        [0.280, 4.14080268970, 12539.85338018300],
        [0.275, 5.50306930248, 32.53255079140],
        [0.223, 5.23334210294, 56.89837493560],
        [0.217, 6.08587881787, 6805.65326808520],
        [0.280, 4.52472044653, 6016.46880826960],
        [0.227, 5.06509843737, 6277.55292568400],
        [0.226, 5.17755154305, 11720.06886523160],
        [0.245, 3.96486270306, 22.77520145080],
        [0.220, 4.72078081970, 6.62855890001],
        [0.207, 5.71701403951, 41.55079098480],
        [0.204, 3.91227411250, 2699.73481931760],
        [0.209, 0.86881969011, 6321.10352262720],
        [0.200, 2.11984445273, 4274.51831083240],
        [0.200, 5.39839888163, 6019.99192661860],
        [0.209, 5.67606291663, 11293.47067435560],
        [0.252, 1.64965729351, 9380.95967271720],
        [0.275, 5.04826903506, 73.29712585900],
        [0.208, 1.88207277133, 11300.58422135640],
        [0.272, 0.74640926842, 1975.49254585600],
        [0.199, 3.30836672397, 22743.40937951640],
        [0.269, 4.48560812155, 64471.99124174489],
        [0.192, 2.17464236325, 5863.59120611620],
        [0.228, 5.85373115869, 128.01884333740],
        [0.261, 2.64321183295, 55022.93574707440],
        [0.220, 5.75012110079, 29.42950853600],
        [0.187, 4.03230554718, 467.96499035440],
        [0.200, 5.60556112058, 1066.49547719000],
        [0.231, 1.09802712785, 12341.80690428090],
        [0.199, 0.29500625200, 149.56319713460],
        [0.249, 5.10473210814, 7875.67186362420],
        [0.208, 0.93013835019, 14919.01785375460],
        [0.179, 0.87104393079, 12721.57209941700],
        [0.203, 1.56920753653, 28286.99048486120],
        [0.179, 2.47036386443, 16062.18452611680],
        [0.198, 3.54061588502, 30.91412563500],
        [0.171, 3.45356518113, 5327.47610838280],
        [0.183, 0.72325421604, 6272.03014972750],
        [0.216, 2.97174580686, 19402.79695281660],
        [0.168, 2.51550550242, 23937.85638974100],
        [0.195, 0.09045393425, 156.40072050240],
        [0.179, 4.49471798090, 31415.37924995700],
        [0.216, 0.42177594328, 23539.70738633280],
        [0.189, 0.37542530191, 9814.60410029120],
        [0.218, 2.36835880025, 16627.37091537720],
        [0.166, 4.23182968446, 16840.67001081519],
        [0.200, 2.02153258098, 16097.67995028260],
        [0.169, 0.91318727000, 95.97922721780],
        [0.211, 5.73370637657, 151.89728108520],
        [0.204, 0.42643085174, 515.46387109300],
        [0.212, 3.00233538977, 12043.57428188900],
        [0.192, 5.46153589821, 6379.05507720920],
        [0.165, 1.38698167064, 4171.42553661380],
        [0.160, 6.23798383332, 202.25339517410],
        [0.215, 0.20889073407, 5621.84292321040],
        [0.181, 4.12439203622, 13341.67431130680],
        [0.153, 1.24460848836, 29826.30635467320],
        [0.150, 3.12999753018, 799.82112516540],
        [0.175, 4.55671604437, 239424.39025435288],
        [0.192, 1.33928820063, 394.62588505920],
        [0.149, 2.65697593276, 21.33564046700],
        [0.146, 5.58021191726, 412.37109687440],
        [0.156, 3.75650175503, 12323.42309600880],
        [0.143, 3.75708566606, 58864.54391814630],
        [0.143, 3.28248547724, 29.82143814880],
        [0.144, 1.07862546598, 1265.56747862640],
        [0.148, 0.23389236655, 10021.83728009940],
        [0.193, 5.92751083086, 40879.44050464380],
        [0.140, 4.97612440269, 158.94351778320],
        [0.148, 2.61640453469, 17157.06188047180],
        [0.141, 3.66871308723, 26084.02180621620],
        [0.147, 5.09968173403, 661.23292678100],
        [0.146, 4.96885605695, 57375.80190084620],
        [0.142, 0.78678347839, 12779.45079542080],
        [0.134, 4.79432636012, 111.18664228760],
        [0.140, 1.27748013377, 107.66352393860],
        [0.169, 2.74893543762, 26735.94526221320],
        [0.165, 3.95288000638, 6357.85744855870],
        [0.183, 5.43418358741, 369.69981594040],
        [0.134, 3.09132862833, 17.81252211800],
        [0.132, 3.05633896779, 22490.96212149340],
        [0.134, 4.09472795832, 6599.46771964800],
        [0.181, 4.22950689891, 966.97087743560],
        [0.152, 5.28885894415, 12669.24447420140],
        [0.150, 5.86819430908, 97238.62754448749],
        [0.142, 5.87266532526, 22476.73502749179],
        [0.145, 5.07330784304, 87.30820453981],
        [0.133, 5.65471067133, 31.97230581680],
        [0.124, 2.83326217072, 12566.21901028560],
        [0.135, 3.12861731644, 32217.20018108080],
        [0.137, 0.86487461904, 9924.81042151060],
        [0.172, 1.98369595114, 174242.46596404971],
        [0.170, 4.41115280254, 327574.51427678124],
        [0.151, 0.46542099527, 39609.65458316560],
        [0.148, 2.13439571118, 491.66329245880],
        [0.153, 3.78801830344, 17363.24742890899],
        [0.165, 5.31654110459, 16943.76278503380],
        [0.165, 4.06747587817, 58953.14544329400],
        [0.118, 0.63846333239, 6.06591562980],
        [0.159, 0.86086959274, 221995.02880149524],
        [0.119, 5.96432932413, 1385.89527633620],
        [0.114, 5.16516114595, 25685.87280280800],
        [0.112, 3.39403722178, 21393.54196985760],
        [0.112, 4.92889233335, 56.80326216980],
        [0.119, 2.40637635942, 18635.92845453620],
        [0.115, 0.23374479051, 418.92439890060],
        [0.122, 0.93575234049, 24492.40611365159],
        [0.115, 4.58880032176, 26709.64694241340],
        [0.130, 4.85539251000, 22345.26037610820],
        [0.140, 1.09413073202, 44809.65020086340],
        [0.112, 6.05401806281, 433.71173787680],
        [0.104, 1.54931540602, 127.95153303460],
        [0.105, 4.82620858888, 33794.54372352860],
        [0.102, 4.12448497391, 15664.03552270859],
        [0.107, 4.67919356465, 77690.75950573849],
        [0.118, 4.52320170120, 19004.64794940840],
        [0.107, 5.71774478555, 77736.78343050249],
        [0.143, 1.81201813018, 4214.06901508480],
        [0.125, 1.14419195615, 625.67019231240],
        [0.124, 3.27736514057, 12566.08438968000],
        [0.110, 1.08682570828, 2787.04302385740],
        [0.105, 1.78318141871, 18139.29450141590],
        [0.102, 4.75119578149, 12242.64628332540],
        [0.137, 1.43510636754, 86464.61331683119],
        [0.101, 4.91289409429, 401.67212175720],
        [0.129, 1.23567904485, 12029.34718788740],
        [0.138, 2.45654707999, 7576.56007357400],
        [0.103, 0.40004073416, 90279.92316810328],
        [0.108, 0.98989774940, 5636.06501667660],
        [0.117, 5.17362872063, 34520.30930938080],
        [0.100, 3.95534628189, 5547.19933645960],
        [0.098, 1.28118280598, 21548.96236929180],
        [0.097, 3.34717130592, 16310.97904572060],
        [0.098, 4.37041908717, 34513.26307268280],
        [0.125, 2.72164432960, 24065.80792277559],
        [0.102, 0.66938025772, 10239.58386601080],
        [0.119, 1.21689479331, 1478.86657406440],
        [0.094, 1.99595224256, 13362.44970679920],
        [0.094, 4.30965982872, 26880.31981303260],
        [0.095, 2.89807657534, 34911.41207609100],
        [0.106, 1.00156653590, 16522.65971600220],
        [0.097, 0.89642320201, 71980.63357473118],
        [0.116, 4.19967201116, 206.70073729660],
        [0.099, 1.37437847718, 1039.02661079040],
        [0.126, 3.21642544972, 305281.94307104882],
        [0.094, 0.68997876060, 7834.12107263940],
        [0.094, 5.58132218606, 3104.93005942380],
        [0.095, 3.03823741110, 8982.81066930900],
        [0.108, 0.52696637156, 276.74577186440],
        [0.124, 3.43899862683, 172146.97134054030],
        [0.102, 1.04031728553, 95143.13292097810],
        [0.104, 3.39218586218, 290.97286586600],
        [0.110, 3.68205877433, 22380.75580027400],
        [0.117, 0.78475956902, 83286.91426955358],
        [0.083, 0.18241793425, 15141.39079431200],
        [0.089, 4.45371820659, 792.77488846740],
        [0.082, 4.80703651241, 6819.88036208680],
        [0.087, 3.43122851097, 27707.54249429480],
        [0.101, 5.32081603011, 2301.58581590939],
        [0.082, 0.87060089842, 10241.20229116720],
        [0.086, 4.61919461931, 36147.40987730040],
        [0.095, 2.87032884659, 23020.65308658799],
        [0.088, 3.21133165690, 33326.57873317420],
        [0.080, 1.84900424847, 21424.46664430340],
        [0.101, 4.18796434479, 30666.15495843280],
        [0.107, 5.77864921649, 34115.11406927460],
        [0.104, 1.08739495962, 6288.59877429880],
        [0.110, 3.32898859416, 72140.62866668739],
        [0.087, 4.40657711727, 142.17862703620],
        [0.109, 1.94546030825, 24279.10701821359],
        [0.087, 4.32472045435, 742.99006053260],
        [0.107, 4.91580912547, 277.03499374140],
        [0.088, 2.10180220766, 26482.17080962440],
        [0.086, 4.01887374432, 12491.37010141550],
        [0.106, 5.49092372854, 62883.35513951360],
        [0.080, 6.19781316983, 6709.67404086740],
        [0.088, 2.09872810657, 238004.52415723630],
        [0.083, 4.90662164029, 51.28033786241],
        [0.095, 4.13387406591, 18216.44381066100],
        [0.078, 6.06949391680, 148434.53403769128],
        [0.079, 3.03048221644, 838.96928775040],
        [0.074, 5.49813051211, 29026.48522950779],
        [0.073, 3.05008665738, 567.71863773040],
        [0.084, 0.46604373274, 45.14121963660],
        [0.093, 2.52267536308, 48739.85989708300],
        [0.076, 1.76418124905, 41654.96311596780],
        [0.067, 5.77851227793, 6311.52503745920],
        [0.062, 3.32967880172, 15508.61512327440],
        [0.079, 5.59773841328, 71960.38658322369],
        [0.057, 3.90629505268, 5999.21653112620],
        [0.061, 0.05695043232, 7856.89627409019],
        [0.061, 5.63297958433, 7863.94251078820],
        [0.065, 3.72178394016, 12573.26524698360],
        [0.057, 4.18217219541, 26087.90314157420],
        [0.066, 3.92262333487, 69853.35207568129],
        [0.053, 5.51119362045, 77710.24834977149],
        [0.053, 4.88573986961, 77717.29458646949],
        [0.062, 2.88876342225, 9411.46461508720],
        [0.051, 1.12657183874, 82576.98122099529],
        [0.045, 2.95671076719, 24602.61243487099],
        [0.040, 5.55145719241, 12565.17137891460],
        [0.039, 1.20838190039, 18842.11400297339],
        [0.045, 3.18590558749, 45585.17281218740],
        [0.049, 2.44790934886, 13613.80427733600],
    ],
    # L1
    [
        [628331966747.491, 0.00000000000, 0.00000000000],
        [206058.863, 2.67823455584, 6283.07584999140],
        [4303.430, 2.63512650414, 12566.15169998280],
        [425.264, 1.59046980729, 3.52311834900],
        [108.977, 2.96618001993, 1577.34354244780],
        [93.478, 2.59212835365, 18849.22754997420],
        [119.261, 5.79557487799, 26.29831979980],
        [72.122, 1.13846158196, 529.69096509460],
        [67.768, 1.87472304791, 398.14900340820],
        [67.327, 4.40918235168, 5507.55323866740],
        [59.027, 2.88797038460, 5223.69391980220],
        [55.976, 2.17471680261, 155.42039943420],
        [45.407, 0.39803079805, 796.29800681640],
        [36.369, 0.46624739835, 775.52261132400],
        [28.958, 2.64707383882, 7.11354700080],
        [19.097, 1.84628332577, 5486.77784317500],
        [20.844, 5.34138275149, 0.98032106820],
        [18.508, 4.96855124577, 213.29909543800],
        [16.233, 0.03216483047, 2544.31441988340],
        [17.293, 2.99116864949, 6275.96230299060],
        [15.832, 1.43049285325, 2146.16541647520],
        [14.615, 1.20532366323, 10977.07880469900],
        [11.877, 3.25804815607, 5088.62883976680],
        [11.514, 2.07502418155, 4694.00295470760],
        [9.721, 4.23925472239, 1349.86740965880],
        [9.969, 1.30262991097, 6286.59896834040],
        [9.452, 2.69957062864, 242.72860397400],
        [12.461, 2.83432285512, 1748.01641306700],
        [11.808, 5.27379790480, 1194.44701022460],
        [8.577, 5.64475868067, 951.71840625060],
        [10.641, 0.76614199202, 553.56940284240],
        [7.576, 5.30062664886, 2352.86615377180],
        [5.834, 1.76649917904, 1059.38193018920],
        [6.385, 2.65033984967, 9437.76293488700],
        [5.223, 5.66135767624, 71430.69561812909],
        [5.305, 0.90857521574, 3154.68708489560],
        [6.101, 4.66632584188, 4690.47983635860],
        [4.330, 0.24102555403, 6812.76681508600],
        [5.041, 1.42490103709, 6438.49624942560],
        [4.259, 0.77355900599, 10447.38783960440],
        [5.198, 1.85353197345, 801.82093112380],
        [3.744, 2.00119516488, 8031.09226305840],
        [3.558, 2.42901552681, 14143.49524243060],
        [3.372, 3.86210700128, 1592.59601363280],
        [3.374, 0.88776219727, 12036.46073488820],
        [3.175, 3.18785710594, 4705.73230754360],
        [3.221, 0.61599835472, 8429.24126646660],
        [4.132, 5.23992859705, 7084.89678111520],
        [2.970, 6.07026318493, 4292.33083295040],
        [2.900, 2.32464208411, 20.35531939880],
        [3.504, 4.79975694359, 6279.55273164240],
        [2.950, 1.43108874817, 5746.27133789600],
        [2.697, 4.80368225199, 7234.79425624200],
        [2.531, 6.22290682655, 6836.64525283380],
        [2.745, 0.93466065396, 5760.49843189760],
        [3.250, 3.39954640038, 7632.94325965020],
        [2.277, 5.00277837672, 17789.84561978500],
        [2.075, 3.95534978634, 10213.28554621100],
        [2.061, 2.22411683077, 5856.47765911540],
        [2.252, 5.67166499885, 11499.65622279280],
        [2.148, 5.20184578235, 11513.88331679440],
        [1.886, 0.53198320577, 3340.61242669980],
        [1.875, 4.73511970207, 83996.84731811189],
        [2.060, 2.54987293999, 25132.30339996560],
        [1.794, 1.47435409831, 4164.31198961300],
        [1.778, 3.02473091781, 5.52292430740],
        [2.029, 0.90960209983, 6256.77753019160],
        [2.075, 2.26767270157, 522.57741809380],
        [1.772, 3.02622802353, 5753.38488489680],
        [1.569, 6.12410242782, 5216.58037280140],
        [1.590, 4.63713748247, 3.28635741780],
        [1.542, 4.20004448567, 13367.97263110660],
        [1.427, 1.19088061711, 3894.18182954220],
        [1.375, 3.09301252193, 135.06508003540],
        [1.359, 4.24532506641, 426.59819087600],
        [1.340, 5.76511818622, 6040.34724601740],
        [1.284, 3.08524663344, 5643.17856367740],
        [1.250, 3.07748157144, 11926.25441366880],
        [1.551, 3.07665451458, 6681.22485339960],
        [1.268, 2.09196018331, 6290.18939699220],
        [1.144, 3.24444699514, 12168.00269657460],
        [1.248, 3.44504937285, 536.80451209540],
        [1.118, 2.31829670425, 16730.46368959580],
        [1.105, 5.31966001019, 23.87843774780],
        [1.051, 3.75015946014, 7860.41939243920],
        [1.025, 2.44688534235, 1990.74501704100],
        [0.962, 0.81771017882, 3.88133535800],
        [0.910, 0.41727865299, 7079.37385680780],
        [0.883, 5.16833917651, 11790.62908865880],
        [0.957, 4.07673573735, 6127.65545055720],
        [1.110, 3.90096793825, 11506.76976979360],
        [0.802, 3.88778875582, 10973.55568635000],
        [0.780, 2.39934293755, 1589.07289528380],
        [0.758, 1.30034364248, 103.09277421860],
        [0.749, 4.96275803300, 6496.37494542940],
        [0.765, 3.36312388424, 36.02786667740],
        [0.915, 5.41543742089, 206.18554843720],
        [0.776, 2.57589093871, 11371.70468975820],
        [0.772, 3.98369209464, 955.59974160860],
        [0.749, 5.17890001805, 10969.96525769820],
        [0.806, 0.34218864254, 9917.69687450980],
        [0.728, 5.20962563787, 38.02767263580],
        [0.685, 2.77592961854, 20.77539549240],
        [0.636, 4.28242193632, 28.44918746780],
        [0.608, 5.63278508906, 10984.19235169980],
        [0.704, 5.60738823665, 3738.76143010800],
        [0.685, 0.38876148682, 15.25247118500],
        [0.601, 0.73489602442, 419.48464387520],
        [0.716, 2.65279791438, 6309.37416979120],
        [0.584, 5.54502568227, 17298.18232732620],
        [0.650, 1.13379656406, 7058.59846131540],
        [0.688, 2.59683891779, 3496.03282613400],
        [0.485, 0.44467180946, 12352.85260454480],
        [0.528, 2.74936967681, 3930.20969621960],
        [0.597, 5.27668281777, 10575.40668294180],
        [0.583, 3.18929067810, 4732.03062734340],
        [0.526, 5.01697321546, 5884.92684658320],
        [0.540, 1.29175137075, 640.87760738220],
        [0.473, 5.49953306970, 5230.80746680300],
        [0.406, 5.21248452189, 220.41264243880],
        [0.395, 1.87474483222, 16200.77272450120],
        [0.370, 3.84921354713, 18073.70493865020],
        [0.367, 0.88533542778, 6283.14316029419],
        [0.379, 0.37983009325, 10177.25767953360],
        [0.356, 3.84145204913, 11712.95531823080],
        [0.374, 5.01577520608, 7.04623669800],
        [0.381, 4.30250406634, 6062.66320755260],
        [0.471, 0.86381834647, 6069.77675455340],
        [0.367, 1.32943839763, 6283.00853968860],
        [0.460, 5.19667219575, 6284.05617105960],
        [0.333, 5.54256205741, 4686.88940770680],
        [0.341, 4.36522989934, 7238.67559160000],
        [0.336, 4.00205876835, 3097.88382272579],
        [0.359, 6.22679790284, 245.83164622940],
        [0.307, 2.35299010924, 170.67287061920],
        [0.343, 3.77164927143, 6076.89030155420],
        [0.296, 5.44152227481, 17260.15465469040],
        [0.328, 0.13837875384, 11015.10647733480],
        [0.268, 1.13904550630, 12569.67481833180],
        [0.263, 0.00538633678, 4136.91043351620],
        [0.282, 5.04399837480, 7477.52286021600],
        [0.288, 3.13401177517, 12559.03815298200],
        [0.259, 0.93882269387, 5642.19824260920],
        [0.292, 1.98420020514, 12132.43996210600],
        [0.247, 3.84244798532, 5429.87946823940],
        [0.245, 5.70467521726, 65147.61976813770],
        [0.241, 0.99480969552, 3634.62102451840],
        [0.246, 3.06168069935, 110.20632121940],
        [0.239, 6.11855909114, 11856.21865142450],
        [0.263, 0.66348415419, 21228.39202354580],
        [0.262, 1.51070507866, 12146.66705610760],
        [0.230, 1.75927314884, 9779.10867612540],
        [0.223, 2.00967043606, 6172.86952877200],
        [0.246, 1.10411690865, 6282.09552892320],
        [0.221, 3.03945240854, 8635.94200376320],
        [0.214, 4.03840869663, 14314.16811304980],
        [0.236, 5.46915070580, 13916.01910964160],
        [0.224, 4.68408089456, 24072.92146977640],
        [0.212, 2.13695625494, 5849.36411211460],
        [0.207, 3.07724246401, 11.72935283600],
        [0.207, 6.10306282747, 23543.23050468179],
        [0.266, 1.00709566823, 2388.89402044920],
        [0.217, 6.27837036335, 17267.26820169119],
        [0.204, 2.34615348695, 266.60704172180],
        [0.195, 5.55015549753, 6133.51265285680],
        [0.188, 2.52667166175, 6525.80445396540],
        [0.185, 0.90960768344, 18319.53658487960],
        [0.177, 1.73429218289, 154717.60988768269],
        [0.187, 4.76483647432, 4535.05943692440],
        [0.186, 4.63080493407, 10440.27429260360],
        [0.215, 2.81255454560, 7342.45778018060],
        [0.172, 1.45551888559, 9225.53927328300],
        [0.162, 3.30661909388, 639.89728631400],
        [0.168, 2.17671416605, 27.40155609680],
        [0.160, 1.68164180475, 15110.46611986620],
        [0.158, 0.13519771874, 13095.84266507740],
        [0.183, 0.56281322071, 13517.87010623340],
        [0.179, 3.58450811616, 87.30820453981],
        [0.152, 2.84070476818, 5650.29211067820],
        [0.182, 0.44065530624, 17253.04110768959],
        [0.160, 5.95767264171, 4701.11650170840],
        [0.142, 1.46290137520, 11087.28512591840],
        [0.142, 2.04464036087, 20426.57109242200],
        [0.131, 5.40912137746, 2699.73481931760],
        [0.144, 2.07312090485, 25158.60171976540],
        [0.147, 6.15106982168, 9623.68827669120],
        [0.141, 5.55739979498, 10454.50138660520],
        [0.135, 0.06098110407, 16723.35014259500],
        [0.124, 5.81218025669, 17256.63153634140],
        [0.124, 2.36293551623, 4933.20844033260],
        [0.126, 3.47435905118, 22483.84857449259],
        [0.159, 5.63954754618, 5729.50644714900],
        [0.123, 3.92815963256, 17996.03116822220],
        [0.148, 3.02509280598, 1551.04522264800],
        [0.120, 5.91904349732, 6206.80977871580],
        [0.134, 3.11122937825, 21954.15760939799],
        [0.119, 5.52141123450, 709.93304855830],
        [0.122, 3.00813429479, 19800.94595622480],
        [0.127, 1.37618620001, 14945.31617355440],
        [0.141, 2.56889468729, 1052.26838318840],
        [0.123, 2.83671175442, 11919.14086666800],
        [0.118, 0.81934438215, 5331.35744374080],
        [0.151, 2.68731829165, 11769.85369316640],
        [0.119, 5.08835797638, 5481.25491886760],
        [0.153, 2.46021790779, 11933.36796066960],
        [0.108, 1.04936452145, 11403.67699557500],
        [0.128, 0.99794735107, 8827.39026987480],
        [0.144, 2.54869747042, 227.47613278900],
        [0.150, 4.50631437136, 2379.16447357160],
        [0.107, 1.79272017026, 13119.72110282519],
        [0.107, 4.43556814486, 18422.62935909819],
        [0.109, 0.29269062317, 16737.57723659660],
        [0.141, 3.18979826258, 6262.30045449900],
        [0.122, 4.23040027813, 29.42950853600],
        [0.111, 5.16954029551, 17782.73207278420],
        [0.100, 3.52213872761, 18052.92954315780],
        [0.108, 1.08514212991, 16858.48253293320],
        [0.106, 1.96085248410, 74.78159856730],
        [0.110, 2.30582372873, 16460.33352952499],
        [0.097, 3.50918940210, 5333.90024102160],
        [0.099, 3.56417337974, 735.87651353180],
        [0.094, 5.01857894228, 3128.38876509580],
        [0.097, 1.65579893894, 533.21408344360],
        [0.092, 0.89217162285, 29296.61538957860],
        [0.123, 3.16062050433, 9380.95967271720],
        [0.102, 1.20493500565, 23020.65308658799],
        [0.088, 2.21296088224, 12721.57209941700],
        [0.089, 1.54264720310, 20199.09495963300],
        [0.113, 4.83320707870, 16496.36139620240],
        [0.121, 6.19860353182, 9388.00590941520],
        [0.089, 4.08082274765, 22805.73556599360],
        [0.098, 1.09181832830, 12043.57428188900],
        [0.086, 1.13655027605, 143571.32428481648],
        [0.088, 5.96980472191, 107.66352393860],
        [0.082, 5.01340404594, 22003.91463486980],
        [0.094, 1.69615700473, 23006.42599258639],
        [0.081, 3.00657814365, 2118.76386037840],
        [0.098, 1.39215287161, 8662.24032356300],
        [0.077, 3.33555190840, 15720.83878487840],
        [0.082, 5.86880116464, 2787.04302385740],
        [0.076, 5.67183650604, 14.22709400160],
        [0.081, 6.16619455699, 1039.02661079040],
        [0.076, 3.21449884756, 111.18664228760],
        [0.078, 1.37531518377, 21947.11137270000],
        [0.074, 3.58814195051, 11609.86254401220],
        [0.077, 4.84846488388, 22743.40937951640],
        [0.090, 1.48869013606, 15671.08175940660],
        [0.082, 3.48618399109, 29088.81141598500],
        [0.069, 3.55746476593, 4590.91018048900],
        [0.069, 1.93625656075, 135.62532501000],
        [0.070, 2.66548322237, 18875.52586977400],
        [0.069, 5.41478093731, 26735.94526221320],
        [0.079, 5.15154513662, 12323.42309600880],
        [0.094, 3.62899392448, 77713.77146812050],
        [0.078, 4.17011182047, 1066.49547719000],
        [0.071, 3.89435637865, 22779.43724619380],
        [0.063, 4.53968787714, 8982.81066930900],
        [0.069, 0.96028230548, 14919.01785375460],
        [0.076, 3.29092216589, 2942.46342329160],
        [0.063, 4.09167842893, 16062.18452611680],
        [0.065, 3.34580407184, 51.28033786241],
        [0.065, 5.75757544877, 52670.06959330260],
        [0.068, 5.75884067555, 21424.46664430340],
        [0.057, 5.45122399850, 12592.45001978260],
        [0.057, 5.25043362558, 20995.39296644940],
        [0.073, 0.53299090807, 2301.58581590939],
        [0.070, 4.31243357502, 19402.79695281660],
        [0.067, 2.53852336668, 377.37360791580],
        [0.056, 3.20816844695, 24889.57479599160],
        [0.053, 3.17816599142, 18451.07854656599],
        [0.053, 3.61529270216, 77.67377042800],
        [0.053, 0.45467549335, 30666.15495843280],
        [0.061, 0.14807288453, 23013.53953958720],
        [0.051, 3.32803972907, 56.89837493560],
        [0.052, 3.41177624177, 23141.55838292460],
        [0.058, 3.13638677202, 309.27832265580],
        [0.070, 2.50592323465, 31415.37924995700],
        [0.052, 5.10673376738, 17796.95916678580],
        [0.067, 6.27917920454, 22345.26037610820],
        [0.050, 0.42577644151, 25685.87280280800],
        [0.048, 0.70204553333, 1162.47470440780],
        [0.066, 3.64350022359, 15265.88651930040],
        [0.050, 5.74382917440, 19.66976089979],
        [0.050, 4.69825387775, 28237.23345938940],
        [0.047, 5.74015846442, 12139.55350910680],
        [0.054, 1.97301333704, 23581.25817731760],
        [0.049, 4.98223579027, 10021.83728009940],
        [0.046, 5.41431705539, 33019.02111220460],
        [0.051, 1.23882053879, 12539.85338018300],
        [0.046, 2.41369976086, 98068.53671630539],
        [0.044, 0.80750593746, 167283.76158766550],
        [0.045, 4.39613584445, 433.71173787680],
        [0.044, 2.57358208785, 12964.30070339100],
        [0.046, 0.26142733448, 11.04570026390],
        [0.045, 2.46230645202, 51868.24866217880],
        [0.048, 0.89551707131, 56600.27928952220],
        [0.057, 1.86416707010, 25287.72379939980],
        [0.042, 5.26377513431, 26084.02180621620],
        [0.049, 3.17757670611, 6303.85124548380],
        [0.052, 3.65266055509, 7872.14874527520],
        [0.040, 1.81891629936, 34596.36465465240],
        [0.043, 1.94164978061, 1903.43681250120],
        [0.041, 0.74461854136, 23937.85638974100],
        [0.048, 6.26034008181, 28286.99048486120],
        [0.045, 5.45575017530, 60530.48898574180],
        [0.040, 2.92105728682, 21548.96236929180],
        [0.040, 0.04502010161, 38526.57435087200],
        [0.053, 3.64791042082, 11925.27409260060],
        [0.041, 5.04048954693, 27832.03821928320],
        [0.042, 5.19292937193, 19004.64794940840],
        [0.040, 2.57120233428, 24356.78078864160],
        [0.038, 3.49190341464, 226858.23855437007],
        [0.039, 4.61184303844, 95.97922721780],
        [0.043, 2.20648228147, 13521.75144159140],
        [0.040, 5.83461945819, 16193.65917750039],
        [0.045, 3.73714372195, 7875.67186362420],
        [0.043, 1.14078465002, 49.75702547180],
        [0.037, 1.29390383811, 310.84079886840],
        [0.038, 0.95970925950, 664.75604513000],
        [0.037, 4.27532649462, 6709.67404086740],
        [0.038, 2.20108541046, 28628.33622609960],
        [0.039, 0.85957361635, 16522.65971600220],
        [0.040, 4.35214003837, 48739.85989708300],
        [0.036, 1.68167662194, 10344.29506538580],
        [0.040, 5.13217319067, 15664.03552270859],
        [0.036, 3.72187132496, 30774.50164257480],
        [0.036, 3.32158458257, 16207.88627150200],
        [0.045, 3.94202418608, 10988.80815753500],
        [0.039, 1.51948786199, 12029.34718788740],
        [0.026, 3.87685883180, 6262.72053059260],
        [0.024, 4.91804163466, 19651.04848109800],
        [0.023, 0.29300197709, 13362.44970679920],
        [0.021, 3.18605672363, 6277.55292568400],
        [0.021, 6.07546891132, 18139.29450141590],
        [0.022, 2.31199937177, 6303.43116939020],
        [0.021, 3.58418394393, 18209.33026366019],
        [0.026, 2.06801296900, 12573.26524698360],
        [0.021, 1.56857722317, 13341.67431130680],
        [0.024, 5.72605158675, 29864.33402730900],
        [0.024, 1.40237993205, 14712.31711645800],
        [0.025, 5.71466092822, 25934.12433108940],
    ],
    # L2
    [
        [52918.870, 0.00000000000, 0.00000000000],
        [8719.837, 1.07209665242, 6283.07584999140],
        [309.125, 0.86728818832, 12566.15169998280],
        [27.339, 0.05297871691, 3.52311834900],
        [16.334, 5.18826691036, 26.29831979980],
        [15.752, 3.68457889430, 155.42039943420],
        [9.541, 0.75742297675, 18849.22754997420],
        [8.937, 2.05705419118, 77713.77146812050],
        [6.952, 0.82673305410, 775.52261132400],
        [5.064, 4.66284525271, 1577.34354244780],
        [4.061, 1.03057162962, 7.11354700080],
        [3.463, 5.14074632811, 796.29800681640],
        [3.169, 6.05291851171, 5507.55323866740],
        [3.020, 1.19246506441, 242.72860397400],
        [2.886, 6.11652627155, 529.69096509460],
        [3.810, 3.44050803490, 5573.14280143310],
        [2.714, 0.30637881025, 398.14900340820],
        [2.371, 4.38118838167, 5223.69391980220],
        [2.538, 2.27992810679, 553.56940284240],
        [2.079, 3.75435330484, 0.98032106820],
        [1.675, 0.90216407959, 951.71840625060],
        [1.534, 5.75900462759, 1349.86740965880],
        [1.224, 2.97328088405, 2146.16541647520],
        [1.449, 4.36415913970, 1748.01641306700],
        [1.341, 3.72061130861, 1194.44701022460],
        [1.254, 2.94846826628, 6438.49624942560],
        [0.999, 5.98640014468, 6286.59896834040],
        [0.917, 4.79788687522, 5088.62883976680],
        [0.828, 3.31321076572, 213.29909543800],
        [1.103, 1.27104454479, 161000.68573767410],
        [0.762, 3.41582762988, 5486.77784317500],
        [1.044, 0.60409577691, 3154.68708489560],
        [0.887, 5.23465144638, 7084.89678111520],
        [0.645, 1.60096192515, 2544.31441988340],
        [0.681, 3.43155669169, 4694.00295470760],
        [0.605, 2.47806340546, 10977.07880469900],
        [0.706, 6.19393222575, 4690.47983635860],
        [0.643, 1.98042503148, 801.82093112380],
        [0.502, 1.44394375363, 6836.64525283380],
        [0.490, 2.34129524194, 1592.59601363280],
        [0.458, 1.30876448575, 4292.33083295040],
        [0.431, 0.03526421494, 7234.79425624200],
        [0.379, 3.17030522615, 6309.37416979120],
        [0.348, 0.99049550009, 6040.34724601740],
        [0.386, 1.57019797263, 71430.69561812909],
        [0.347, 0.67013291338, 1059.38193018920],
        [0.458, 3.81499443681, 149854.40013480789],
        [0.302, 1.91760044838, 10447.38783960440],
        [0.307, 3.55343347416, 8031.09226305840],
        [0.395, 4.93701776616, 7632.94325965020],
        [0.314, 3.18093696547, 2352.86615377180],
        [0.282, 4.41936437052, 9437.76293488700],
        [0.276, 2.71314254553, 3894.18182954220],
        [0.298, 2.52037474210, 6127.65545055720],
        [0.230, 1.37790215549, 4705.73230754360],
        [0.252, 0.55330133471, 6279.55273164240],
        [0.255, 5.26570187369, 6812.76681508600],
        [0.275, 0.67264264272, 25132.30339996560],
        [0.178, 0.92820785174, 1990.74501704100],
        [0.221, 0.63897368842, 6256.77753019160],
        [0.155, 0.77319790838, 14143.49524243060],
        [0.150, 2.40470465561, 426.59819087600],
        [0.196, 6.06877865012, 640.87760738220],
        [0.137, 2.21679460145, 8429.24126646660],
        [0.127, 3.26094223174, 17789.84561978500],
        [0.128, 5.47237279946, 12036.46073488820],
        [0.122, 2.16291082757, 10213.28554621100],
        [0.118, 0.45789822268, 7058.59846131540],
        [0.141, 2.34932647403, 11506.76976979360],
        [0.100, 0.85621569847, 6290.18939699220],
        [0.092, 5.10587476002, 7079.37385680780],
        [0.126, 2.65428307012, 88860.05707098669],
        [0.106, 5.85646710022, 7860.41939243920],
        [0.084, 3.57457554262, 16730.46368959580],
        [0.089, 4.21433259618, 83996.84731811189],
        [0.097, 5.57938280855, 13367.97263110660],
        [0.102, 2.05853060226, 87.30820453981],
        [0.080, 4.73792651816, 11926.25441366880],
        [0.080, 5.41418965044, 10973.55568635000],
        [0.106, 4.10978997399, 3496.03282613400],
        [0.102, 3.62650006043, 244287.60000722768],
        [0.075, 4.89483161769, 5643.17856367740],
        [0.087, 0.42863750683, 11015.10647733480],
        [0.069, 1.88908760720, 10177.25767953360],
        [0.089, 1.35567273119, 6681.22485339960],
        [0.066, 0.99455837265, 6525.80445396540],
        [0.067, 5.51240997070, 3097.88382272579],
        [0.076, 2.72016814799, 4164.31198961300],
        [0.063, 1.44349902540, 9917.69687450980],
        [0.078, 3.51469733747, 11856.21865142450],
        [0.085, 0.50956043858, 10575.40668294180],
        [0.067, 3.62043033405, 16496.36139620240],
        [0.055, 5.24637517308, 3340.61242669980],
        [0.048, 5.43966777314, 20426.57109242200],
        [0.064, 5.79535817813, 2388.89402044920],
        [0.046, 5.43499966519, 6275.96230299060],
        [0.050, 3.86263598617, 5729.50644714900],
        [0.044, 1.52269529228, 12168.00269657460],
        [0.057, 4.96352373486, 14945.31617355440],
        [0.045, 1.00861230160, 8635.94200376320],
        [0.043, 3.30685683359, 9779.10867612540],
        [0.042, 0.63481258930, 2699.73481931760],
        [0.041, 5.67996766641, 11712.95531823080],
        [0.056, 4.34024451468, 90955.55169449610],
        [0.041, 5.81722212845, 709.93304855830],
        [0.053, 6.17052087143, 233141.31440436150],
        [0.037, 3.12495025087, 16200.77272450120],
        [0.035, 5.76973458495, 12569.67481833180],
        [0.037, 0.31656444326, 24356.78078864160],
        [0.035, 0.96229051027, 17298.18232732620],
        [0.033, 5.23130355867, 5331.35744374080],
        [0.035, 0.62517020593, 25158.60171976540],
        [0.035, 0.80004512129, 13916.01910964160],
        [0.037, 2.89336088688, 12721.57209941700],
        [0.030, 4.50198402401, 23543.23050468179],
        [0.030, 5.31355708693, 18319.53658487960],
        [0.029, 3.47275229977, 13119.72110282519],
        [0.029, 3.11002782516, 4136.91043351620],
        [0.032, 5.52273255667, 5753.38488489680],
        [0.035, 3.79699996680, 143571.32428481648],
        [0.026, 1.50634201907, 154717.60988768269],
        [0.030, 3.53519084118, 6284.05617105960],
        [0.023, 4.41808025967, 5884.92684658320],
        [0.025, 1.38477355808, 65147.61976813770],
        [0.023, 3.49782549797, 7477.52286021600],
        [0.019, 3.14329413716, 6496.37494542940],
        [0.019, 2.20135125199, 18073.70493865020],
        [0.019, 4.95020255309, 3930.20969621960],
        [0.019, 0.57998702747, 31415.37924995700],
        [0.021, 1.75474323399, 12139.55350910680],
        [0.019, 3.92233070499, 19651.04848109800],
        [0.014, 0.98131213224, 12559.03815298200],
        [0.019, 4.93309333729, 2942.46342329160],
        [0.016, 5.55997534558, 8827.39026987480],
        [0.013, 1.68808165516, 4535.05943692440],
        [0.013, 0.33982116161, 4933.20844033260],
        [0.012, 1.85426309994, 5856.47765911540],
        [0.010, 4.82763996845, 13095.84266507740],
        [0.011, 5.38005490571, 11790.62908865880],
        [0.010, 1.40815507226, 10988.80815753500],
        [0.011, 3.05005267431, 17260.15465469040],
        [0.010, 4.93364992366, 12352.85260454480],
    ],
    # L3
    [
        [289.226, 5.84384198723, 6283.07584999140],
        [34.955, 0.00000000000, 0.00000000000],
        [16.819, 5.48766912348, 12566.15169998280],
        [2.962, 5.19577265202, 155.42039943420],
        [1.288, 4.72200252235, 3.52311834900],
        [0.635, 5.96925937141, 242.72860397400],
        [0.714, 5.30045809128, 18849.22754997420],
        [0.402, 3.78682982419, 553.56940284240],
        [0.072, 4.29768126180, 6286.59896834040],
        [0.067, 0.90721687647, 6127.65545055720],
        [0.036, 5.24029648014, 6438.49624942560],
        [0.024, 5.16003960716, 25132.30339996560],
        [0.023, 3.01921570335, 6309.37416979120],
        [0.017, 5.82863573502, 6525.80445396540],
        [0.017, 3.67772863930, 71430.69561812909],
        [0.009, 4.58467294499, 1577.34354244780],
        [0.008, 1.40626662824, 11856.21865142450],
        [0.008, 5.07561257196, 6256.77753019160],
        [0.007, 2.82473374405, 83996.84731811189],
        [0.005, 2.71488713339, 10977.07880469900],
        [0.005, 3.76879847273, 12036.46073488820],
        [0.005, 4.28412873331, 6275.96230299060],
    ],
    # L4
    [
        [114.084, 3.14159265359, 0.00000000000],
        [7.717, 4.13446589358, 6283.07584999140],
        [0.765, 3.83803776214, 12566.15169998280],
        [0.420, 0.41925861858, 155.42039943420],
        [0.040, 3.59847585840, 18849.22754997420],
        [0.041, 3.14398414077, 3.52311834900],
        [0.035, 5.00298940826, 5573.14280143310],
        [0.013, 0.48794833701, 77713.77146812050],
        [0.010, 5.64801766350, 6127.65545055720],
        [0.008, 2.84160570605, 161000.68573767410],
        [0.002, 0.54912904658, 6438.49624942560],
    ],
    # L5
    [
        [0.878, 3.14159265359, 0.00000000000],
        [0.172, 2.76579069510, 6283.07584999140],
        [0.050, 2.01353298182, 155.42039943420],
        [0.028, 2.21496423926, 12566.15169998280],
        [0.005, 1.75600058765, 18849.22754997420],
    ],
]
"""This table contains Earth's periodic terms (all of them) from the planetary
theory VSOP87 for the heliocentric longitude at the equinox of date (taken from
the 'D' solution). In Meeus' book a shortened version can be found in pages
418-420."""


VSOP87_B = [
    # B0
    [
        [279.620, 3.19870156017, 84334.66158130829],
        [101.643, 5.42248619256, 5507.55323866740],
        [80.445, 3.88013204458, 5223.69391980220],
        [43.806, 3.70444689758, 2352.86615377180],
        [31.933, 4.00026369781, 1577.34354244780],
        [22.724, 3.98473831560, 1047.74731175470],
        [16.392, 3.56456119782, 5856.47765911540],
        [18.141, 4.98367470263, 6283.07584999140],
        [14.443, 3.70275614914, 9437.76293488700],
        [14.304, 3.41117857525, 10213.28554621100],
        [11.246, 4.82820690530, 14143.49524243060],
        [10.900, 2.08574562327, 6812.76681508600],
        [9.714, 3.47303947752, 4694.00295470760],
        [10.367, 4.05663927946, 71092.88135493269],
        [8.775, 4.44016515669, 5753.38488489680],
        [8.366, 4.99251512180, 7084.89678111520],
        [6.921, 4.32559054073, 6275.96230299060],
        [9.145, 1.14182646613, 6620.89011318780],
        [7.194, 3.60193205752, 529.69096509460],
        [7.698, 5.55425745881, 167621.57585086190],
        [5.285, 2.48446991566, 4705.73230754360],
        [5.208, 6.24992674537, 18073.70493865020],
        [4.529, 2.33827747356, 6309.37416979120],
        [5.579, 4.41023653738, 7860.41939243920],
        [4.743, 0.70995680136, 5884.92684658320],
        [4.301, 1.10255777773, 6681.22485339960],
        [3.849, 1.82229412531, 5486.77784317500],
        [4.093, 5.11700141207, 13367.97263110660],
        [3.681, 0.43793170356, 3154.68708489560],
        [3.420, 5.42034800952, 6069.77675455340],
        [3.617, 6.04641937526, 3930.20969621960],
        [3.670, 4.58210192227, 12194.03291462090],
        [2.918, 1.95463881126, 10977.07880469900],
        [2.797, 5.61259275048, 11790.62908865880],
        [2.502, 0.60499729367, 6496.37494542940],
        [2.319, 5.01648216014, 1059.38193018920],
        [2.684, 1.39470396488, 22003.91463486980],
        [2.428, 3.24183056052, 78051.58573131690],
        [2.120, 4.30691000285, 5643.17856367740],
        [2.257, 3.15557225618, 90617.73743129970],
        [1.813, 3.75574218285, 3340.61242669980],
        [2.226, 2.79699346659, 12036.46073488820],
        [1.888, 0.86991545823, 8635.94200376320],
        [1.517, 1.95852055701, 398.14900340820],
        [1.581, 3.19976230948, 5088.62883976680],
        [1.421, 6.25530883827, 2544.31441988340],
        [1.595, 0.25619915135, 17298.18232732620],
        [1.391, 4.69964175561, 7058.59846131540],
        [1.478, 2.81808207569, 25934.12433108940],
        [1.481, 3.65823554806, 11506.76976979360],
        [1.693, 4.95689385293, 156475.29024799570],
        [1.183, 1.29343061246, 775.52261132400],
        [1.114, 2.37889311846, 3738.76143010800],
        [0.994, 4.30088900425, 9225.53927328300],
        [0.924, 3.06451026812, 4164.31198961300],
        [0.867, 0.55606931068, 8429.24126646660],
        [0.988, 5.97286104208, 7079.37385680780],
        [0.824, 1.50984806173, 10447.38783960440],
        [0.915, 0.12635654592, 11015.10647733480],
        [0.742, 1.99159139281, 26087.90314157420],
        [1.039, 3.14159265359, 0.00000000000],
        [0.850, 4.24120016095, 29864.33402730900],
        [0.755, 2.89631873320, 4732.03062734340],
        [0.714, 1.37548118603, 2146.16541647520],
        [0.708, 1.91406542362, 8031.09226305840],
        [0.746, 0.57893808616, 796.29800681640],
        [0.802, 5.12339137230, 2942.46342329160],
        [0.751, 1.67479850166, 21228.39202354580],
        [0.602, 4.09976538826, 64809.80550494129],
        [0.594, 3.49580704962, 16496.36139620240],
        [0.592, 4.59481504319, 4690.47983635860],
        [0.530, 5.73979295200, 8827.39026987480],
        [0.503, 5.66433137112, 33794.54372352860],
        [0.483, 1.57106522411, 801.82093112380],
        [0.438, 0.06707733767, 3128.38876509580],
        [0.423, 2.86944595927, 12566.15169998280],
        [0.504, 3.26207669160, 7632.94325965020],
        [0.552, 1.02926440457, 239762.20451754928],
        [0.427, 3.67434378210, 213.29909543800],
        [0.404, 1.46193297142, 15720.83878487840],
        [0.503, 4.85802444134, 6290.18939699220],
        [0.417, 0.81920713533, 5216.58037280140],
        [0.365, 0.01002966162, 12168.00269657460],
        [0.363, 1.28376436579, 6206.80977871580],
        [0.353, 4.70059133110, 7234.79425624200],
        [0.415, 0.96862624175, 4136.91043351620],
        [0.387, 3.09145061418, 25158.60171976540],
        [0.373, 2.65119262792, 7342.45778018060],
        [0.361, 2.97762937739, 9623.68827669120],
        [0.418, 3.75759994446, 5230.80746680300],
        [0.396, 1.22507712354, 6438.49624942560],
        [0.322, 1.21162178805, 8662.24032356300],
        [0.284, 5.64170320068, 1589.07289528380],
        [0.379, 1.72248432748, 14945.31617355440],
        [0.320, 3.94161159962, 7330.82316174610],
        [0.313, 5.47602376446, 1194.44701022460],
        [0.292, 1.38971327603, 11769.85369316640],
        [0.305, 0.80429352049, 37724.75341974820],
        [0.257, 5.81382809757, 426.59819087600],
        [0.265, 6.10358507671, 6836.64525283380],
        [0.250, 4.56452895547, 7477.52286021600],
        [0.266, 2.62926282354, 7238.67559160000],
        [0.263, 6.22089501237, 6133.51265285680],
        [0.306, 2.79682380531, 1748.01641306700],
        [0.236, 2.46093023714, 11371.70468975820],
        [0.316, 1.62662805006, 250908.49012041549],
        [0.216, 3.68721275185, 5849.36411211460],
        [0.230, 0.36165162947, 5863.59120611620],
        [0.233, 5.03509933858, 20426.57109242200],
        [0.200, 5.86073159059, 4535.05943692440],
        [0.277, 4.65400292395, 82239.16695779889],
        [0.209, 3.72323200804, 10973.55568635000],
        [0.199, 5.05186622555, 5429.87946823940],
        [0.256, 2.40923279770, 19651.04848109800],
        [0.210, 4.50691909144, 29088.81141598500],
        [0.181, 6.00294783127, 4292.33083295040],
        [0.249, 0.12900984422, 154379.79562448629],
        [0.209, 3.87759458598, 17789.84561978500],
        [0.225, 3.18339652605, 18875.52586977400],
        [0.191, 4.53897489299, 18477.10876461230],
        [0.172, 2.09694183014, 13095.84266507740],
        [0.182, 3.16107943500, 16730.46368959580],
        [0.188, 2.22746128596, 41654.96311596780],
        [0.164, 5.18686275017, 5481.25491886760],
        [0.160, 2.49298855159, 12592.45001978260],
        [0.155, 1.59595438230, 10021.83728009940],
        [0.135, 0.21349051064, 10988.80815753500],
        [0.178, 3.80375177970, 23581.25817731760],
        [0.123, 1.66800739151, 15110.46611986620],
        [0.122, 2.72678272244, 18849.22754997420],
        [0.126, 1.17675512910, 14919.01785375460],
        [0.142, 3.95053441332, 337.81426319640],
        [0.116, 6.06340906229, 6709.67404086740],
        [0.137, 3.52143246757, 12139.55350910680],
        [0.136, 2.92179113542, 32217.20018108080],
        [0.110, 3.51203379263, 18052.92954315780],
        [0.147, 4.63371971408, 22805.73556599360],
        [0.108, 5.45280814878, 7.11354700080],
        [0.148, 0.65447253687, 95480.94718417450],
        [0.119, 5.92110458985, 33019.02111220460],
        [0.110, 5.34824206306, 639.89728631400],
        [0.106, 3.71081682629, 14314.16811304980],
        [0.139, 6.17607198418, 24356.78078864160],
        [0.118, 5.59738712670, 161338.50000087050],
        [0.117, 3.65065271640, 45585.17281218740],
        [0.127, 4.74596574209, 49515.38250840700],
        [0.120, 1.04211499785, 6915.85958930460],
        [0.120, 5.60638811846, 5650.29211067820],
        [0.115, 3.10668213289, 14712.31711645800],
        [0.099, 0.69018940049, 12779.45079542080],
        [0.097, 1.07908724794, 9917.69687450980],
        [0.093, 2.62295197319, 17260.15465469040],
        [0.099, 4.45774681732, 4933.20844033260],
        [0.123, 1.37488922089, 28286.99048486120],
        [0.121, 5.19767249813, 27511.46787353720],
        [0.105, 0.87192267806, 77375.95720492408],
        [0.087, 3.93637812950, 17654.78053974960],
        [0.122, 2.23956068680, 83997.09113559539],
        [0.087, 4.18201600952, 22779.43724619380],
        [0.104, 4.59580877295, 1349.86740965880],
        [0.102, 2.83545248411, 12352.85260454480],
        [0.102, 3.97386522171, 10818.13528691580],
        [0.101, 4.32892825857, 36147.40987730040],
        [0.094, 5.00001709261, 150192.21439800429],
        [0.077, 3.97199369296, 1592.59601363280],
        [0.100, 6.07733097102, 26735.94526221320],
        [0.086, 5.26029638250, 28313.28880466100],
        [0.093, 4.31900620254, 44809.65020086340],
        [0.076, 6.22743405935, 13521.75144159140],
        [0.072, 1.55820597747, 6256.77753019160],
        [0.082, 4.95202664555, 10575.40668294180],
        [0.082, 1.69647647075, 1990.74501704100],
        [0.075, 2.29836095644, 3634.62102451840],
        [0.075, 2.66367876557, 16200.77272450120],
        [0.087, 0.26630214764, 31441.67756975680],
        [0.077, 2.25530954137, 5235.32853823670],
        [0.076, 1.09869730846, 12903.96596317920],
        [0.058, 4.28246138307, 12559.03815298200],
        [0.064, 5.51112830114, 173904.65170085328],
        [0.056, 2.60133794851, 73188.37597844210],
        [0.055, 5.81483150022, 143233.51002162008],
        [0.054, 3.38482031504, 323049.11878710287],
        [0.039, 3.28500401343, 71768.50988132549],
        [0.039, 3.11239910690, 96900.81328129109],
    ],
    # B1
    [
        [9.030, 3.89729061890, 5507.55323866740],
        [6.177, 1.73038850355, 5223.69391980220],
        [3.800, 5.24404145734, 2352.86615377180],
        [2.834, 2.47345037450, 1577.34354244780],
        [1.817, 0.41874743765, 6283.07584999140],
        [1.499, 1.83320979291, 5856.47765911540],
        [1.466, 5.69401926017, 5753.38488489680],
        [1.301, 2.18890066314, 9437.76293488700],
        [1.233, 4.95222451476, 10213.28554621100],
        [1.021, 0.12866660208, 7860.41939243920],
        [0.982, 0.09005453285, 14143.49524243060],
        [0.865, 1.73949953555, 3930.20969621960],
        [0.581, 2.26949174067, 5884.92684658320],
        [0.524, 5.65662503159, 529.69096509460],
        [0.473, 6.22750969242, 6309.37416979120],
        [0.451, 1.53288619213, 18073.70493865020],
        [0.364, 3.61614477374, 13367.97263110660],
        [0.372, 3.22470721320, 6275.96230299060],
        [0.268, 2.34341267879, 11790.62908865880],
        [0.322, 0.94084045832, 6069.77675455340],
        [0.232, 0.26781182579, 7058.59846131540],
        [0.216, 6.05952221329, 10977.07880469900],
        [0.232, 2.93325646109, 22003.91463486980],
        [0.204, 3.86264841382, 6496.37494542940],
        [0.202, 2.81892511133, 15720.83878487840],
        [0.185, 4.93512381859, 12036.46073488820],
        [0.220, 3.99305643742, 6812.76681508600],
        [0.166, 1.74970002999, 11506.76976979360],
        [0.212, 1.57166285369, 4694.00295470760],
        [0.157, 1.08259734788, 5643.17856367740],
        [0.154, 5.99434678412, 5486.77784317500],
        [0.144, 5.23285656085, 78051.58573131690],
        [0.144, 1.16454655948, 90617.73743129970],
        [0.137, 2.67760436027, 6290.18939699220],
        [0.180, 2.06509026215, 7084.89678111520],
        [0.121, 5.90212574947, 9225.53927328300],
        [0.150, 2.00175038718, 5230.80746680300],
        [0.149, 5.06157254516, 17298.18232732620],
        [0.118, 5.39979058038, 3340.61242669980],
        [0.161, 3.32421999691, 6283.31966747490],
        [0.121, 4.36722193162, 19651.04848109800],
        [0.116, 5.83462858507, 4705.73230754360],
        [0.128, 4.35489873365, 25934.12433108940],
        [0.143, 0.00000000000, 0.00000000000],
        [0.109, 2.52157834166, 6438.49624942560],
        [0.099, 2.70727488041, 5216.58037280140],
        [0.103, 0.93782340879, 8827.39026987480],
        [0.082, 4.29214680390, 8635.94200376320],
        [0.079, 2.24085737326, 1059.38193018920],
        [0.097, 5.50959692365, 29864.33402730900],
        [0.072, 0.21891639822, 21228.39202354580],
        [0.071, 2.86755026812, 6681.22485339960],
        [0.074, 2.20184828895, 37724.75341974820],
        [0.063, 4.45586625948, 7079.37385680780],
        [0.061, 0.63918772258, 33794.54372352860],
        [0.047, 2.09070235724, 3128.38876509580],
        [0.047, 3.32543843300, 26087.90314157420],
        [0.049, 1.60680905005, 6702.56049386660],
        [0.057, 0.11215813438, 29088.81141598500],
        [0.056, 5.47982934911, 775.52261132400],
        [0.050, 1.89396788463, 12139.55350910680],
        [0.047, 2.97214907240, 20426.57109242200],
        [0.041, 5.55329394890, 11015.10647733480],
        [0.041, 5.91861144924, 23581.25817731760],
        [0.045, 4.95273290181, 5863.59120611620],
        [0.050, 3.62740835096, 41654.96311596780],
        [0.037, 6.09033460601, 64809.80550494129],
        [0.037, 5.86153655431, 12566.15169998280],
        [0.046, 1.65798680284, 25158.60171976540],
        [0.038, 2.00673650251, 426.59819087600],
        [0.036, 6.24373396652, 6283.14316029419],
        [0.036, 0.40465162918, 6283.00853968860],
        [0.032, 6.03707103538, 2942.46342329160],
        [0.041, 4.86809570283, 1592.59601363280],
        [0.028, 4.38359423735, 7632.94325965020],
        [0.028, 6.03334294232, 17789.84561978500],
        [0.026, 3.88971333608, 5331.35744374080],
        [0.026, 5.94932724051, 16496.36139620240],
        [0.031, 1.44666331503, 16730.46368959580],
        [0.026, 6.26376705837, 23543.23050468179],
        [0.033, 0.93797239147, 213.29909543800],
        [0.026, 3.71858432944, 13095.84266507740],
        [0.027, 0.60565274405, 10988.80815753500],
        [0.023, 4.44388985550, 18849.22754997420],
        [0.028, 1.53862289477, 6279.48542133960],
        [0.028, 1.96831814872, 6286.66627864320],
        [0.028, 5.78094918529, 15110.46611986620],
        [0.026, 2.48165809843, 5729.50644714900],
        [0.020, 3.85655029499, 9623.68827669120],
        [0.021, 5.83006047147, 7234.79425624200],
        [0.021, 0.69628570421, 398.14900340820],
        [0.022, 5.02222806555, 6127.65545055720],
        [0.020, 3.47611265290, 6148.01076995600],
        [0.020, 0.90769829044, 5481.25491886760],
        [0.020, 0.03081589303, 6418.14093002680],
        [0.020, 3.74220084927, 1589.07289528380],
        [0.021, 4.00149269576, 3154.68708489560],
        [0.018, 1.58348238359, 2118.76386037840],
        [0.019, 0.85407021371, 14712.31711645800],
    ],
    # B2
    [
        [1.662, 1.62703209173, 84334.66158130829],
        [0.492, 2.41382223971, 1047.74731175470],
        [0.344, 2.24353004539, 5507.55323866740],
        [0.258, 6.00906896311, 5223.69391980220],
        [0.131, 0.95447345240, 6283.07584999140],
        [0.086, 1.67530247303, 7860.41939243920],
        [0.090, 0.97606804452, 1577.34354244780],
        [0.090, 0.37899871725, 2352.86615377180],
        [0.089, 6.25807507963, 10213.28554621100],
        [0.075, 0.84213523741, 167621.57585086190],
        [0.052, 1.70501566089, 14143.49524243060],
        [0.057, 6.15295833679, 12194.03291462090],
        [0.051, 1.27616016740, 5753.38488489680],
        [0.051, 5.37229738682, 6812.76681508600],
        [0.034, 1.73672994279, 7058.59846131540],
        [0.038, 2.77761031485, 10988.80815753500],
        [0.046, 3.38617099014, 156475.29024799570],
        [0.021, 1.95248349228, 8827.39026987480],
        [0.018, 3.33419222028, 8429.24126646660],
        [0.019, 4.32945160287, 17789.84561978500],
        [0.017, 0.66191210656, 6283.00853968860],
        [0.018, 3.74885333072, 11769.85369316640],
        [0.017, 4.23058370776, 10977.07880469900],
        [0.017, 1.78116162721, 5486.77784317500],
        [0.021, 1.36972913918, 12036.46073488820],
        [0.017, 2.79601092529, 796.29800681640],
        [0.015, 0.43087848850, 11790.62908865880],
        [0.017, 1.35132152761, 78051.58573131690],
        [0.015, 1.17032155085, 213.29909543800],
        [0.018, 2.85221514199, 5088.62883976680],
        [0.017, 0.21780913672, 6283.14316029419],
        [0.013, 1.21201504386, 25132.30339996560],
        [0.012, 1.12953712197, 90617.73743129970],
        [0.012, 5.13714452592, 7079.37385680780],
        [0.013, 3.79842135217, 4933.20844033260],
        [0.012, 4.89407978213, 3738.76143010800],
        [0.015, 6.05682328852, 398.14900340820],
        [0.014, 4.81029291856, 4694.00295470760],
        [0.011, 0.61684523405, 3128.38876509580],
        [0.011, 5.32876538500, 6040.34724601740],
        [0.014, 5.27227350286, 4535.05943692440],
        [0.011, 2.39292099451, 5331.35744374080],
        [0.010, 4.45296532710, 6525.80445396540],
        [0.014, 4.66400985037, 8031.09226305840],
        [0.010, 3.22472385926, 9437.76293488700],
        [0.011, 3.80913404437, 801.82093112380],
        [0.010, 5.15032130575, 11371.70468975820],
        [0.013, 0.98720797401, 5729.50644714900],
        [0.009, 5.94191743597, 7632.94325965020],
    ],
    # B3
    [
        [0.011, 0.23877262399, 7860.41939243920],
        [0.009, 1.16069982609, 5507.55323866740],
        [0.008, 1.65357552925, 5884.92684658320],
        [0.008, 2.86720038197, 7058.59846131540],
        [0.007, 3.04818741666, 5486.77784317500],
        [0.007, 2.59437103785, 529.69096509460],
        [0.008, 4.02863090524, 6256.77753019160],
        [0.008, 2.42003508927, 5753.38488489680],
        [0.006, 0.84181087594, 6275.96230299060],
        [0.006, 5.40160929468, 1577.34354244780],
        [0.007, 2.73399865247, 6309.37416979120],
    ],
    # B4
    [
        [0.004, 0.79662198849, 6438.49624942560],
        [0.005, 0.84308705203, 1047.74731175470],
        [0.005, 0.05711572303, 84334.66158130829],
        [0.003, 3.46779895686, 6279.55273164240],
        [0.003, 2.89822201212, 6127.65545055720],
    ],
]
"""This table contains Earth's periodic terms (all of them) from the planetary
theory VSOP87 for the heliocentric latitude at the equinox of date (taken from
the 'D' solution). In Meeus' book a shortened version can be found in page
420."""


VSOP87_R = [
    # R0
    [
        [100013988.799, 0.00000000000, 0.00000000000],
        [1670699.626, 3.09846350771, 6283.07584999140],
        [13956.023, 3.05524609620, 12566.15169998280],
        [3083.720, 5.19846674381, 77713.77146812050],
        [1628.461, 1.17387749012, 5753.38488489680],
        [1575.568, 2.84685245825, 7860.41939243920],
        [924.799, 5.45292234084, 11506.76976979360],
        [542.444, 4.56409149777, 3930.20969621960],
        [472.110, 3.66100022149, 5884.92684658320],
        [328.780, 5.89983646482, 5223.69391980220],
        [345.983, 0.96368617687, 5507.55323866740],
        [306.784, 0.29867139512, 5573.14280143310],
        [174.844, 3.01193636534, 18849.22754997420],
        [243.189, 4.27349536153, 11790.62908865880],
        [211.829, 5.84714540314, 1577.34354244780],
        [185.752, 5.02194447178, 10977.07880469900],
        [109.835, 5.05510636285, 5486.77784317500],
        [98.316, 0.88681311277, 6069.77675455340],
        [86.499, 5.68959778254, 15720.83878487840],
        [85.825, 1.27083733351, 161000.68573767410],
        [62.916, 0.92177108832, 529.69096509460],
        [57.056, 2.01374292014, 83996.84731811189],
        [64.903, 0.27250613787, 17260.15465469040],
        [49.384, 3.24501240359, 2544.31441988340],
        [55.736, 5.24159798933, 71430.69561812909],
        [42.515, 6.01110242003, 6275.96230299060],
        [46.963, 2.57805070386, 775.52261132400],
        [38.968, 5.36071738169, 4694.00295470760],
        [44.661, 5.53715807302, 9437.76293488700],
        [35.660, 1.67468058995, 12036.46073488820],
        [31.921, 0.18368229781, 5088.62883976680],
        [31.846, 1.77775642085, 398.14900340820],
        [33.193, 0.24370300098, 7084.89678111520],
        [38.245, 2.39255343974, 8827.39026987480],
        [28.464, 1.21344868176, 6286.59896834040],
        [37.490, 0.82952922332, 19651.04848109800],
        [36.957, 4.90107591914, 12139.55350910680],
        [34.537, 1.84270693282, 2942.46342329160],
        [26.275, 4.58896850401, 10447.38783960440],
        [24.596, 3.78660875483, 8429.24126646660],
        [23.587, 0.26866117066, 796.29800681640],
        [27.793, 1.89934330904, 6279.55273164240],
        [23.927, 4.99598548138, 5856.47765911540],
        [20.349, 4.65267995431, 2146.16541647520],
        [23.287, 2.80783650928, 14143.49524243060],
        [22.103, 1.95004702988, 3154.68708489560],
        [19.506, 5.38227371393, 2352.86615377180],
        [17.958, 0.19871379385, 6812.76681508600],
        [17.174, 4.43315560735, 10213.28554621100],
        [16.190, 5.23160507859, 17789.84561978500],
        [17.314, 6.15200787916, 16730.46368959580],
        [13.814, 5.18962074032, 8031.09226305840],
        [18.833, 0.67306674027, 149854.40013480789],
        [18.331, 2.25348733734, 23581.25817731760],
        [13.641, 3.68516118804, 4705.73230754360],
        [13.139, 0.65289581324, 13367.97263110660],
        [10.414, 4.33285688538, 11769.85369316640],
        [9.978, 4.20126336355, 6309.37416979120],
        [10.169, 1.59390681369, 4690.47983635860],
        [7.564, 2.62560597390, 6256.77753019160],
        [9.661, 3.67586791220, 27511.46787353720],
        [6.743, 0.56270332741, 3340.61242669980],
        [8.743, 6.06359123461, 1748.01641306700],
        [7.786, 3.67371235637, 12168.00269657460],
        [6.633, 5.66149277792, 11371.70468975820],
        [7.712, 0.31242577789, 7632.94325965020],
        [6.592, 3.13576266188, 801.82093112380],
        [7.460, 5.64757188143, 11926.25441366880],
        [6.933, 2.92384586400, 6681.22485339960],
        [6.802, 1.42329806420, 23013.53953958720],
        [6.115, 5.13393615454, 1194.44701022460],
        [6.477, 2.64986648492, 19804.82729158280],
        [5.233, 4.62434053374, 6438.49624942560],
        [6.147, 3.02863936662, 233141.31440436150],
        [4.608, 1.72194702724, 7234.79425624200],
        [4.221, 1.55697533729, 7238.67559160000],
        [5.314, 2.40716580847, 11499.65622279280],
        [5.128, 5.32398965690, 11513.88331679440],
        [4.770, 0.25554312006, 11856.21865142450],
        [5.519, 2.09089154502, 17298.18232732620],
        [5.625, 4.34052903053, 90955.55169449610],
        [4.578, 4.46569641570, 5746.27133789600],
        [3.788, 4.90729383510, 4164.31198961300],
        [5.337, 5.09957905104, 31441.67756975680],
        [3.967, 1.20054555174, 1349.86740965880],
        [4.008, 3.03007204392, 1059.38193018920],
        [3.476, 0.76080277030, 10973.55568635000],
        [4.232, 1.05485713117, 5760.49843189760],
        [4.582, 3.76570026763, 6386.16862421000],
        [3.335, 3.13829943354, 6836.64525283380],
        [3.418, 3.00072390334, 4292.33083295040],
        [3.598, 5.70718084323, 5643.17856367740],
        [3.237, 4.16448773994, 9917.69687450980],
        [4.154, 2.59941292162, 7058.59846131540],
        [3.362, 4.54577697964, 4732.03062734340],
        [2.978, 1.30561268820, 6283.14316029419],
        [2.765, 0.51311975679, 26.29831979980],
        [2.802, 5.66263240521, 8635.94200376320],
        [2.927, 5.73787481548, 16200.77272450120],
        [3.164, 1.69140262657, 11015.10647733480],
        [2.598, 2.96244118586, 25132.30339996560],
        [3.519, 3.62639325753, 244287.60000722768],
        [2.676, 4.20725700850, 18073.70493865020],
        [2.978, 1.74971565805, 6283.00853968860],
        [2.287, 1.06975704977, 14314.16811304980],
        [2.863, 5.92838131397, 14712.31711645800],
        [3.071, 0.23793217002, 35371.88726597640],
        [2.656, 0.89959301780, 12352.85260454480],
        [2.415, 2.79975176257, 709.93304855830],
        [2.814, 3.51488206882, 21228.39202354580],
        [1.977, 2.61358297550, 951.71840625060],
        [2.548, 2.47684686575, 6208.29425142410],
        [1.999, 0.56090388160, 7079.37385680780],
        [2.305, 1.05376461628, 22483.84857449259],
        [1.855, 2.86090681163, 5216.58037280140],
        [2.157, 1.31396741861, 154717.60988768269],
        [1.970, 4.36929875289, 167283.76158766550],
        [1.635, 5.85571606764, 10984.19235169980],
        [1.754, 2.14452408833, 6290.18939699220],
        [2.154, 6.03828341543, 10873.98603048040],
        [1.714, 3.70157691113, 1592.59601363280],
        [1.541, 6.21598380732, 23543.23050468179],
        [1.611, 1.99824499377, 10969.96525769820],
        [1.712, 1.34295663542, 3128.38876509580],
        [1.642, 5.55026665339, 6496.37494542940],
        [1.502, 5.43948825854, 155.42039943420],
        [1.827, 5.91227480261, 3738.76143010800],
        [1.726, 2.16764983583, 10575.40668294180],
        [1.532, 5.35683107070, 13521.75144159140],
        [1.829, 1.66006148731, 39302.09696219600],
        [1.605, 1.90928637633, 6133.51265285680],
        [1.282, 2.46014880418, 13916.01910964160],
        [1.211, 4.41360631550, 3894.18182954220],
        [1.394, 1.77801929354, 9225.53927328300],
        [1.571, 4.95512957592, 25158.60171976540],
        [1.205, 1.19212540615, 3.52311834900],
        [1.132, 2.69830084955, 6040.34724601740],
        [1.504, 5.77002730341, 18209.33026366019],
        [1.393, 1.62621805428, 5120.60114558360],
        [1.077, 2.93931554233, 17256.63153634140],
        [1.232, 0.71655165307, 143571.32428481648],
        [1.087, 0.99769687939, 955.59974160860],
        [1.068, 5.28472576231, 65147.61976813770],
        [0.980, 5.10949204607, 6172.86952877200],
        [1.169, 3.11664290862, 14945.31617355440],
        [1.202, 4.02992510402, 553.56940284240],
        [0.979, 2.00000879212, 15110.46611986620],
        [0.962, 4.02380771400, 6282.09552892320],
        [0.999, 3.62643002790, 6262.30045449900],
        [1.030, 5.84989900289, 213.29909543800],
        [1.014, 2.84221578218, 8662.24032356300],
        [1.185, 1.51330541132, 17654.78053974960],
        [0.967, 2.67081017562, 5650.29211067820],
        [1.222, 2.65423784904, 88860.05707098669],
        [0.981, 2.36370360283, 6206.80977871580],
        [1.033, 0.13874927606, 11712.95531823080],
        [1.103, 3.08477302937, 43232.30665841560],
        [0.781, 2.53372735932, 16496.36139620240],
        [1.019, 3.04569392376, 6037.24420376200],
        [0.795, 5.80662989111, 5230.80746680300],
        [0.813, 3.57710279439, 10177.25767953360],
        [0.962, 5.31470594766, 6284.05617105960],
        [0.721, 5.96264301567, 12559.03815298200],
        [0.966, 2.74714939953, 6244.94281435360],
        [0.921, 0.10155275926, 29088.81141598500],
        [0.692, 3.89764447548, 1589.07289528380],
        [0.719, 5.91791450402, 4136.91043351620],
        [0.772, 4.05505682353, 6127.65545055720],
        [0.712, 5.49291532439, 22003.91463486980],
        [0.672, 1.60700490811, 11087.28512591840],
        [0.690, 4.50539825563, 426.59819087600],
        [0.854, 3.26104981596, 20426.57109242200],
        [0.656, 4.32410182940, 16858.48253293320],
        [0.840, 2.59572585222, 28766.92442448400],
        [0.692, 0.61650089011, 11403.67699557500],
        [0.700, 3.40901167143, 7.11354700080],
        [0.726, 0.04243053594, 5481.25491886760],
        [0.557, 4.78317696534, 20199.09495963300],
        [0.649, 1.04027912958, 6062.66320755260],
        [0.633, 5.70229959167, 45892.73043315699],
        [0.592, 6.11836729658, 9623.68827669120],
        [0.523, 3.62840021266, 5333.90024102160],
        [0.604, 5.57734696185, 10344.29506538580],
        [0.496, 2.21023499449, 1990.74501704100],
        [0.691, 1.96071732602, 12416.58850284820],
        [0.640, 1.59074172032, 18319.53658487960],
        [0.625, 3.82362791378, 13517.87010623340],
        [0.663, 5.08444996779, 283.85931886520],
        [0.475, 1.17025894287, 12569.67481833180],
        [0.664, 4.50029469969, 47162.51635463520],
        [0.569, 0.16310365162, 17267.26820169119],
        [0.568, 3.86100969474, 6076.89030155420],
        [0.539, 4.83282276086, 18422.62935909819],
        [0.466, 0.75872342878, 7342.45778018060],
        [0.541, 3.07212190507, 226858.23855437007],
        [0.458, 0.26774483096, 4590.91018048900],
        [0.610, 1.53597051291, 33019.02111220460],
        [0.617, 2.62356328726, 11190.37790013700],
        [0.548, 4.55798855791, 18875.52586977400],
        [0.633, 4.60110281228, 66567.48586525429],
        [0.596, 5.78202396722, 632.78373931320],
        [0.533, 5.01786882904, 12132.43996210600],
        [0.603, 5.38458554802, 316428.22867391503],
        [0.469, 0.59168241917, 21954.15760939799],
        [0.548, 3.50613163558, 17253.04110768959],
        [0.502, 0.98804327589, 11609.86254401220],
        [0.568, 1.98497313089, 7668.63742494250],
        [0.482, 1.62141803864, 12146.66705610760],
        [0.391, 3.68718382989, 18052.92954315780],
        [0.457, 3.77205737340, 156137.47598479927],
        [0.401, 5.28260651958, 15671.08175940660],
        [0.469, 1.80963184268, 12562.62858163380],
        [0.508, 3.36399024699, 20597.24396304120],
        [0.450, 5.66054299250, 10454.50138660520],
        [0.375, 4.98534633105, 9779.10867612540],
        [0.523, 0.97215560834, 155427.54293624099],
        [0.403, 5.13939866506, 1551.04522264800],
        [0.372, 3.69883738807, 9388.00590941520],
        [0.367, 4.43875659716, 4535.05943692440],
        [0.406, 4.20863156600, 12592.45001978260],
        [0.360, 2.53924644657, 242.72860397400],
        [0.471, 4.61907324819, 5436.99301524020],
        [0.441, 5.83872966262, 3496.03282613400],
        [0.385, 4.94496680973, 24356.78078864160],
        [0.349, 6.15018231784, 19800.94595622480],
        [0.355, 0.21895678106, 5429.87946823940],
        [0.344, 5.62993724928, 2379.16447357160],
        [0.380, 2.72105213143, 11933.36796066960],
        [0.432, 0.24221790536, 17996.03116822220],
        [0.378, 5.22517556974, 7477.52286021600],
        [0.337, 5.10888041439, 5849.36411211460],
        [0.315, 0.57827745123, 10557.59416082380],
        [0.318, 4.49953141399, 3634.62102451840],
        [0.323, 1.54274281393, 10440.27429260360],
        [0.309, 5.76839284397, 20.77539549240],
        [0.301, 2.34727604008, 4686.88940770680],
        [0.414, 5.93237602310, 51092.72605085480],
        [0.361, 2.16398609550, 28237.23345938940],
        [0.288, 0.18376252189, 13095.84266507740],
        [0.277, 5.12952205045, 13119.72110282519],
        [0.327, 6.19222146204, 6268.84875598980],
        [0.273, 0.30522428863, 23141.55838292460],
        [0.267, 5.76152585786, 5966.68398033480],
        [0.308, 5.99280509979, 22805.73556599360],
        [0.345, 2.92489919444, 36949.23080842420],
        [0.253, 5.20995219509, 24072.92146977640],
        [0.342, 5.72702586209, 16460.33352952499],
        [0.261, 2.00304796059, 6148.01076995600],
        [0.238, 5.08264392839, 6915.85958930460],
        [0.249, 2.94762789744, 135.06508003540],
        [0.306, 3.89764686987, 10988.80815753500],
        [0.305, 0.05827812117, 4701.11650170840],
        [0.319, 2.95712862064, 163096.18036118348],
        [0.209, 4.43768461442, 6546.15977336420],
        [0.270, 2.06643178717, 4804.20927592700],
        [0.217, 0.73691592312, 6303.85124548380],
        [0.206, 0.32075959415, 25934.12433108940],
        [0.218, 0.18428135264, 28286.99048486120],
        [0.205, 5.21312087405, 20995.39296644940],
        [0.199, 0.44384292491, 16737.57723659660],
        [0.230, 6.06567392849, 6287.00800325450],
        [0.219, 1.29194216300, 5326.78669402080],
        [0.201, 1.74700937253, 22743.40937951640],
        [0.207, 4.45440927276, 6279.48542133960],
        [0.269, 6.05640445030, 64471.99124174489],
        [0.190, 0.99256176518, 29296.61538957860],
        [0.238, 5.42471431221, 39609.65458316560],
        [0.262, 5.26961924198, 522.57741809380],
        [0.210, 4.68618183158, 6254.62666252360],
        [0.197, 2.80624554080, 4933.20844033260],
        [0.252, 4.36220154608, 40879.44050464380],
        [0.261, 1.07241516738, 55022.93574707440],
        [0.189, 3.82966734476, 419.48464387520],
        [0.185, 4.14324541379, 5642.19824260920],
        [0.247, 3.44855612987, 6702.56049386660],
        [0.205, 4.04424043223, 536.80451209540],
        [0.191, 3.14082686083, 16723.35014259500],
        [0.222, 5.16263907319, 23539.70738633280],
        [0.180, 4.56214752149, 6489.26139842860],
        [0.219, 0.80382553358, 16627.37091537720],
        [0.227, 0.60156339452, 5905.70224207560],
        [0.168, 0.88753528161, 16062.18452611680],
        [0.158, 0.92127725775, 23937.85638974100],
        [0.157, 4.69607868164, 6805.65326808520],
        [0.207, 4.88410451334, 6286.66627864320],
        [0.160, 4.95943826846, 10021.83728009940],
        [0.166, 0.97126433565, 3097.88382272579],
        [0.209, 5.75663411805, 3646.35037735440],
        [0.175, 6.12762824412, 239424.39025435288],
        [0.173, 3.13887234973, 6179.98307577280],
        [0.157, 3.62822058179, 18451.07854656599],
        [0.157, 4.67695912235, 6709.67404086740],
        [0.146, 3.09506069735, 4907.30205014560],
        [0.165, 2.27139128760, 10660.68693504240],
        [0.201, 1.67701267433, 2107.03450754240],
        [0.144, 3.96947747592, 6019.99192661860],
        [0.171, 5.91302216729, 6058.73105428950],
        [0.144, 2.13155655120, 26084.02180621620],
        [0.151, 0.67417383554, 2388.89402044920],
        [0.189, 5.07122281033, 263.08392337280],
        [0.146, 5.10373877968, 10770.89325626180],
        [0.187, 1.23915444627, 19402.79695281660],
        [0.174, 0.08407293391, 9380.95967271720],
        [0.137, 1.26247412309, 12566.21901028560],
        [0.137, 3.52826010842, 639.89728631400],
        [0.148, 1.76124372592, 5888.44996493220],
        [0.164, 2.39195095081, 6357.85744855870],
        [0.146, 2.43675816553, 5881.40372823420],
        [0.161, 1.15721259372, 26735.94526221320],
        [0.131, 2.51859277344, 6599.46771964800],
        [0.153, 5.85203687779, 6281.59137728310],
        [0.151, 3.72338532649, 12669.24447420140],
        [0.132, 2.38417741883, 6525.80445396540],
        [0.129, 0.75556744143, 5017.50837136500],
        [0.127, 0.00254936441, 10027.90319572920],
        [0.148, 2.85102145528, 6418.14093002680],
        [0.143, 5.74460279367, 26087.90314157420],
        [0.172, 0.41289962240, 174242.46596404971],
        [0.136, 4.15497742275, 6311.52503745920],
        [0.170, 5.98194913129, 327574.51427678124],
        [0.124, 1.65497607604, 32217.20018108080],
        [0.136, 2.48430783417, 13341.67431130680],
        [0.165, 2.49667924600, 58953.14544329400],
        [0.123, 3.45660563754, 6277.55292568400],
        [0.117, 0.86065134175, 6245.04817735560],
        [0.149, 5.61358280963, 5729.50644714900],
        [0.153, 0.26860029950, 245.83164622940],
        [0.128, 0.71204006588, 103.09277421860],
        [0.159, 2.43166592149, 221995.02880149524],
        [0.130, 2.80707316718, 6016.46880826960],
        [0.137, 1.70657709294, 12566.08438968000],
        [0.111, 1.56305648432, 17782.73207278420],
        [0.113, 3.58302904101, 25685.87280280800],
        [0.109, 3.26403795962, 6819.88036208680],
        [0.122, 0.34120688217, 1162.47470440780],
        [0.119, 5.84644718278, 12721.57209941700],
        [0.144, 2.28899679126, 12489.88562870720],
        [0.137, 5.82029768354, 44809.65020086340],
        [0.107, 2.42818544140, 5547.19933645960],
        [0.134, 1.26539982939, 5331.35744374080],
        [0.103, 5.96518130595, 6321.10352262720],
        [0.109, 0.33808549034, 11300.58422135640],
        [0.129, 5.89187277327, 12029.34718788740],
        [0.122, 5.77325634636, 11919.14086666800],
        [0.107, 6.24998989350, 77690.75950573849],
        [0.107, 1.00535580713, 77736.78343050249],
        [0.143, 0.24122178432, 4214.06901508480],
        [0.143, 0.88529649733, 7576.56007357400],
        [0.107, 2.92124030496, 31415.37924995700],
        [0.099, 5.70862227072, 5540.08578945880],
        [0.110, 0.37528037383, 5863.59120611620],
        [0.104, 4.44107178366, 2118.76386037840],
        [0.098, 5.95877916706, 4061.21921539440],
        [0.113, 1.24206857385, 84672.47584450469],
        [0.124, 2.55619029867, 12539.85338018300],
        [0.110, 3.66952094329, 238004.52415723630],
        [0.112, 4.32512422943, 97238.62754448749],
        [0.097, 3.70151541181, 11720.06886523160],
        [0.120, 1.26895630252, 12043.57428188900],
        [0.094, 2.56461130309, 19004.64794940840],
        [0.117, 3.65425622684, 34520.30930938080],
        [0.098, 0.13589994287, 11080.17157891760],
        [0.097, 5.38330115253, 7834.12107263940],
        [0.097, 2.46722096722, 71980.63357473118],
        [0.095, 5.36958330451, 6288.59877429880],
        [0.111, 5.01961920313, 11823.16163945020],
        [0.090, 2.72299804525, 26880.31981303260],
        [0.099, 0.90164266377, 18635.92845453620],
        [0.126, 4.78722177847, 305281.94307104882],
        [0.093, 0.21240380046, 18139.29450141590],
        [0.124, 5.00979495566, 172146.97134054030],
        [0.099, 5.67090026475, 16522.65971600220],
        [0.092, 2.28180963676, 12491.37010141550],
        [0.090, 4.50544881196, 40077.61957352000],
        [0.100, 2.00639461612, 12323.42309600880],
        [0.095, 5.68801979087, 14919.01785375460],
        [0.087, 1.86043406047, 27707.54249429480],
        [0.105, 3.02903468417, 22345.26037610820],
        [0.087, 5.43970168638, 6272.03014972750],
        [0.089, 1.63389387182, 33326.57873317420],
        [0.082, 5.58298993353, 10241.20229116720],
        [0.094, 5.47749711149, 9924.81042151060],
        [0.082, 4.71988314145, 15141.39079431200],
        [0.097, 5.61458778738, 2787.04302385740],
        [0.096, 3.89073946348, 6379.05507720920],
        [0.081, 3.13038482444, 36147.40987730040],
        [0.110, 4.89978492291, 72140.62866668739],
        [0.097, 5.20764563059, 6303.43116939020],
        [0.082, 5.26342716139, 9814.60410029120],
        [0.109, 2.35555589770, 83286.91426955358],
        [0.097, 2.58492958057, 30666.15495843280],
        [0.093, 1.32651591333, 23020.65308658799],
        [0.078, 3.99588630754, 11293.47067435560],
        [0.090, 0.57771932738, 26482.17080962440],
        [0.106, 3.92012705073, 62883.35513951360],
        [0.098, 2.94397773524, 316.39186965660],
        [0.076, 3.96310417608, 29026.48522950779],
        [0.078, 1.97068529306, 90279.92316810328],
        [0.076, 0.23027966596, 21424.46664430340],
        [0.080, 2.23099742212, 266.60704172180],
        [0.079, 1.46227790922, 8982.81066930900],
        [0.102, 4.92129953565, 5621.84292321040],
        [0.100, 0.39243148321, 24279.10701821359],
        [0.071, 1.52014858474, 33794.54372352860],
        [0.076, 0.22880641443, 57375.80190084620],
        [0.091, 0.96515913904, 48739.85989708300],
        [0.075, 2.77638585157, 12964.30070339100],
        [0.077, 5.18846946344, 11520.99686379520],
        [0.068, 0.50006599129, 4274.51831083240],
        [0.075, 2.07323762803, 15664.03552270859],
        [0.074, 1.01884134928, 6393.28217121080],
        [0.077, 0.46665178780, 16207.88627150200],
        [0.081, 4.10452219483, 161710.61878623240],
        [0.067, 3.83840630887, 6262.72053059260],
        [0.071, 3.91415523291, 7875.67186362420],
        [0.081, 0.91938383237, 74.78159856730],
        [0.083, 4.69916218791, 23006.42599258639],
        [0.063, 2.32556465878, 6279.19451463340],
        [0.065, 5.41938745446, 28628.33622609960],
        [0.065, 3.02336771694, 5959.57043333400],
        [0.064, 3.31033198370, 2636.72547263700],
        [0.064, 0.18375587519, 1066.49547719000],
        [0.080, 5.81239171612, 12341.80690428090],
        [0.066, 2.15105504851, 38.02767263580],
        [0.062, 2.43313614978, 10138.10951694860],
        [0.060, 3.16153906470, 5490.30096152400],
        [0.069, 0.30764736334, 7018.95236352320],
        [0.068, 2.24442548639, 24383.07910844140],
        [0.078, 1.39649386463, 9411.46461508720],
        [0.063, 0.72976362625, 6286.95718534940],
        [0.073, 4.95125917731, 6453.74872061060],
        [0.078, 0.32736023459, 6528.90749622080],
        [0.059, 4.95362151577, 35707.71008290740],
        [0.070, 2.37962727525, 15508.61512327440],
        [0.073, 1.35229143111, 5327.47610838280],
        [0.072, 5.91833527334, 10881.09957748120],
        [0.059, 5.36231868425, 10239.58386601080],
        [0.059, 1.63156134967, 61306.01159706580],
        [0.054, 4.29491690425, 21947.11137270000],
        [0.057, 5.89190132575, 34513.26307268280],
        [0.074, 1.38235845304, 9967.45389998160],
        [0.053, 3.86543309344, 32370.97899156560],
        [0.055, 4.51794544854, 34911.41207609100],
        [0.063, 5.41479412056, 11502.83761653050],
        [0.063, 2.34416220742, 11510.70192305670],
        [0.068, 0.77493931112, 29864.33402730900],
        [0.060, 5.57024703495, 5756.90800324580],
        [0.072, 2.80863088166, 10866.87248347960],
        [0.061, 2.69736991384, 82576.98122099529],
        [0.063, 5.32068807257, 3116.65941225980],
        [0.052, 1.02278758099, 6272.43918464160],
        [0.069, 5.00698550308, 25287.72379939980],
        [0.066, 6.12047940728, 12074.48840752400],
        [0.051, 2.59519527563, 11396.56344857420],
        [0.056, 2.57995973521, 17892.93839400359],
        [0.059, 0.44167237620, 250570.67585721909],
        [0.059, 3.84070143543, 5483.25472482600],
        [0.049, 0.54704693048, 22594.05489571199],
        [0.065, 2.38423614501, 52670.06959330260],
        [0.069, 5.34363738671, 66813.56483573320],
        [0.057, 5.42770501007, 310145.15282392362],
        [0.053, 1.17760296075, 149.56319713460],
        [0.061, 4.02090887211, 34596.36465465240],
        [0.049, 4.18361320516, 18606.49894600020],
        [0.055, 0.83886167974, 20452.86941222180],
        [0.050, 1.46327331958, 37455.72649597440],
        [0.048, 4.53854727167, 29822.78323632420],
        [0.058, 3.34847975377, 33990.61834428620],
        [0.065, 1.45522693982, 76251.32777062019],
        [0.056, 2.35650663692, 37724.75341974820],
        [0.052, 2.61551081496, 5999.21653112620],
        [0.053, 0.17334326094, 77717.29458646949],
        [0.053, 0.79879700631, 77710.24834977149],
        [0.047, 0.43240779709, 735.87651353180],
        [0.053, 4.58763261686, 11616.97609101300],
        [0.048, 6.20230111054, 4171.42553661380],
        [0.052, 1.09723616404, 640.87760738220],
        [0.057, 3.42008310383, 50317.20343953080],
        [0.053, 1.01528448581, 149144.46708624958],
        [0.047, 3.00924906195, 52175.80628314840],
        [0.052, 2.03254070404, 6293.71251534120],
        [0.048, 0.12356889734, 13362.44970679920],
        [0.045, 3.37963782356, 10763.77970926100],
        [0.047, 5.50981287869, 12779.45079542080],
        [0.062, 5.45209070099, 949.17560896980],
        [0.061, 2.93237974631, 5791.41255753260],
        [0.044, 2.87440620802, 8584.66166590080],
        [0.046, 4.03141796560, 10667.80048204320],
        [0.047, 3.89902931422, 3903.91137641980],
        [0.046, 2.75700467329, 6993.00889854970],
        [0.045, 1.93386293300, 206.18554843720],
        [0.047, 2.57670800912, 11492.54267579200],
        [0.044, 3.62570223167, 63658.87775083760],
        [0.051, 0.84536826273, 12345.73905754400],
        [0.043, 0.01524970172, 37853.87549938260],
        [0.041, 3.27146326065, 8858.31494432060],
        [0.045, 3.03765521215, 65236.22129328540],
        [0.047, 1.44447548944, 21393.54196985760],
        [0.058, 5.45843180927, 1975.49254585600],
        [0.050, 2.13285524146, 12573.26524698360],
        [0.041, 1.32190847146, 2547.83753823240],
        [0.047, 3.67579608544, 28313.28880466100],
        [0.041, 2.24013475126, 8273.82086703240],
        [0.047, 6.21438985953, 10991.30589870060],
        [0.042, 3.01631817350, 853.19638175200],
        [0.056, 1.09773690181, 77376.20102240759],
        [0.040, 2.35698541041, 2699.73481931760],
        [0.043, 5.28030898459, 17796.95916678580],
        [0.054, 2.59175932091, 22910.44676536859],
        [0.054, 0.88027764102, 71960.38658322369],
        [0.055, 0.07988899477, 83467.15635301729],
        [0.039, 1.12867321442, 9910.58332750900],
        [0.040, 1.35670430524, 27177.85152920020],
        [0.039, 4.39624220245, 5618.31980486140],
        [0.042, 4.78798367468, 7856.89627409019],
        [0.047, 2.75482175292, 18202.21671665939],
        [0.039, 1.97008298629, 24491.42579258340],
        [0.042, 4.04346599946, 7863.94251078820],
        [0.038, 0.49178679251, 38650.17350619900],
        [0.036, 4.86047906533, 4157.19844261220],
        [0.043, 5.64354880978, 1062.90504853820],
        [0.036, 3.98066313627, 12565.17137891460],
        [0.042, 2.30753932657, 6549.68289171320],
        [0.040, 5.39694918320, 9498.21223063460],
        [0.040, 3.30603243754, 23536.11695768099],
        [0.050, 6.15760345261, 78051.34191383338],
    ],
    # R1
    [
        [103018.608, 1.10748969588, 6283.07584999140],
        [1721.238, 1.06442301418, 12566.15169998280],
        [702.215, 3.14159265359, 0.00000000000],
        [32.346, 1.02169059149, 18849.22754997420],
        [30.799, 2.84353804832, 5507.55323866740],
        [24.971, 1.31906709482, 5223.69391980220],
        [18.485, 1.42429748614, 1577.34354244780],
        [10.078, 5.91378194648, 10977.07880469900],
        [8.634, 0.27146150602, 5486.77784317500],
        [8.654, 1.42046854427, 6275.96230299060],
        [5.069, 1.68613426734, 5088.62883976680],
        [4.985, 6.01401770704, 6286.59896834040],
        [4.669, 5.98724494073, 529.69096509460],
        [4.395, 0.51800238019, 4694.00295470760],
        [3.872, 4.74969833437, 2544.31441988340],
        [3.750, 5.07097685568, 796.29800681640],
        [4.100, 1.08424786092, 9437.76293488700],
        [3.518, 0.02290216272, 83996.84731811189],
        [3.436, 0.94937019624, 71430.69561812909],
        [3.221, 6.15628775313, 2146.16541647520],
        [3.414, 5.41218322538, 775.52261132400],
        [2.863, 5.48432847146, 10447.38783960440],
        [2.520, 0.24276941146, 398.14900340820],
        [2.201, 4.95216196651, 6812.76681508600],
        [2.186, 0.41991743105, 8031.09226305840],
        [2.838, 3.42034351366, 2352.86615377180],
        [2.554, 6.13241878525, 6438.49624942560],
        [1.932, 5.31374608366, 8429.24126646660],
        [2.429, 3.09164528262, 4690.47983635860],
        [1.730, 1.53686208550, 4705.73230754360],
        [2.250, 3.68863633842, 7084.89678111520],
        [2.093, 1.28191783032, 1748.01641306700],
        [1.441, 0.81656250862, 14143.49524243060],
        [1.483, 3.22225357771, 7234.79425624200],
        [1.754, 3.22883705112, 6279.55273164240],
        [1.583, 4.09702349428, 11499.65622279280],
        [1.575, 5.53890170575, 3154.68708489560],
        [1.847, 1.82040335363, 7632.94325965020],
        [1.504, 3.63293385726, 11513.88331679440],
        [1.337, 4.64440864339, 6836.64525283380],
        [1.275, 2.69341415363, 1349.86740965880],
        [1.352, 6.15101580257, 5746.27133789600],
        [1.125, 3.35673439497, 17789.84561978500],
        [1.470, 3.65282991755, 1194.44701022460],
        [1.177, 2.57676109092, 13367.97263110660],
        [1.101, 4.49748696552, 4292.33083295040],
        [1.234, 5.65036509521, 5760.49843189760],
        [0.984, 0.65517395136, 5856.47765911540],
        [0.928, 2.32420318751, 10213.28554621100],
        [1.077, 5.82812169132, 12036.46073488820],
        [0.916, 0.76613009583, 16730.46368959580],
        [0.877, 1.50137505051, 11926.25441366880],
        [1.023, 5.62076589825, 6256.77753019160],
        [0.851, 0.65709335533, 155.42039943420],
        [0.802, 4.10519132088, 951.71840625060],
        [0.857, 1.41661697538, 5753.38488489680],
        [0.994, 1.14418521187, 1059.38193018920],
        [0.813, 1.63948433322, 6681.22485339960],
        [0.662, 4.55200452260, 5216.58037280140],
        [0.644, 4.19478168733, 6040.34724601740],
        [0.626, 1.50767713598, 5643.17856367740],
        [0.590, 6.18277145205, 4164.31198961300],
        [0.635, 0.52413263542, 6290.18939699220],
        [0.650, 0.97935690350, 25132.30339996560],
        [0.568, 2.30125315873, 10973.55568635000],
        [0.547, 5.27256412213, 3340.61242669980],
        [0.547, 2.20144422886, 1592.59601363280],
        [0.526, 0.92464258226, 11371.70468975820],
        [0.490, 5.90951388655, 3894.18182954220],
        [0.478, 1.66857963179, 12168.00269657460],
        [0.516, 3.59803483887, 10969.96525769820],
        [0.518, 3.97914412373, 17298.18232732620],
        [0.534, 5.03740926442, 9917.69687450980],
        [0.487, 2.50545369269, 6127.65545055720],
        [0.416, 4.04828175503, 10984.19235169980],
        [0.538, 5.54081539805, 553.56940284240],
        [0.402, 2.16544019233, 7860.41939243920],
        [0.553, 2.32177369366, 11506.76976979360],
        [0.367, 3.39152532250, 6496.37494542940],
        [0.360, 5.34379853282, 7079.37385680780],
        [0.337, 3.61563704045, 11790.62908865880],
        [0.456, 0.30754294809, 801.82093112380],
        [0.417, 3.70009308674, 10575.40668294180],
        [0.381, 5.82033971802, 7058.59846131540],
        [0.321, 0.31988767355, 16200.77272450120],
        [0.364, 1.08414306177, 6309.37416979120],
        [0.294, 4.54798604957, 11856.21865142450],
        [0.290, 1.26473978562, 8635.94200376320],
        [0.399, 4.16998866302, 26.29831979980],
        [0.262, 5.08316906342, 10177.25767953360],
        [0.243, 2.25746091190, 11712.95531823080],
        [0.237, 1.05070575346, 242.72860397400],
        [0.275, 3.45319481756, 5884.92684658320],
        [0.255, 5.38496831087, 21228.39202354580],
        [0.307, 4.24313526604, 3738.76143010800],
        [0.216, 3.46037894728, 213.29909543800],
        [0.196, 0.69029243914, 1990.74501704100],
        [0.198, 5.16301829964, 12352.85260454480],
        [0.214, 3.91876200279, 13916.01910964160],
        [0.212, 4.00861198517, 5230.80746680300],
        [0.184, 5.59805976614, 6283.14316029419],
        [0.184, 2.85275392124, 7238.67559160000],
        [0.179, 2.54259058334, 14314.16811304980],
        [0.225, 1.64458698399, 4732.03062734340],
        [0.236, 5.58826125715, 6069.77675455340],
        [0.187, 2.72805985443, 6062.66320755260],
        [0.184, 6.04216273598, 6283.00853968860],
        [0.230, 3.62591335086, 6284.05617105960],
        [0.163, 2.19117396803, 18073.70493865020],
        [0.172, 0.97612950740, 3930.20969621960],
        [0.215, 1.04672844028, 3496.03282613400],
        [0.169, 4.75084479006, 17267.26820169119],
        [0.152, 0.19390712179, 9779.10867612540],
        [0.182, 5.16288118255, 17253.04110768959],
        [0.149, 0.80944184260, 709.93304855830],
        [0.163, 2.19209570390, 6076.89030155420],
        [0.186, 5.01159497089, 11015.10647733480],
        [0.134, 0.97765485759, 65147.61976813770],
        [0.141, 4.38421981312, 4136.91043351620],
        [0.158, 4.60974280627, 9623.68827669120],
        [0.133, 3.30508592837, 154717.60988768269],
        [0.163, 6.11782626245, 3.52311834900],
        [0.174, 1.58078542187, 7.11354700080],
        [0.141, 0.49976927274, 25158.60171976540],
        [0.124, 6.03440460031, 9225.53927328300],
        [0.150, 5.30166336812, 13517.87010623340],
        [0.127, 1.92389511438, 22483.84857449259],
        [0.121, 2.37813129011, 167283.76158766550],
        [0.120, 3.98423684853, 4686.88940770680],
        [0.117, 5.81072642211, 12569.67481833180],
        [0.122, 5.60973054224, 5642.19824260920],
        [0.157, 3.40236426002, 16496.36139620240],
        [0.129, 2.10705116371, 1589.07289528380],
        [0.116, 0.55839966736, 5849.36411211460],
        [0.123, 1.52961392771, 12559.03815298200],
        [0.111, 0.44848279675, 6172.86952877200],
        [0.123, 5.81645568991, 6282.09552892320],
        [0.150, 4.26278409223, 3128.38876509580],
        [0.106, 2.27437761356, 5429.87946823940],
        [0.104, 4.42743707728, 23543.23050468179],
        [0.121, 0.39459045915, 12132.43996210600],
        [0.104, 2.41842602527, 426.59819087600],
        [0.110, 5.80381480447, 16858.48253293320],
        [0.100, 2.93805577485, 4535.05943692440],
        [0.097, 3.97935904984, 6133.51265285680],
        [0.110, 6.22339014386, 12146.66705610760],
        [0.098, 0.87576563709, 6525.80445396540],
        [0.098, 3.15248421301, 10440.27429260360],
        [0.095, 2.46168411100, 3097.88382272579],
        [0.088, 0.23371480284, 13119.72110282519],
        [0.098, 5.77016493489, 7342.45778018060],
        [0.092, 6.03915555063, 20426.57109242200],
        [0.096, 5.56909292561, 2388.89402044920],
        [0.081, 1.32131147691, 5650.29211067820],
        [0.086, 3.94529200528, 10454.50138660520],
        [0.076, 2.70729716925, 143571.32428481648],
        [0.091, 5.64100034152, 8827.39026987480],
        [0.076, 1.80783856698, 28286.99048486120],
        [0.081, 1.90858992196, 29088.81141598500],
        [0.075, 3.40955892978, 5481.25491886760],
        [0.069, 4.49936170873, 17256.63153634140],
        [0.088, 1.10098454357, 11769.85369316640],
        [0.066, 2.78285801977, 536.80451209540],
        [0.068, 3.88179770758, 17260.15465469040],
        [0.084, 1.59303306354, 9380.95967271720],
        [0.088, 3.88076636762, 7477.52286021600],
        [0.061, 6.17558202197, 11087.28512591840],
        [0.060, 4.34824715818, 6206.80977871580],
        [0.082, 4.59843208943, 9388.00590941520],
        [0.079, 1.63131230601, 4933.20844033260],
        [0.078, 4.20905757484, 5729.50644714900],
        [0.057, 5.48157926651, 18319.53658487960],
        [0.060, 1.01261781084, 12721.57209941700],
        [0.056, 1.63031935692, 15720.83878487840],
        [0.055, 0.24926735018, 15110.46611986620],
        [0.061, 5.93059279661, 12539.85338018300],
        [0.055, 4.84298966314, 13095.84266507740],
        [0.067, 6.11690589247, 8662.24032356300],
        [0.054, 5.73750638571, 3634.62102451840],
        [0.074, 1.05466745829, 16460.33352952499],
        [0.053, 2.29084335688, 16062.18452611680],
        [0.064, 2.13513767927, 7875.67186362420],
        [0.067, 0.07096807518, 14945.31617355440],
        [0.051, 2.31511194429, 6262.72053059260],
        [0.057, 5.77055471237, 12043.57428188900],
        [0.056, 4.41980790431, 4701.11650170840],
        [0.059, 5.87963500073, 5331.35744374080],
        [0.058, 2.30546168628, 955.59974160860],
        [0.049, 1.93839278478, 5333.90024102160],
        [0.048, 2.69973662261, 6709.67404086740],
        [0.064, 1.64379897981, 6262.30045449900],
        [0.046, 3.98449608961, 98068.53671630539],
        [0.050, 3.68875893005, 12323.42309600880],
        [0.045, 3.30068569697, 22003.91463486980],
        [0.047, 1.26317154881, 11919.14086666800],
        [0.045, 0.89150445122, 51868.24866217880],
        [0.043, 1.61526242998, 6277.55292568400],
        [0.043, 5.74295325645, 11403.67699557500],
        [0.044, 3.43070646822, 10021.83728009940],
        [0.056, 0.02481833774, 15671.08175940660],
        [0.055, 3.14274403422, 33019.02111220460],
        [0.045, 3.00877289177, 8982.81066930900],
        [0.046, 0.73303568429, 6303.43116939020],
        [0.049, 1.60455690285, 6303.85124548380],
        [0.045, 0.40210030323, 6805.65326808520],
        [0.053, 0.94869680175, 10988.80815753500],
        [0.041, 1.61122384329, 6819.88036208680],
        [0.055, 0.89439119424, 11933.36796066960],
        [0.045, 3.88495384656, 60530.48898574180],
        [0.040, 4.75740908001, 38526.57435087200],
        [0.040, 1.49921251887, 18451.07854656599],
        [0.040, 3.77498297228, 26087.90314157420],
        [0.051, 1.70258603562, 1551.04522264800],
        [0.039, 2.97100699926, 2118.76386037840],
        [0.053, 5.19854123078, 77713.77146812050],
        [0.047, 4.26356628717, 21424.46664430340],
        [0.037, 0.62902722802, 24356.78078864160],
        [0.036, 0.11087914947, 10344.29506538580],
        [0.036, 0.77037556319, 12029.34718788740],
        [0.035, 3.30933994515, 24072.92146977640],
        [0.035, 5.93650887012, 31570.79964939120],
        [0.036, 2.15108874765, 30774.50164257480],
        [0.036, 1.75078825382, 16207.88627150200],
        [0.033, 5.06264177921, 226858.23855437007],
        [0.034, 6.16891378800, 24491.42579258340],
        [0.035, 3.19120695549, 32217.20018108080],
        [0.034, 2.31528650443, 55798.45835839840],
        [0.032, 4.21446357042, 15664.03552270859],
        [0.039, 1.24979117796, 6418.14093002680],
        [0.037, 4.11943655770, 2787.04302385740],
        [0.032, 1.62887710890, 639.89728631400],
        [0.038, 5.89832942685, 640.87760738220],
        [0.032, 1.72442327688, 27433.88921587499],
        [0.031, 2.78828943753, 12139.55350910680],
        [0.035, 4.44608896525, 18202.21671665939],
        [0.034, 3.96287980676, 18216.44381066100],
        [0.033, 4.73611335874, 16723.35014259500],
        [0.034, 1.43910280005, 49515.38250840700],
        [0.031, 0.23302920161, 23581.25817731760],
        [0.029, 2.02633840220, 11609.86254401220],
        [0.030, 2.54923230240, 9924.81042151060],
        [0.032, 4.91793198558, 11300.58422135640],
        [0.028, 0.26187189577, 13521.75144159140],
        [0.028, 3.84568936822, 2699.73481931760],
        [0.029, 1.83149729794, 29822.78323632420],
        [0.033, 4.60320094415, 19004.64794940840],
        [0.027, 4.46183450287, 6702.56049386660],
        [0.030, 4.46494072240, 36147.40987730040],
        [0.027, 0.03211931363, 6279.78949257360],
        [0.026, 5.46497324333, 6245.04817735560],
        [0.035, 4.52695674113, 36949.23080842420],
        [0.027, 3.52528177609, 10770.89325626180],
        [0.026, 1.48499438453, 11080.17157891760],
        [0.035, 2.82154380962, 19402.79695281660],
        [0.025, 2.46339998836, 6279.48542133960],
        [0.026, 4.97688894643, 16737.57723659660],
        [0.026, 2.36136541526, 17996.03116822220],
        [0.029, 4.15148654061, 45892.73043315699],
        [0.026, 4.50714272714, 17796.95916678580],
        [0.027, 4.72625223674, 1066.49547719000],
        [0.025, 2.89309528854, 6286.66627864320],
        [0.027, 0.37462444357, 12964.30070339100],
        [0.029, 4.94860010533, 5863.59120611620],
        [0.031, 3.93096113577, 29864.33402730900],
        [0.024, 6.14987193584, 18606.49894600020],
        [0.024, 3.74225964547, 29026.48522950779],
        [0.025, 5.70460621565, 27707.54249429480],
        [0.025, 5.33928840652, 15141.39079431200],
        [0.027, 3.02320897140, 6286.36220740920],
        [0.023, 0.28364955406, 5327.47610838280],
        [0.026, 1.34240461687, 18875.52586977400],
        [0.024, 1.33998410121, 19800.94595622480],
        [0.025, 6.00172494004, 6489.26139842860],
        [0.022, 1.81777974484, 6288.59877429880],
        [0.022, 3.58603606640, 6915.85958930460],
        [0.029, 2.09564449439, 15265.88651930040],
        [0.022, 1.02173599251, 11925.27409260060],
        [0.022, 4.74660932338, 28230.18722269139],
        [0.021, 2.30688751432, 5999.21653112620],
        [0.021, 3.22654944430, 25934.12433108940],
        [0.021, 3.04956726238, 6566.93516885660],
        [0.027, 5.35653084499, 33794.54372352860],
        [0.028, 3.91168324815, 18208.34994259200],
        [0.020, 1.52296293311, 135.06508003540],
        [0.022, 4.66462839521, 13362.44970679920],
        [0.019, 1.78121167862, 156137.47598479927],
        [0.019, 2.99969102221, 19651.04848109800],
        [0.019, 2.86664273362, 18422.62935909819],
        [0.025, 0.94995632141, 31415.37924995700],
        [0.019, 4.71432851499, 77690.75950573849],
        [0.019, 2.54227398241, 77736.78343050249],
        [0.020, 5.91915117116, 48739.85989708300],
    ],
    # R2
    [
        [4359.385, 5.78455133738, 6283.07584999140],
        [123.633, 5.57934722157, 12566.15169998280],
        [12.341, 3.14159265359, 0.00000000000],
        [8.792, 3.62777733395, 77713.77146812050],
        [5.689, 1.86958905084, 5573.14280143310],
        [3.301, 5.47027913302, 18849.22754997420],
        [1.471, 4.48028885617, 5507.55323866740],
        [1.013, 2.81456417694, 5223.69391980220],
        [0.854, 3.10878241236, 1577.34354244780],
        [1.102, 2.84173992403, 161000.68573767410],
        [0.648, 5.47349498544, 775.52261132400],
        [0.609, 1.37969434104, 6438.49624942560],
        [0.499, 4.41649242250, 6286.59896834040],
        [0.417, 0.90242451175, 10977.07880469900],
        [0.402, 3.20376585290, 5088.62883976680],
        [0.351, 1.81079227770, 5486.77784317500],
        [0.467, 3.65753702738, 7084.89678111520],
        [0.458, 5.38585314743, 149854.40013480789],
        [0.304, 3.51701098693, 796.29800681640],
        [0.266, 6.17413982699, 6836.64525283380],
        [0.279, 1.84120501086, 4694.00295470760],
        [0.260, 1.41629543251, 2146.16541647520],
        [0.266, 3.13832905677, 71430.69561812909],
        [0.321, 5.35313367048, 3154.68708489560],
        [0.238, 2.17720020018, 155.42039943420],
        [0.293, 4.61501268144, 4690.47983635860],
        [0.229, 4.75969588070, 7234.79425624200],
        [0.211, 0.21868065485, 4705.73230754360],
        [0.201, 4.21905743357, 1349.86740965880],
        [0.195, 4.57808285364, 529.69096509460],
        [0.253, 2.81496293039, 1748.01641306700],
        [0.182, 5.70454011389, 6040.34724601740],
        [0.179, 6.02897097053, 4292.33083295040],
        [0.186, 1.58690991244, 6309.37416979120],
        [0.170, 2.90220009715, 9437.76293488700],
        [0.166, 1.99984925026, 8031.09226305840],
        [0.158, 0.04783713552, 2544.31441988340],
        [0.197, 2.01083639502, 1194.44701022460],
        [0.165, 5.78372596778, 83996.84731811189],
        [0.214, 3.38285934319, 7632.94325965020],
        [0.140, 0.36401486094, 10447.38783960440],
        [0.151, 0.95153163031, 6127.65545055720],
        [0.136, 1.48426306582, 2352.86615377180],
        [0.127, 5.48475435134, 951.71840625060],
        [0.126, 5.26866506592, 6279.55273164240],
        [0.125, 3.75754889288, 6812.76681508600],
        [0.101, 4.95015746147, 398.14900340820],
        [0.102, 0.68468295277, 1592.59601363280],
        [0.100, 1.14568935785, 3894.18182954220],
        [0.129, 0.76540016965, 553.56940284240],
        [0.109, 5.41063597567, 6256.77753019160],
        [0.075, 5.84804322893, 242.72860397400],
        [0.095, 1.94452244083, 11856.21865142450],
        [0.077, 0.69373708195, 8429.24126646660],
        [0.100, 5.19725292131, 244287.60000722768],
        [0.080, 6.18440483705, 1059.38193018920],
        [0.069, 5.25699888595, 14143.49524243060],
        [0.085, 5.39484725499, 25132.30339996560],
        [0.066, 0.51779993906, 801.82093112380],
        [0.055, 5.16878202461, 7058.59846131540],
        [0.051, 3.88759155247, 12036.46073488820],
        [0.050, 5.57636570536, 6290.18939699220],
        [0.061, 2.24359003264, 8635.94200376320],
        [0.050, 5.54441900966, 1990.74501704100],
        [0.056, 4.00301078040, 13367.97263110660],
        [0.052, 4.13138898038, 7860.41939243920],
        [0.052, 3.90943054011, 26.29831979980],
        [0.041, 3.57128482780, 7079.37385680780],
        [0.056, 2.76959005761, 90955.55169449610],
        [0.042, 1.91461189199, 7477.52286021600],
        [0.042, 0.42728171713, 10213.28554621100],
        [0.042, 1.09413724455, 709.93304855830],
        [0.039, 3.93298068961, 10973.55568635000],
        [0.038, 6.17935925345, 9917.69687450980],
        [0.049, 0.83021145241, 11506.76976979360],
        [0.053, 1.45828359397, 233141.31440436150],
        [0.047, 6.21568666789, 6681.22485339960],
        [0.037, 0.36359309980, 10177.25767953360],
        [0.035, 3.33024911524, 5643.17856367740],
        [0.034, 5.63446915337, 6525.80445396540],
        [0.035, 5.36033855038, 25158.60171976540],
        [0.034, 5.36319798321, 4933.20844033260],
        [0.033, 4.24722336872, 12569.67481833180],
        [0.043, 5.26370903404, 10575.40668294180],
        [0.042, 5.08837645072, 11015.10647733480],
        [0.040, 1.98334703186, 6284.05617105960],
        [0.042, 4.22496037505, 88860.05707098669],
        [0.029, 3.19088628170, 11926.25441366880],
        [0.029, 0.15217616684, 12168.00269657460],
        [0.030, 1.61904744136, 9779.10867612540],
        [0.027, 0.76388991416, 1589.07289528380],
        [0.036, 2.74712003443, 3738.76143010800],
        [0.033, 3.08807829566, 3930.20969621960],
        [0.031, 5.34906619513, 143571.32428481648],
        [0.025, 0.10240267494, 22483.84857449259],
        [0.030, 3.47110495524, 14945.31617355440],
        [0.024, 1.10425016019, 4535.05943692440],
        [0.024, 1.58037259780, 6496.37494542940],
        [0.023, 3.87710321433, 6275.96230299060],
        [0.025, 3.94529778970, 3128.38876509580],
        [0.023, 3.44685609601, 4136.91043351620],
        [0.023, 3.83156029849, 5753.38488489680],
        [0.022, 1.86956128067, 16730.46368959580],
        [0.025, 2.42188933855, 5729.50644714900],
        [0.020, 1.78208352927, 17789.84561978500],
        [0.021, 4.30363087400, 16858.48253293320],
        [0.021, 0.49258939822, 29088.81141598500],
        [0.025, 1.33030250444, 6282.09552892320],
        [0.027, 2.54785812264, 3496.03282613400],
        [0.022, 1.11232521950, 12721.57209941700],
        [0.021, 5.97759081637, 7.11354700080],
        [0.019, 0.80292033311, 16062.18452611680],
        [0.023, 4.12454848769, 2388.89402044920],
        [0.022, 4.92663152168, 18875.52586977400],
        [0.023, 5.68902059771, 16460.33352952499],
        [0.023, 4.97346265647, 17260.15465469040],
        [0.023, 3.03021283729, 66567.48586525429],
        [0.016, 3.89740925257, 5331.35744374080],
        [0.017, 3.08268671348, 154717.60988768269],
        [0.016, 3.95085099736, 3097.88382272579],
        [0.016, 3.99041783945, 6283.14316029419],
        [0.020, 6.10644140189, 167283.76158766550],
        [0.015, 4.09775914607, 11712.95531823080],
        [0.016, 5.71769940700, 17298.18232732620],
        [0.016, 3.28894009404, 5884.92684658320],
        [0.015, 5.64785377164, 12559.03815298200],
        [0.016, 4.43452080930, 6283.00853968860],
        [0.014, 2.31721603062, 5481.25491886760],
        [0.014, 4.43479032305, 13517.87010623340],
        [0.014, 4.73209312936, 7342.45778018060],
        [0.012, 0.64705975463, 18073.70493865020],
        [0.011, 1.51443332200, 16200.77272450120],
        [0.011, 0.88708889185, 21228.39202354580],
        [0.014, 4.50116508534, 640.87760738220],
        [0.011, 4.64339996198, 11790.62908865880],
        [0.011, 1.31064298246, 4164.31198961300],
        [0.009, 3.02238989305, 23543.23050468179],
        [0.009, 2.04999402381, 22003.91463486980],
        [0.009, 4.91488110218, 213.29909543800],
    ],
    # R3
    [
        [144.595, 4.27319435148, 6283.07584999140],
        [6.729, 3.91697608662, 12566.15169998280],
        [0.774, 0.00000000000, 0.00000000000],
        [0.247, 3.73019298781, 18849.22754997420],
        [0.036, 2.80081409050, 6286.59896834040],
        [0.033, 5.62216602775, 6127.65545055720],
        [0.019, 3.71292621802, 6438.49624942560],
        [0.016, 4.26011484232, 6525.80445396540],
        [0.016, 3.50416887054, 6256.77753019160],
        [0.014, 3.62127621114, 25132.30339996560],
        [0.011, 4.39200958819, 4705.73230754360],
        [0.011, 5.22327127059, 6040.34724601740],
        [0.010, 4.28045254647, 83996.84731811189],
        [0.009, 1.56864096494, 5507.55323866740],
        [0.011, 1.37795688024, 6309.37416979120],
        [0.010, 5.19937959068, 71430.69561812909],
        [0.009, 0.47275199930, 6279.55273164240],
        [0.009, 0.74642756529, 5729.50644714900],
        [0.007, 2.97374891560, 775.52261132400],
        [0.007, 3.28615691021, 7058.59846131540],
        [0.007, 2.19184402142, 6812.76681508600],
        [0.005, 3.15419034438, 529.69096509460],
        [0.006, 4.54725567047, 1059.38193018920],
        [0.005, 1.51104406936, 7079.37385680780],
        [0.007, 2.98052059053, 6681.22485339960],
        [0.005, 2.30961231391, 12036.46073488820],
        [0.005, 3.71102966917, 6290.18939699220],
    ],
    # R4
    [
        [3.858, 2.56384387339, 6283.07584999140],
        [0.306, 2.26769501230, 12566.15169998280],
        [0.053, 3.44031471924, 5573.14280143310],
        [0.015, 2.04794573436, 18849.22754997420],
        [0.013, 2.05688873673, 77713.77146812050],
        [0.007, 4.41218854480, 161000.68573767410],
        [0.005, 5.26154653107, 6438.49624942560],
        [0.005, 4.07695126049, 6127.65545055720],
        [0.006, 3.81514213664, 149854.40013480789],
        [0.003, 1.28175749811, 6286.59896834040],
    ],
    # R5
    [
        [0.086, 1.21579741687, 6283.07584999140],
        [0.012, 0.65617264033, 12566.15169998280],
        [0.001, 0.38068797142, 18849.22754997420],
    ],
]
"""This table contains Earth's periodic terms (all of them) from the planetary
theory VSOP87 for the radius vector at the equinox of date (taken from the 'D'
solution). In Meeus' book a shortened version can be found in pages 420-421."""


VSOP87_L_J2000 = [
    # L0
    [
        [175347046.0, 0.0, 0.0],
        [3341656.0, 4.6692568, 6283.07585],
        [34894.0, 4.6261, 12556.1517],
        [3497.0, 2.7441, 5753.3849],
        [3418.0, 2.8289, 3.5231],
        [3136.0, 3.6277, 77713.7715],
        [2676.0, 4.4181, 7860.4194],
        [2343.0, 6.1352, 3930.2097],
        [1324.0, 0.7425, 11506.7698],
        [1273.0, 2.0371, 529.691],
        [1199.0, 1.1096, 1577.3435],
        [990.0, 5.233, 5884.927],
        [902.0, 2.045, 26.298],
        [857.0, 3.508, 398.149],
        [780.0, 1.179, 5223.694],
        [753.0, 2.533, 5507.553],
        [505.0, 4.583, 18849.228],
        [492.0, 4.205, 775.523],
        [357.0, 2.92, 0.067],
        [317.0, 5.849, 11790.629],
        [284.0, 1.899, 796.298],
        [271.0, 0.315, 10977.079],
        [243.0, 0.345, 5486.778],
        [206.0, 4.806, 2544.314],
        [205.0, 1.869, 5573.143],
        [202.0, 2.458, 6069.777],
        [156.0, 0.833, 213.299],
        [132.0, 3.411, 2942.463],
        [126.0, 1.083, 20.775],
        [115.0, 0.645, 0.98],
        [103.0, 0.636, 4694.003],
        [102.0, 0.976, 15720.839],
        [102.0, 4.267, 7.114],
        [99.0, 6.21, 2146.17],
        [98.0, 0.68, 155.42],
        [86.0, 5.98, 161000.69],
        [85.0, 1.3, 6275.96],
        [85.0, 3.67, 71430.7],
        [80.0, 1.81, 17260.15],
        [79.0, 3.04, 12036.46],
        [75.0, 1.76, 5088.63],
        [74.0, 3.5, 3154.69],
        [74.0, 4.68, 801.82],
        [70.0, 0.83, 9437.76],
        [62.0, 3.98, 8827.39],
        [61.0, 1.82, 7084.9],
        [57.0, 2.78, 6286.6],
        [56.0, 4.39, 14143.5],
        [56.0, 3.47, 6279.55],
        [52.0, 0.19, 12139.55],
        [52.0, 1.33, 1748.02],
        [51.0, 0.28, 5856.48],
        [49.0, 0.49, 1194.45],
        [41.0, 5.37, 8429.24],
        [41.0, 2.4, 19651.05],
        [39.0, 6.17, 10447.39],
        [37.0, 6.04, 10213.29],
        [37.0, 2.57, 1059.38],
        [36.0, 1.71, 2352.87],
        [36.0, 1.78, 6812.77],
        [33.0, 0.59, 17789.85],
        [30.0, 0.44, 83996.85],
        [30.0, 2.74, 1349.87],
        [25.0, 3.16, 4690.48],
    ],
    # L1
    [
        [628307584999.0, 0.0, 0.0],
        [206059.0, 2.678235, 6283.07585],
        [4303.0, 2.6351, 12566.1517],
        [425.0, 1.59, 3.523],
        [119.0, 5.796, 26.298],
        [109.0, 2.966, 1577.344],
        [93.0, 2.59, 18849.23],
        [72.0, 1.14, 529.69],
        [68.0, 1.87, 398.15],
        [67.0, 4.41, 5507.55],
        [59.0, 2.89, 5223.69],
        [56.0, 2.17, 155.42],
        [45.0, 0.4, 796.3],
        [36.0, 0.47, 775.52],
        [29.0, 2.65, 7.11],
        [21.0, 5.34, 0.98],
        [19.0, 1.85, 5486.78],
        [19.0, 4.97, 213.3],
        [17.0, 2.99, 6275.96],
        [16.0, 0.03, 2544.31],
        [16.0, 1.43, 2146.17],
        [15.0, 1.21, 10977.08],
        [12.0, 2.83, 1748.02],
        [12.0, 3.26, 5088.63],
        [12.0, 5.27, 1194.45],
        [12.0, 2.08, 4694.0],
        [11.0, 0.77, 553.57],
        [10.0, 1.3, 6286.6],
        [10.0, 4.24, 1349.87],
        [9.0, 2.7, 242.73],
        [9.0, 5.64, 951.72],
        [8.0, 5.3, 2352.87],
        [6.0, 2.65, 9437.76],
        [6.0, 4.67, 4690.48],
    ],
    # L2
    [
        [8722.0, 1.0725, 6283.0758],
        [991.0, 3.1416, 0.0],
        [295.0, 0.437, 12566.152],
        [27.0, 0.05, 3.52],
        [16.0, 5.19, 26.3],
        [16.0, 3.69, 155.42],
        [9.0, 0.3, 18849.23],
        [9.0, 2.06, 77713.77],
        [7.0, 0.83, 775.52],
        [5.0, 4.66, 1577.34],
        [4.0, 1.03, 7.11],
        [4.0, 3.44, 5573.14],
        [3.0, 5.14, 769.3],
        [3.0, 6.05, 5507.55],
        [3.0, 1.19, 242.73],
        [3.0, 6.12, 529.69],
        [3.0, 0.3, 398.15],
        [3.0, 2.28, 553.57],
        [2.0, 4.38, 5223.69],
        [2.0, 3.75, 0.98],
    ],
    # L3
    [
        [289.0, 5.842, 6283.076],
        [21.0, 6.05, 12556.15],
        [3.0, 5.2, 155.42],
        [3.0, 3.14, 0.0],
        [1.0, 4.72, 3.52],
        [1.0, 5.97, 242.73],
        [1.0, 5.54, 18849.23],
    ],
    # L4
    [[8.0, 4.14, 6283.08], [1.0, 3.28, 12566.15]],
]
"""This table contains Earth's most important periodic terms from the planetary
theory VSOP87 for the heliocentric longitude, referred to the equinox J2000.0.
In Meeus' book these values can be found in pages 418-420 and page 173."""


VSOP87_B_J2000 = [
    # B0
    [
        [280.0, 3.199, 84334.662],
        [102.0, 5.422, 5507.553],
        [80.0, 3.88, 5223.69],
        [44.0, 3.7, 2352.87],
        [32.0, 4.0, 1577.34],
    ],
    # B1
    [
        [227778.0, 3.413766, 6283.07585],
        [3806.0, 3.3706, 12566.1517],
        [3620.0, 0.0, 0.0],
        [72.0, 3.33, 18849.23],
        [8.0, 3.89, 5507.55],
        [8.0, 1.79, 5223.69],
        [6.0, 5.2, 2352.87],
    ],
    # B2
    [
        [9721.0, 5.1519, 6283.07585],
        [233.0, 3.1416, 0.0],
        [134.0, 0.644, 12566.152],
        [7.0, 1.07, 18849.23],
    ],
    # B3
    [[276.0, 0.595, 6283.076], [17.0, 3.14, 0.0], [4.0, 0.12, 12566.15]],
    # B4
    [[6.0, 2.27, 6283.08], [1.0, 0.0, 0.0]],
]
"""This table contains Earth's most important periodic terms from the planetary
theory VSOP87 for the heliocentric latitude, referred to the equinox J2000.0.
In Meeus' book these values can be found in page 420 and page 173."""


[docs]class Ellipsoid(object): """ Class Ellipsoid is useful to encapsulate the most important parameters of a given reference ellipsoid. """
[docs] def __init__(self, a, f, omega): """Ellipsoid constructor. :param a: Semi-major or equatorial radius, in meters :type a: float :param f: Flattening :type f: float :param omega: Angular velocity of the Earth, in rad/s :type omega: float """ self._a = a self._f = f self._omega = omega
[docs] def __str__(self): """Method used when trying to print the object. :returns: Semi-major equatorial radius, flattening and angular velocity as a string. :rtype: string >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> print(a) 6378140.0:0.0033528132:7.292e-05 """ return "{}:{}:{}".format(self._a, self._f, self._omega)
[docs] def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> repr(a) 'Ellipsoid(6378140.0, 0.0033528132, 7.292e-05)' """ return "{}({}, {}, {})".format( self.__class__.__name__, self._a, self._f, self._omega )
[docs] def b(self): """Method to return the semi-minor radius. :returns: Semi-minor radius, in meters :rtype: float >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> round(a.b(), 3) 6356755.288 """ return self._a * (1.0 - self._f)
[docs] def e(self): """Method to return the eccentricity of the Earth's meridian. :returns: Eccentricity of the Earth's meridian :rtype: float >>> a = Ellipsoid(6378140.0, 0.0033528132, 7.292e-5) >>> round(a.e(), 8) 0.08181922 """ f = self._f return sqrt(2.0 * f - f * f)
IAU76 = Ellipsoid(6378140.0, (1.0 / 298.257), 7.292114992e-5) """Reference ellipsoid defined by the International Astronomic Union in 1976""" WGS84 = Ellipsoid(6378137.0, (1.0 / 298.257223563), 7292115e-11) """Reference ellipsoid World Geodetic System 1984, a modern ellipsoid used by the GPS system, and the standard in many applications"""
[docs]class Earth(object): """ Class Earth models the figure of the Earth surface and, with the help of a configurable reference ellipsoid, provides a set of handy method to compute different parameters, like the distance between two points on the surface. Please note that here we depart a little bit from Meeus' book because the Earth class uses the **World Geodetic System 1984 (WGS84)** as the default reference ellipsoid, instead of the International Astronomical Union 1974, which Meeus uses. This change is done because WGS84 is regarded as more modern. """
[docs] def __init__(self, ellipsoid=WGS84): """Earth constructor. It takes a reference ellipsoid as input. If not provided, the ellipsoid used is the WGS84 by default. :param ellipsoid: Reference ellipsoid to be used. WGS84 by default. :type radians: :class:`Ellipsoid` :returns: Earth object. :rtype: :py:class:`Earth` :raises: TypeError if input value is of wrong type. """ # Set an invalid ellipsoid by default self._ellip = Ellipsoid(0.0, 0.0, 0.0) self.set(ellipsoid) # Let's use 'set()' method
[docs] def set(self, ellipsoid): """Method used to define an Earth object. It takes a reference ellipsoid as input. If not provided, the ellipsoid used is the WGS84 by default. :param ellipsoid: Reference ellipsoid to be used. WGS84 by default. :type radians: :class:`Ellipsoid` :returns: None :rtype: None :raises: TypeError if input value is of wrong type. """ if isinstance(ellipsoid, Ellipsoid): self._ellip = ellipsoid else: raise TypeError("Invalid input value") return
[docs] def __str__(self): """Method used when trying to print the Earth object. It essentially returns the corresponting '__str__()' method from the reference ellipsoid being used. :returns: Semi-major equatorial radius, flattening and angular velocity of the current reference ellipsoid, as a string. :rtype: string >>> e = Earth() >>> s = str(e) >>> v = s.split(':') >>> print(v[0] + '|' + str(round(float(v[1]), 14)) + '|' + v[2] ) 6378137.0|0.00335281066475|7.292115e-05 """ return str(self._ellip)
[docs] def __repr__(self): """Method providing the 'official' string representation of the object. It provides a valid expression that could be used to recreate the object. :returns: As string with a valid expression to recreate the object :rtype: string """ return "{}(ellipsoid=Ellipsoid({}, {}, {}))".format( self.__class__.__name__, self._ellip._a, self._ellip._f, self._ellip._omega )
[docs] def rho(self, latitude): """"Method to compute the rho term, which is the observer distance to the center of the Earth, when the observer is at sea level. In this case, the Earth's equatorial radius is taken as unity. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Rho: Distance to the center of the Earth from sea level. It is a ratio with respect to Earth equatorial radius. :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho(0.0), 1) 1.0 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() return (0.9983271 + 0.0016764 * cos(2.0 * phi) - 0.0000035 * cos(4.0 * phi))
[docs] def rho_sinphi(self, latitude, height): """"Method to compute the rho*sin(phi') term, needed in the calculation of diurnal parallaxes, eclipses and occulatitions. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :param height: Height of the observer above the sea level, in meters :type height: int, float :returns: rho*sin(phi') term :rtype: float :raises: TypeError if input value is of wrong type. >>> lat = Angle(33, 21, 22.0) >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho_sinphi(lat, 1706), 6) 0.546861 """ if not ( isinstance(latitude, (int, float, Angle)) and isinstance(height, (int, float)) ): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() b_a = self._ellip.b() / self._ellip._a u = atan(b_a * tan(phi)) return b_a * sin(u) + height / self._ellip._a * sin(phi)
[docs] def rho_cosphi(self, latitude, height): """"Method to compute the rho*cos(phi') term, needed in the calculation of diurnal parallaxes, eclipses and occulatitions. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :param height: Height of the observer above the sea level, in meters :type height: int, float :returns: rho*cos(phi') term :rtype: float :raises: TypeError if input value is of wrong type. >>> lat = Angle(33, 21, 22.0) >>> e = Earth(ellipsoid=IAU76) >>> round(e.rho_cosphi(lat, 1706), 6) 0.836339 """ if not ( isinstance(latitude, (int, float, Angle)) and isinstance(height, (int, float)) ): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() b_a = self._ellip.b() / self._ellip._a u = atan(b_a * tan(phi)) return cos(u) + height / self._ellip._a * cos(phi)
[docs] def rp(self, latitude): """"Method to compute the radius of the parallel circle at the given latitude. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Radius of the parallel circle at given latitude, in meters :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rp(42.0), 1) 4747001.2 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() a = self._ellip._a e = self._ellip.e() return (a * cos(phi)) / sqrt(1.0 - e * e * sin(phi) * sin(phi))
[docs] def linear_velocity(self, latitude): """"Method to compute the linear velocity of a point at latitude, due to the rotation of the Earth. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Linear velocity of a point at latitude, in meters per second :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.linear_velocity(42.0), 2) 346.16 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") omega = self._ellip._omega return omega * self.rp(latitude)
[docs] def rm(self, latitude): """"Method to compute the radius of curvature of the Earth's meridian at the given latitude. :param latitude: Geodetical or geographical latitude of the observer, in degrees :type latitude: int, float, :class:`Angle` :returns: Radius of curvature of the Earth's meridian at the given latitude, in meters :rtype: float :raises: TypeError if input value is of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> round(e.rm(42.0), 1) 6364033.3 """ if not isinstance(latitude, (int, float, Angle)): raise TypeError("Invalid input value") if isinstance(latitude, (int, float)): phi = radians(latitude) # Convert to radians else: phi = latitude.rad() # It is an Angle. Call method rad() a = self._ellip._a e = self._ellip.e() return (a * (1.0 - e * e)) / (1.0 - e * e * sin(phi) * sin(phi)) ** 1.5
[docs] def distance(self, lon1, lat1, lon2, lat2): """"This method computes the distance between two points on the Earth's surface using the method from H. Andoyer. .. note:: We will consider that positions 'East' and 'South' are negative. :param lon1: Longitude of the first point, in degrees :type lon1: int, float, :class:`Angle` :param lat1: Geodetical or geographical latitude of the first point, in degrees :type lat1: int, float, :class:`Angle` :param lon2: Longitude of the second point, in degrees :type lon2: int, float, :class:`Angle` :param lat2: Geodetical or geographical latitude of the second point, in degrees :type lat2: int, float, :class:`Angle` :returns: Tuple with distance between the two points along Earth's surface, and approximate error, in meters :rtype: tuple :raises: TypeError if input values are of wrong type. >>> e = Earth(ellipsoid=IAU76) >>> lon1 = Angle(-2, 20, 14.0) >>> lat1 = Angle(48, 50, 11.0) >>> lon2 = Angle(77, 3, 56.0) >>> lat2 = Angle(38, 55, 17.0) >>> dist, error = e.distance(lon1, lat1, lon2, lat2) >>> round(dist, 0) 6181628.0 >>> error 69.0 >>> lon1 = Angle(-2.09) >>> lat1 = Angle(41.3) >>> lon2 = Angle(73.99) >>> lat2 = Angle(40.75) >>> dist, error = e.distance(lon1, lat1, lon2, lat2) >>> round(dist, 0) 6176760.0 >>> error 69.0 """ if not ( isinstance(lon1, (int, float, Angle)) and isinstance(lat1, (int, float, Angle)) and isinstance(lon2, (int, float, Angle)) and isinstance(lat2, (int, float, Angle)) ): raise TypeError("Invalid input value") if isinstance(lon1, (int, float)): l1 = radians(lon1) # Convert to radians else: l1 = lon1.rad() # It is an Angle. Call method rad() if isinstance(lat1, (int, float)): phi1 = radians(lat1) # Convert to radians else: phi1 = lat1.rad() # It is an Angle. Call method rad() if isinstance(lon2, (int, float)): l2 = radians(lon2) # Convert to radians else: l2 = lon2.rad() # It is an Angle. Call method rad() if isinstance(lat2, (int, float)): phi2 = radians(lat2) # Convert to radians else: phi2 = lat2.rad() # It is an Angle. Call method rad() f = (phi1 + phi2) / 2.0 g = (phi1 - phi2) / 2.0 lam = (l1 - l2) / 2.0 sin2g = sin(g) ** 2 cos2g = cos(g) ** 2 cos2f = cos(f) ** 2 sin2f = sin(f) ** 2 sin2lam = sin(lam) ** 2 cos2lam = cos(lam) ** 2 s = sin2g * cos2lam + cos2f * sin2lam c = cos2g * cos2lam + sin2f * sin2lam omega = atan(sqrt(s / c)) r = sqrt(s * c) / omega d = 2.0 * omega * self._ellip._a h1 = (3.0 * r - 1.0) / (2.0 * c) h2 = (3.0 * r + 1.0) / (2.0 * s) fe = self._ellip._f dist = d * (1.0 + fe * (h1 * sin2f * cos2g - h2 * cos2f * sin2g)) error = round(dist * fe * fe, 0) return dist, error
[docs] @staticmethod def geometric_heliocentric_position(epoch, toFK5=True): """"This method computes the geometric heliocentric position of the Earth for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param toFK5: Whether or not the small correction to convert to the FK5 system will be applied or not :type toFK5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> l, b, r = Earth.geometric_heliocentric_position(epoch, toFK5=False) >>> print(round(l.to_positive(), 6)) 19.907297 >>> print(b.dms_str(n_dec=3)) -0.744'' >>> print(round(r, 8)) 0.99760852 """ # NOTE: In page 169, Meeus gives a different value for the LONGITUDE # (19.907372 degrees) as the one presented above (19.906016 degrees). # After many checks and tests, I came to the conclusion that the result # above is the right one, and Meeus' result is wrong # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Second, call auxiliary function in charge of computations return geometric_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, toFK5)
[docs] @staticmethod def apparent_heliocentric_position(epoch, nutation=True): """"This method computes the apparent heliocentric position of the Earth for a given epoch, using the VSOP87 theory. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param nutation: Whether the nutation correction will be applied :type epoch: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. >>> epoch = Epoch(1992, 10, 13.0) >>> lon, lat, r = Earth.apparent_heliocentric_position(epoch) >>> print(round(lon.to_positive(), 6)) 19.905986 >>> print(lat.dms_str(n_dec=3)) -0.721'' >>> print(round(r, 8)) 0.99760852 """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Second, call auxiliary function in charge of computations return apparent_vsop_pos(epoch, VSOP87_L, VSOP87_B, VSOP87_R, nutation)
[docs] @staticmethod def geometric_heliocentric_position_J2000(epoch, toFK5=True): """"This method computes the geometric heliocentric position of the Earth for a given epoch, using the VSOP87 theory, referred to the equinox J2000.0. :param epoch: Epoch to compute Earth position, as an Epoch object :type epoch: :py:class:`Epoch` :param toFK5: Whether or not the small correction to convert to the FK5 system will be applied or not :type toFK5: bool :returns: A tuple with the heliocentric longitude and latitude (as :py:class:`Angle` objects), and the radius vector (as a float, in astronomical units), in that order :rtype: tuple :raises: TypeError if input values are of wrong type. """ # First check that input values are of correct types if not isinstance(epoch, Epoch): raise TypeError("Invalid input types") # Second, call auxiliary function in charge of computations return geometric_vsop_pos( epoch, VSOP87_L_J2000, VSOP87_B_J2000, VSOP87_R, toFK5 )
def main(): # Let's define a small helper function def print_me(msg, val): print("{}: {}".format(msg, val)) # Let's show some uses of Earth class print("\n" + 35 * "*") print("*** Use of Earth class") print(35 * "*" + "\n") # An important concept are the reference ellipsoids, comprising information # about the Earth global model we are going to use. # A very important reference ellipsoid is WGS84, predefined here print_me("WGS84", WGS84) # First field is equatorial radius, second field is the flattening, and the # third field is the angular rotation velocity, in radians per second # Let's print the semi-minor axis (polar radius) print_me("Polar radius, b", WGS84.b()) # And now, let's print the eccentricity of Earth's meridian print_me("Eccentricity, e", WGS84.e()) print("") # We create an Earth object with a given reference ellipsoid. By default, # it is WGS84, but we can use another e = Earth(IAU76) print("e = Earth(IAU76)") # Print the parameters of reference ellipsoid being used print_me("'e' Earth object parameters", e) print("") # Compute the distance to the center of the Earth from a given point at sea # level, and at a certain latitude. It is given as a fraction of equatorial # radius lat = Angle(65, 45, 30.0) # We can use an Angle for this print_me("Relative distance to Earth's center, from latitude 65d 45' 30''", e.rho(lat)) print("") # Parameters rho*sin(lat) and rho*cos(lat) are useful for different # astronomical applications height = 650.0 print_me("rho*sin(lat)", round(e.rho_sinphi(lat, height), 6)) print_me("rho*cos(lat)", round(e.rho_cosphi(lat, height), 6)) print("") # Compute the radius of the parallel circle at given latitude print_me( "Radius of parallel circle at latitude 65d 45' 30'' (meters)", round(e.rp(lat), 1), ) # Compute the radius of curvature of the Earth's meridian at given latitude print_me( "Radius of Earth's meridian at latitude 65d 45' 30'' (meters)", round(e.rm(lat), 1), ) print("") # It is easy to compute the linear velocity at different latitudes print_me( "Linear velocity at the Equator (meters/second)", round(e.linear_velocity(0.0), 3), ) print_me( "Linear velocity at latitude 65d 45' 30'' (meters/second)", round(e.linear_velocity(lat), 3), ) print("") # Now let's compute the distance between two points on the Earth: # Bangkok: 13d 14' 09'' North, 100d 29' 39'' East # Buenos Aires: 34d 36' 12'' South, 58d 22' 54'' West # NOTE: We will consider that positions 'East' and 'South' are negative # Here we will take advantage of facilities provided by Angle class lon_ban = Angle(-100, 29, 39.0) lat_ban = Angle(13, 14, 9.0) lon_bai = Angle(58, 22, 54.0) lat_bai = Angle(-34, 36, 12.0) dist, error = e.distance(lon_ban, lat_ban, lon_bai, lat_bai) print_me("The distance between Bangkok and Buenos Aires is (km)", round(dist / 1000.0, 2)) print_me("The approximate error of the estimation is (meters)", round(error, 0)) print("") # Let's now compute the geometric heliocentric position for a given epoch epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.geometric_heliocentric_position(epoch) print_me("Geometric Heliocentric Longitude", lon.to_positive()) print_me("Geometric Heliocentric Latitude", lat.dms_str(n_dec=3)) print_me("Radius vector", r) print("") # And now, compute the apparent heliocentric position for the same epoch epoch = Epoch(1992, 10, 13.0) lon, lat, r = Earth.apparent_heliocentric_position(epoch) print_me("Apparent Heliocentric Longitude", lon.to_positive()) print_me("Apparent Heliocentric Latitude", lat.dms_str(n_dec=3)) print_me("Radius vector", r) if __name__ == "__main__": main()