Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ephem/*.430t filter=lfs diff=lfs merge=lfs -text
ephem/*.440t filter=lfs diff=lfs merge=lfs -text
2 changes: 2 additions & 0 deletions guide/app_acknowledgements.tex
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ \section{Technical Articles}
\item \citetp{Montenbruck-Pfleger:2000} % ``Astronomy on the Personal Computer''
\item \citetp{Reingold-Dershowitz:2001} %``Calendrical Calculations''
\item $\Delta T$ webpage by V. Reijs: \url{http://www.iol.ie/~geniet/eng/DeltaTeval.htm}
\item JPL Horizons System manual: \url{https://ssd.jpl.nasa.gov/horizons/manual.html}
\end{enumerate}
\item[Precession:] \citetp{2011AA:Vondrak} with correction \citep{2012AA:Vondrak}
\item[Nutation:] \citetp{Nutation:IAU2000B} %Dennis D. McCarthy and Brian J. Luzum: An Abridged Model of the Precession-Nutation of the Celestial Pole.
Expand All @@ -201,6 +202,7 @@ \section{Included Source Code}
\item OBJ loader in the Scenery3D plugin based on glObjViewer (c) 2007 dhpoware
\item Parts of the code to work with DE430/DE431 and DE440/DE441 data files have been taken from Project Pluto (GPL license).
\item The \file{SpoutLibrary.dll} and header from the SpoutSDK version 2.005 available at \url{http://spout.zeal.co} (BSD license).
\item Parts of the code to compute $\Delta T$ for JPL Horizons algorithm\newFeature{26.1} requires access to Essential Routines for Fundamental Astronomy (ERFA, version 2.0.1) (BSD-3-Clause license).
\end{itemize}

\section{Data}
Expand Down
10 changes: 5 additions & 5 deletions guide/ch_advanced_use.tex
Original file line number Diff line number Diff line change
Expand Up @@ -315,12 +315,12 @@ \subsection{Alternative Planet Ephemerides: DE430, DE431, DE440, DE441}
JPL\footnote{\url{https://ssd.jpl.nasa.gov/ftp/eph/planets/Linux/} (Also
download from this directory if you are not running Linux!)}:

\noindent\begin{tabular}{lllr}
\newFeature{26.1}\noindent\begin{tabular}{lllr}
\toprule
\emph{Ephemeris}&\emph{Filename}& \emph{MD5 hash}& \emph{Size}\\\midrule
DE430& \file{linux\_p1550p2650.430} &\texttt{707c4262533d52d59abaaaa5e69c5738}& 97.5\,MB\\
DE430& \file{linux\_p1550p2650.430t} &\texttt{0da79f08c0f32e68fd5321ee7772256c}& 94.0\,MB\\
DE431& \file{lnxm13000p17000.431} &\texttt{fad0f432ae18c330f9e14915fbf8960a}& 2.59\,GB\\
DE440& \file{linux\_p1550p2650.440} &\texttt{9dc8a9cefd32b0090002407847e718ba}& 97.5\,MB\\
DE440& \file{linux\_p1550p2650.440t} &\texttt{5259afc41888b800fa7757b3e4d47829}& 107\,MB\\
DE441& \file{linux\_m13000p17000.441}&\texttt{4e3b924463d17b68ec9c4a18240300cd}& 2.59\,GB\\\bottomrule
\end{tabular}

Expand All @@ -332,9 +332,9 @@ \subsection{Alternative Planet Ephemerides: DE430, DE431, DE440, DE441}
\file{config.ini} like:
\begin{configfile}
[astro]
de430_path = C:/Astrodata/JPL_DE43x/linux_p1550p2650.430
de430_path = C:/Astrodata/JPL_DE43x/linux_p1550p2650.430t
de431_path = C:/Astrodata/JPL_DE43x/lnxm13000p17000.431
de440_path = C:/Astrodata/JPL_DE44x/linux_p1550p2650.440
de440_path = C:/Astrodata/JPL_DE44x/linux_p1550p2650.440t
de441_path = C:/Astrodata/JPL_DE44x/linux_m13000p17000.441
\end{configfile}

Expand Down
19 changes: 13 additions & 6 deletions guide/ch_astronomical_concepts.tex
Original file line number Diff line number Diff line change
Expand Up @@ -747,12 +747,19 @@ \subsubsection{List of $\Delta T$ models in Stellarium}
%% TODO: ADD REFERENCE FOR C,C-T,F:1997!
Valid range of usage: between years -400 and 2150. $\dot{n}=-25.7376''/\cy^2$.

\item[JPL HORIZONS.] The JPL Solar System Dynamics Group of the NASA
Jet Propulsion Laboratory use this formula in their interactive
website JPL
HORIZONS\footnote{\url{https://ssd.jpl.nasa.gov/?horizons}}. Valid
range of usage: between years -2999 and 1620, with zero values
outside this range. $\dot{n}=-25.7376''/\cy^2$.
\item[JPL Horizons.]The JPL Solar System Dynamics Group\newFeature{26.1} of the NASA Jet Propulsion
Laboratory has developed an interactive application JPL HORIZONS\footnote{\url{https://ssd.jpl.nasa.gov/?horizons}}
which provides $\Delta T=TDB-UT$ between -9998 and 1962 and $\Delta T=TDB-UTC$ between 1962 to 9999
\footnote{\url{https://ssd.jpl.nasa.gov/horizons/manual.html}}. Stellarium
JPL Horizons algorithm emulates the JPL HORIZONS application with differences of less than +/- 0.1 second
for historical dates up to 1962, improving to less than +/- 10 microseconds from 1962 to Present time.
It is important to note that $\Delta T$ from Present time to year 9999 uses the last EOP
(Earth Orientation Parameter) predicted. Therefore, although you can enter dates up to year 9999,
$\Delta T$ values beyond Present time are meaningless. The valid range of usage is therefore between years
-9998 and Present with invalid $\Delta T$ outside this range. Use of this algorithm ought to be
done with the selection of DE44x/DE43x ephemerides files (see section~\ref{sec:ExtraData:ephemerides})
otherwise $\Delta T$ value computed by Stellarium will not reproduce results of the JPL HORIZONS application.
$\dot{n}=-25.936''/\cy^2$ for DE44x ephemerides and $\dot{n}=-25.82''/\cy^2$ for DE43x ephemerides.

\item[Meeus \& Simons (2000).] This polynome was published in \citetp{2000JBAA..110..323M}.
Valid range of usage: between years 1620 and 2000, with zero values outside this
Expand Down
4 changes: 3 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,9 @@ IF(ENABLE_SPOUT AND SPOUT_LIBRARY_DLL)
CONFIGURE_FILE(${SPOUT_LIBRARY_DLL} ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
ENDIF()

SET(STELMAIN_DEPS ${MD4C_STEL_LIBRARIES} ${ZLIB_LIBRARIES} glues_stel ${STELLARIUM_STATIC_PLUGINS_LIBRARIES} ${STELLARIUM_QT_LIBRARIES} ${SPOUT_LIBRARY} ${STD_EXECUTION_LIBS})
# (SS) 2025-11-27 - Added erfa_201 to the dependencies
# (SS) 2025-12-03 - Changed erfa_201 to erfa
SET(STELMAIN_DEPS ${MD4C_STEL_LIBRARIES} ${ZLIB_LIBRARIES} glues_stel erfa ${STELLARIUM_STATIC_PLUGINS_LIBRARIES} ${STELLARIUM_QT_LIBRARIES} ${SPOUT_LIBRARY} ${STD_EXECUTION_LIBS})
IF(USE_BUNDLED_QTCOMPRESS)
SET(STELMAIN_DEPS ${STELMAIN_DEPS} qtcompress_stel)
ENDIF()
Expand Down
26 changes: 17 additions & 9 deletions src/core/StelCore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2352,7 +2352,7 @@ double StelCore::getDeltaT() const
return JD.second;
}


// (SS) 2025-11-27 : REVISED for differentiating between DE430/431 and DE440/441 ephemeris selection in Moon Secular Acceleration
// compute and return DeltaT in seconds. Try not to call it directly, current DeltaT, JD, and JDE are available.
double StelCore::computeDeltaT(const double JD)
{
Expand All @@ -2374,10 +2374,10 @@ double StelCore::computeDeltaT(const double JD)
}

if (!deltaTdontUseMoon)
DeltaT += StelUtils::getMoonSecularAcceleration(JD, deltaTnDot, ((de440Active&&EphemWrapper::jd_fits_de440(JD)) ||
(de441Active&&EphemWrapper::jd_fits_de441(JD)) ||
(de430Active&&EphemWrapper::jd_fits_de430(JD)) ||
(de431Active&&EphemWrapper::jd_fits_de431(JD))));
DeltaT += StelUtils::getMoonSecularAcceleration(JD, deltaTnDot,((de430Active && EphemWrapper::jd_fits_de430(JD)) ||
(de431Active && EphemWrapper::jd_fits_de431(JD))),
((de440Active && EphemWrapper::jd_fits_de440(JD)) ||
(de441Active && EphemWrapper::jd_fits_de441(JD))));

return DeltaT;
}
Expand Down Expand Up @@ -2531,11 +2531,19 @@ void StelCore::setCurrentDeltaTAlgorithm(DeltaTAlgorithm algorithm)
deltaTfinish = 2150; // 1997;
break;
case JPLHorizons:
// JPL Horizons algorithm for DeltaT
deltaTnDot = -25.7376; // n.dot = -25.7376 "/cy/cy
// (SS) 2025-11-27 JPL Horizons algorithm for DeltaT - REVISED
// From a communication with Jon Giorgini (JPL) 2025-11-12, n.dot value of -25.82"/cy/cy matches
// DE430/DE431 Ephemerides and Stephenson/Morrison/Hohenkerk/Zawilski cubic splines.
// However, DE440/DE441 Ephemerides use slightly different lunar model, so we need to apply
// the moon secular acceleration correction separately in computeDeltaT() when those are selected.
// The n.dot value for DE440/DE441 is -25.936"/cy/cy per Jon Giorgini (JPL) 2025-11-12 email.
// The JPL Horizons DeltaT model is valid only from 9999BC to Present. JPL Horizons app actually clamps
// Delta-T values to the last EOP file predictions for future dates beyond Present while allowing
// JD value up to 9999-12-30 00:00. Just keep in mind that Delta-T values are not valid beyond Present.
deltaTnDot = -25.82; // n.dot = -25.82"/cy/cy
deltaTfunc = StelUtils::getDeltaTByJPLHorizons;
deltaTstart = -2999;
deltaTfinish = 1620;
deltaTstart = -9998; // 9999BC-03-20 00:00 UT --> JD_UT >= -1930633.5, yearFraction >= -9997.786301369860
deltaTfinish = 9999; // 9999AD-12-30 00:00 UT --> JD_UT <= 5373482.5, yearFraction <= 9999.994520547950
break;
case MeeusSimons:
// Meeus & Simons (2000) algorithm for DeltaT
Expand Down
Loading
Loading