mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-08-07 05:22:16 -04:00
Corrected the B1875 epoch for determining constellation boundaries.
It turns out I was off by nearly 18 hours in the B1875 epoch. This has a tiny effect on the orientation of the Earth's axis. Instead of: ut = 1875-01-01T12:00:00.000Z the correct epoch is: ut = 1874-12-31T18:12.21.950Z See the comments in the Constellation functions in each of the source files for more info.
This commit is contained in:
1 parent
4b4c637468
commit
6c3655c1c6
9 files changed
+102
-10
No files matched your search
@@ -5292,7 +5292,20 @@ astro_constellation_t Astronomy_Constellation(double ra, double dec)
|
||||
/* Lazy-initialize the rotation matrix for converting J2000 to B1875. */
|
||||
if (rot.status != ASTRO_SUCCESS)
|
||||
{
|
||||
astro_time_t time = Astronomy_MakeTime(1875, 1, 1, 12, 0, 0.0); /* Not sure about exact date/time of 1875. */
|
||||
/*
|
||||
Need to calculate the B1875 epoch. Based on this:
|
||||
https://en.wikipedia.org/wiki/Epoch_(astronomy)#Besselian_years
|
||||
B = 1900 + (JD - 2415020.31352) / 365.242198781
|
||||
I'm interested in using TT instead of JD, giving:
|
||||
B = 1900 + ((TT+2451545) - 2415020.31352) / 365.242198781
|
||||
B = 1900 + (TT + 36524.68648) / 365.242198781
|
||||
TT = 365.242198781*(B - 1900) - 36524.68648 = -45655.741449525
|
||||
But Astronomy_TimeFromDays() wants UT, not TT.
|
||||
Near that date, I get a historical correction of ut-tt = 3.2 seconds.
|
||||
That gives UT = -45655.74141261017 for the B1875 epoch,
|
||||
or 1874-12-31T18:12:21.950Z.
|
||||
*/
|
||||
astro_time_t time = Astronomy_TimeFromDays(-45655.74141261017);
|
||||
rot = Astronomy_Rotation_EQJ_EQD(time);
|
||||
if (rot.status != ASTRO_SUCCESS)
|
||||
return ConstelErr(rot.status);
|
||||
|
||||
@@ -5045,7 +5045,18 @@ $ASTRO_CSHARP_CHEBYSHEV(8);
|
||||
if (ConstelRot.rot == null)
|
||||
{
|
||||
// Lazy-initialize the rotation matrix for converting J2000 to B1875.
|
||||
var time = new AstroTime(1875, 1, 1, 12, 0, 0);
|
||||
// Need to calculate the B1875 epoch. Based on this:
|
||||
// https://en.wikipedia.org/wiki/Epoch_(astronomy)#Besselian_years
|
||||
// B = 1900 + (JD - 2415020.31352) / 365.242198781
|
||||
// I'm interested in using TT instead of JD, giving:
|
||||
// B = 1900 + ((TT+2451545) - 2415020.31352) / 365.242198781
|
||||
// B = 1900 + (TT + 36524.68648) / 365.242198781
|
||||
// TT = 365.242198781*(B - 1900) - 36524.68648 = -45655.741449525
|
||||
// But the AstroTime constructor wants UT, not TT.
|
||||
// Near that date, I get a historical correction of ut-tt = 3.2 seconds.
|
||||
// That gives UT = -45655.74141261017 for the B1875 epoch,
|
||||
// or 1874-12-31T18:12:21.950Z.
|
||||
var time = new AstroTime(-45655.74141261017);
|
||||
ConstelRot = Rotation_EQJ_EQD(time);
|
||||
Epoch2000 = new AstroTime(0.0);
|
||||
}
|
||||
|
||||
@@ -4209,7 +4209,18 @@ Astronomy.Constellation = function(ra, dec) {
|
||||
|
||||
// Lazy-initialize rotation matrix.
|
||||
if (!ConstelRot) {
|
||||
ConstelRot = Astronomy.Rotation_EQJ_EQD(new AstroTime(new Date(Date.UTC(1875, 0, 1, 12))));
|
||||
// Need to calculate the B1875 epoch. Based on this:
|
||||
// https://en.wikipedia.org/wiki/Epoch_(astronomy)#Besselian_years
|
||||
// B = 1900 + (JD - 2415020.31352) / 365.242198781
|
||||
// I'm interested in using TT instead of JD, giving:
|
||||
// B = 1900 + ((TT+2451545) - 2415020.31352) / 365.242198781
|
||||
// B = 1900 + (TT + 36524.68648) / 365.242198781
|
||||
// TT = 365.242198781*(B - 1900) - 36524.68648 = -45655.741449525
|
||||
// But the AstroTime constructor wants UT, not TT.
|
||||
// Near that date, I get a historical correction of ut-tt = 3.2 seconds.
|
||||
// That gives UT = -45655.74141261017 for the B1875 epoch,
|
||||
// or 1874-12-31T18:12:21.950Z.
|
||||
ConstelRot = Astronomy.Rotation_EQJ_EQD(new AstroTime(-45655.74141261017));
|
||||
Epoch2000 = new AstroTime(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -3976,7 +3976,18 @@ def Constellation(ra, dec):
|
||||
|
||||
# Lazy-initialize rotation matrix.
|
||||
if _ConstelRot is None:
|
||||
_ConstelRot = Rotation_EQJ_EQD(Time.Make(1875, 1, 1, 12, 0, 0))
|
||||
# Need to calculate the B1875 epoch. Based on this:
|
||||
# https://en.wikipedia.org/wiki/Epoch_(astronomy)#Besselian_years
|
||||
# B = 1900 + (JD - 2415020.31352) / 365.242198781
|
||||
# I'm interested in using TT instead of JD, giving:
|
||||
# B = 1900 + ((TT+2451545) - 2415020.31352) / 365.242198781
|
||||
# B = 1900 + (TT + 36524.68648) / 365.242198781
|
||||
# TT = 365.242198781*(B - 1900) - 36524.68648 = -45655.741449525
|
||||
# But the Time constructor wants UT, not TT.
|
||||
# Near that date, I get a historical correction of ut-tt = 3.2 seconds.
|
||||
# That gives UT = -45655.74141261017 for the B1875 epoch,
|
||||
# or 1874-12-31T18:12:21.950Z.
|
||||
_ConstelRot = Rotation_EQJ_EQD(Time(-45655.74141261017))
|
||||
_Epoch2000 = Time(0.0)
|
||||
|
||||
# Convert coordinates from J2000 to B1875.
|
||||
|
||||
Reference in new issue
Block a user