Packages

Space Dust is an astrodynamics library written in Elixir.

Current section

Files

Jump to
space_dust lib data iau1980.ex
Raw

lib/data/iau1980.ex

defmodule SpaceDust.Data.IAU1980Data do
defstruct [
:a1,
:a2,
:a3,
:a4,
:a5,
:ai,
:bi,
:ci,
:di
]
end
defmodule SpaceDust.Data.IAU1980 do
@moduledoc """
IAU 1980 Nutation Theory data
"""
alias SpaceDust.Data.IAU1980Data, as: IAU1980Data
@data [
[0, 0, 0, 0, 1, -171_996, -174.2, 92025, 8.9],
[0, 0, 2, -2, 2, -13187, -1.6, 5736, -3.1],
[0, 0, 2, 0, 2, -2274, -0.2, 977, -0.5],
[0, 0, 0, 0, 2, 2062, 0.2, -895, 0.5],
[0, 1, 0, 0, 0, 1426, -3.4, 54, -0.1],
[1, 0, 0, 0, 0, 712, 0.1, -7, 0],
[0, 1, 2, -2, 2, -517, 1.2, 224, -0.6],
[0, 0, 2, 0, 1, -386, -0.4, 200, 0],
[1, 0, 2, 0, 2, -301, 0, 129, -0.1],
[0, -1, 2, -2, 2, 217, -0.5, -95, 0.3],
[1, 0, 0, -2, 0, -158, 0, -1, 0],
[0, 0, 2, -2, 1, 129, 0.1, -70, 0],
[-1, 0, 2, 0, 2, 123, 0, -53, 0],
[1, 0, 0, 0, 1, 63, 0.1, -33, 0],
[0, 0, 0, 2, 0, 63, 0, -2, 0],
[-1, 0, 2, 2, 2, -59, 0, 26, 0],
[-1, 0, 0, 0, 1, -58, -0.1, 32, 0],
[1, 0, 2, 0, 1, -51, 0, 27, 0],
[2, 0, 0, -2, 0, 48, 0, 1, 0],
[-2, 0, 2, 0, 1, 46, 0, -24, 0],
[0, 0, 2, 2, 2, -38, 0, 16, 0],
[2, 0, 2, 0, 2, -31, 0, 13, 0],
[2, 0, 0, 0, 0, 29, 0, -1, 0],
[1, 0, 2, -2, 2, 29, 0, -12, 0],
[0, 0, 2, 0, 0, 26, 0, -1, 0],
[0, 0, 2, -2, 0, -22, 0, 0, 0],
[-1, 0, 2, 0, 1, 21, 0, -10, 0],
[0, 2, 0, 0, 0, 17, -0.1, 0, 0],
[0, 2, 2, -2, 2, -16, 0.1, 7, 0],
[-1, 0, 0, 2, 1, 16, 0, -8, 0],
[0, 1, 0, 0, 1, -15, 0, 9, 0],
[1, 0, 0, -2, 1, -13, 0, 7, 0],
[0, -1, 0, 0, 1, -12, 0, 6, 0],
[2, 0, -2, 0, 0, 11, 0, 0, 0],
[-1, 0, 2, 2, 1, -10, 0, 5, 0],
[1, 0, 2, 2, 2, -8, 0, 3, 0],
[0, -1, 2, 0, 2, -7, 0, 3, 0],
[0, 0, 2, 2, 1, -7, 0, 3, 0],
[1, 1, 0, -2, 0, -7, 0, 0, 0],
[0, 1, 2, 0, 2, 7, 0, -3, 0],
[-2, 0, 0, 2, 1, -6, 0, 3, 0],
[0, 0, 0, 2, 1, -6, 0, 3, 0],
[2, 0, 2, -2, 2, 6, 0, -3, 0],
[1, 0, 0, 2, 0, 6, 0, 0, 0],
[1, 0, 2, -2, 1, 6, 0, -3, 0],
[0, 0, 0, -2, 1, -5, 0, 3, 0],
[0, -1, 2, -2, 1, -5, 0, 3, 0],
[2, 0, 2, 0, 1, -5, 0, 3, 0],
[1, -1, 0, 0, 0, 5, 0, 0, 0],
[1, 0, 0, -1, 0, -4, 0, 0, 0],
[0, 0, 0, 1, 0, -4, 0, 0, 0],
[0, 1, 0, -2, 0, -4, 0, 0, 0],
[1, 0, -2, 0, 0, 4, 0, 0, 0],
[2, 0, 0, -2, 1, 4, 0, -2, 0],
[0, 1, 2, -2, 1, 4, 0, -2, 0],
[1, 1, 0, 0, 0, -3, 0, 0, 0],
[1, -1, 0, -1, 0, -3, 0, 0, 0],
[-1, -1, 2, 2, 2, -3, 0, 1, 0],
[0, -1, 2, 2, 2, -3, 0, 1, 0],
[1, -1, 2, 0, 2, -3, 0, 1, 0],
[3, 0, 2, 0, 2, -3, 0, 1, 0],
[-2, 0, 2, 0, 2, -3, 0, 1, 0],
[1, 0, 2, 0, 0, 3, 0, 0, 0],
[-1, 0, 2, 4, 2, -2, 0, 1, 0],
[1, 0, 0, 0, 2, -2, 0, 1, 0],
[-1, 0, 2, -2, 1, -2, 0, 1, 0],
[0, -2, 2, -2, 1, -2, 0, 1, 0],
[-2, 0, 0, 0, 1, -2, 0, 1, 0],
[2, 0, 0, 0, 1, 2, 0, -1, 0],
[3, 0, 0, 0, 0, 2, 0, 0, 0],
[1, 1, 2, 0, 2, 2, 0, -1, 0],
[0, 0, 2, 1, 2, 2, 0, -1, 0],
[1, 0, 0, 2, 1, -1, 0, 0, 0],
[1, 0, 2, 2, 1, -1, 0, 1, 0],
[1, 1, 0, -2, 1, -1, 0, 0, 0],
[0, 1, 0, 2, 0, -1, 0, 0, 0],
[0, 1, 2, -2, 0, -1, 0, 0, 0],
[0, 1, -2, 2, 0, -1, 0, 0, 0],
[1, 0, -2, 2, 0, -1, 0, 0, 0],
[1, 0, -2, -2, 0, -1, 0, 0, 0],
[1, 0, 2, -2, 0, -1, 0, 0, 0],
[1, 0, 0, -4, 0, -1, 0, 0, 0],
[2, 0, 0, -4, 0, -1, 0, 0, 0],
[0, 0, 2, 4, 2, -1, 0, 0, 0],
[0, 0, 2, -1, 2, -1, 0, 0, 0],
[-2, 0, 2, 4, 2, -1, 0, 1, 0],
[2, 0, 2, 2, 2, -1, 0, 0, 0],
[0, -1, 2, 0, 1, -1, 0, 0, 0],
[0, 0, -2, 0, 1, -1, 0, 0, 0],
[0, 0, 4, -2, 2, 1, 0, 0, 0],
[0, 1, 0, 0, 2, 1, 0, 0, 0],
[1, 1, 2, -2, 2, 1, 0, -1, 0],
[3, 0, 2, -2, 2, 1, 0, 0, 0],
[-2, 0, 2, 2, 2, 1, 0, -1, 0],
[-1, 0, 0, 0, 2, 1, 0, -1, 0],
[0, 0, -2, 2, 1, 1, 0, 0, 0],
[0, 1, 2, 0, 1, 1, 0, 0, 0],
[-1, 0, 4, 0, 2, 1, 0, 0, 0],
[2, 1, 0, -2, 0, 1, 0, 0, 0],
[2, 0, 0, 2, 0, 1, 0, 0, 0],
[2, 0, 2, -2, 1, 1, 0, -1, 0],
[2, 0, -2, 0, 1, 1, 0, 0, 0],
[1, -1, 0, -2, 0, 1, 0, 0, 0],
[-1, 0, 0, 1, 1, 1, 0, 0, 0],
[-1, -1, 0, 2, 1, 1, 0, 0, 0],
[0, 1, 0, 1, 0, 1, 0, 0, 0]
]
def getCoefficients(rowIndex) do
row = Enum.at(@data, rowIndex)
%IAU1980Data{
a1: Enum.at(row, 0),
a2: Enum.at(row, 1),
a3: Enum.at(row, 2),
a4: Enum.at(row, 3),
a5: Enum.at(row, 4),
ai: Enum.at(row, 5),
bi: Enum.at(row, 6),
ci: Enum.at(row, 7),
di: Enum.at(row, 8)
}
end
end