Program Listing for File eop.h

Return to documentation for file (data/eop.h)

#pragma once

#include <filesystem>

#include "lupnt/core/definitions.h"

namespace lupnt {

  // Struct to hold EOP data
  struct EopFileData {
    VecXi years;
    VecXi months;
    VecXi days;
    VecXd mjds_utc;
    VecXd x;
    VecXd y;
    VecXd ut1_utc;
    VecXd lod;
    VecXd dpsi;
    VecXd deps;
    VecXd xErr;
    VecXd yErr;
    VecXd ut1_utc_err;
    VecXd lod_err;
    VecXd dpsi_err;
    VecXd deps_err;
  };

  struct EopData {
    Real x_pole;
    Real y_pole;
    Real ut1_utc;
    Real lod;
    Real dpsi;
    Real deps;
    Real dx_pole;
    Real dy_pole;
    Real tai_utc;
  };

  void LoadEopFileData(const std::filesystem::path& filepath, bool force = false);

  bool LoadLatestEopFromIers(bool force = true);

  EopData GetEopData(Real mjd_utc);

  EopFileData* GetEopFileData();

  Real GetUt1UtcDifference(Real mjd_utc);

}  // namespace lupnt