CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
earth.hpp File Reference
#include <span>
#include <array>
#include <algorithm>
#include <cmath>
#include <functional>
#include <ranges>
#include <cstdint>
#include "toolbox.hpp"
#include "julian_day.hpp"
#include "vsop87d/vsop87d.hpp"
#include "vsop87d/defines.hpp"

Classes

struct  astro::earth::nutation::θCoeffs
struct  astro::earth::nutation::ψCoeffs
struct  astro::earth::nutation::εCoeffs
struct  astro::earth::nutation::NutationCoeffs
struct  astro::earth::aberration::DailyVariationTerm
 A term of the Δλ series: amplitude × τ^tau_power × sin(phase + rate × τ), with τ the Julian millennia since J2000. More...

Namespaces

namespace  astro
namespace  astro::earth
namespace  astro::earth::heliocentric_coord
namespace  astro::earth::nutation
namespace  astro::earth::obliquity
namespace  astro::earth::aberration

Enumerations

enum class  astro::earth::nutation::Model : uint8_t { astro::earth::nutation::MEEUS , astro::earth::nutation::IAU_1980 }
 Specify Earth's nutation model. More...

Functions

auto astro::earth::heliocentric_coord::vsop87d (const double jde) -> toolbox::SphericalCoordinate
 Calculate the heliocentric position of the Earth, using VSOP87D.
auto astro::earth::nutation::find_model (const Model model) -> std::span< const NutationCoeffs >
 Find the nutation coefficients for the given model.
auto astro::earth::nutation::gen_eval_θ (const double jc)
 Return the function to calculate the θ values, for the given julian century.
auto astro::earth::nutation::longitude (const double jde, const Model model=Model::IAU_1980) -> toolbox::AngleDeg
 Calculates the nutation in longitude (Δψ) for the given julian day.
auto astro::earth::nutation::obliquity (const double jde, const Model model=Model::IAU_1980) -> toolbox::AngleDeg
 Calculates the nutation in obliquity (Δε) for the given julian day.
auto astro::earth::obliquity::mean (const double jde) -> toolbox::AngleDeg
 Calculates the mean obliquity of the ecliptic (ε₀) for the given julian day.
auto astro::earth::obliquity::true_obliquity (const double jde, const nutation::Model model=nutation::Model::IAU_1980) -> toolbox::AngleDeg
 Calculates the true obliquity of the ecliptic (ε) for the given julian day.
auto astro::earth::aberration::daily_λ_variation (const double jde) -> double
 The daily variation Δλ of the Sun's geocentric longitude, mean equinox of the date.
auto astro::earth::aberration::compute (const double jde, const toolbox::DistanceAu r) -> toolbox::AngleDeg
 Compute the aberration correction to the Sun's geometric longitude, Meeus (25.11).

Variables

constexpr std::array< NutationCoeffs, 63 > astro::earth::nutation::MEEUS_NUTATION_COEFFS
constexpr std::array< NutationCoeffs, 106 > astro::earth::nutation::IAU1980_NUTATION_COEFFS
constexpr std::array< DailyVariationTerm, 21 > astro::earth::aberration::MEEUS_DAILY_VARIATION_TERMS
 The Δλ series (daily variation of the Sun's geocentric longitude), p. 168.
constexpr double astro::earth::aberration::LIGHT_TIME_DAYS_PER_AU
 The light-time for unit distance, in days per AU (= 499.00478 s ≈ 8.3 min).