diff --git a/generate/csdown/csharp_prefix.md b/generate/csdown/csharp_prefix.md index 95f37fd4..36e4b533 100644 --- a/generate/csdown/csharp_prefix.md +++ b/generate/csdown/csharp_prefix.md @@ -40,8 +40,8 @@ To get started quickly, here are some [examples](../../demo/csharp/). | [HelioVector](#Astronomy.HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#Astronomy.GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Astronomy.Equator) | Calculates right ascension and declination. | -| [EquatorialToEcliptic](#Astronomy.EquatorialToEcliptic) | Converts J2000 equatorial coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#Astronomy.EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [EquatorialToEcliptic](#Astronomy.EquatorialToEcliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#Astronomy.EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Astronomy.Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#Astronomy.PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#Astronomy.BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -116,9 +116,9 @@ To get started quickly, here are some [examples](../../demo/csharp/). | Function | Description | | -------- | ----------- | -| [SearchSunLongitude](#Astronomy.SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | +| [SearchSunLongitude](#Astronomy.SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the true ecliptic of date (ECT) system. | | [Seasons](#Astronomy.Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#Astronomy.SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#Astronomy.SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -128,10 +128,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -147,20 +147,20 @@ these are used in function and type names. | [EquatorFromVector](#Astronomy.EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#Astronomy.VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#Astronomy.HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Astronomy.Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Astronomy.Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Astronomy.Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Astronomy.Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Astronomy.Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Astronomy.Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Astronomy.Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Astronomy.Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Astronomy.Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Astronomy.Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Astronomy.Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Astronomy.Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Astronomy.Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Astronomy.Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Astronomy.Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Astronomy.Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Astronomy.Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Astronomy.Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy.Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Astronomy.Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Astronomy.Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Astronomy.Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Astronomy.Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Astronomy.Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). | -| [Rotation_HOR_ECL](#Astronomy.Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Astronomy.Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Astronomy.Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Astronomy.Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/generate/ctest.c b/generate/ctest.c index cf60b3b1..366c0e10 100644 --- a/generate/ctest.c +++ b/generate/ctest.c @@ -3630,6 +3630,7 @@ static int Test_RotRoundTrip(void) astro_rotation_t eqd_ecl, ecl_eqd; astro_rotation_t hor_ecl, ecl_hor; astro_rotation_t eqd_ect, ect_eqd; + astro_rotation_t eqj_ect, ect_eqj; time = Astronomy_MakeTime(2067, 5, 30, 14, 45, 0.0); observer = Astronomy_MakeObserver(+28.0, -82.0, 0.0); @@ -3674,19 +3675,21 @@ static int Test_RotRoundTrip(void) ect_eqd = Astronomy_Rotation_ECT_EQD(&time); CHECK_INVERSE(eqd_ect, ect_eqd); + /* Round trip #8: EQJ <==> ECT. */ + eqj_ect = Astronomy_Rotation_EQJ_ECT(&time); + ect_eqj = Astronomy_Rotation_ECT_EQJ(&time); + CHECK_INVERSE(eqj_ect, ect_eqj); + /* Verify that combining different sequences of rotations result in the expected combination. For example, (EQJ ==> HOR ==> ECL) must be the same matrix as (EQJ ==> ECL). - Each of these is a "triangle" of relationships between 3 orientations. - There are 4 possible ways to pick 3 orientations from the 4 to form a triangle. - Because we have just proved that each transformation is reversible, - we only need to verify the triangle in one cyclic direction. */ - CHECK_CYCLE(eqj_ecl, ecl_eqd, eqd_eqj); /* excluded corner = HOR */ - CHECK_CYCLE(eqj_hor, hor_ecl, ecl_eqj); /* excluded corner = EQD */ - CHECK_CYCLE(eqj_hor, hor_eqd, eqd_eqj); /* excluded corner = ECL */ - CHECK_CYCLE(ecl_eqd, eqd_hor, hor_ecl); /* excluded corner = EQJ */ + CHECK_CYCLE(eqj_ecl, ecl_eqd, eqd_eqj); + CHECK_CYCLE(eqj_hor, hor_ecl, ecl_eqj); + CHECK_CYCLE(eqj_hor, hor_eqd, eqd_eqj); + CHECK_CYCLE(ecl_eqd, eqd_hor, hor_ecl); + CHECK_CYCLE(eqj_eqd, eqd_ect, ect_eqj); DEBUG("C Test_RotRoundTrip: PASS\n"); error = 0; diff --git a/generate/hydrogen/c_prefix.md b/generate/hydrogen/c_prefix.md index 51dd9a0b..789b6363 100644 --- a/generate/hydrogen/c_prefix.md +++ b/generate/hydrogen/c_prefix.md @@ -54,8 +54,8 @@ To get started quickly, here are some [examples](../../demo/c/). | [HelioVector](#Astronomy_HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#Astronomy_GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Astronomy_Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Astronomy_Ecliptic) | Converts J2000 mean equator coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#Astronomy_EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [Ecliptic](#Astronomy_Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#Astronomy_EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Astronomy_Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#Astronomy_PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#Astronomy_BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -132,9 +132,9 @@ To get started quickly, here are some [examples](../../demo/c/). | Function | Description | | -------- | ----------- | -| [SearchSunLongitude](#Astronomy_SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | +| [SearchSunLongitude](#Astronomy_SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the true ecliptic of date (ECT) system. | | [Seasons](#Astronomy_Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#Astronomy_SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#Astronomy_SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -144,10 +144,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -163,20 +163,22 @@ these are used in function and type names. | [EquatorFromVector](#Astronomy_EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#Astronomy_VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#Astronomy_HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Astronomy_Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Astronomy_Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Astronomy_Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Astronomy_Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Astronomy_Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Astronomy_Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Astronomy_Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Astronomy_Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Astronomy_Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Astronomy_Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Astronomy_Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECT](#Astronomy_Rotation_EQJ_ECT) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | +| [Rotation_EQJ_ECL](#Astronomy_Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). | | [Rotation_EQJ_HOR](#Astronomy_Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Astronomy_Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Astronomy_Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Astronomy_Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Astronomy_Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQJ) | Calculates a rotation matrix from true ecliptic of date (ECT) J2000 mean equator (EQJ). | +| [Rotation_ECL_EQD](#Astronomy_Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Astronomy_Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Astronomy_Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Astronomy_Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Astronomy_Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean equator (EQJ). | -| [Rotation_HOR_ECL](#Astronomy_Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Astronomy_Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Astronomy_Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Astronomy_Rotation_EQJ_GAL) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/generate/jsdoc2md/js.hbs b/generate/jsdoc2md/js.hbs index a5858cca..7410c9a0 100644 --- a/generate/jsdoc2md/js.hbs +++ b/generate/jsdoc2md/js.hbs @@ -39,7 +39,8 @@ and some [Node.js examples](../../demo/nodejs/). | [HelioVector](#HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Ecliptic) | Calculates ecliptic latitude, longitude, and Cartesian coordinates. | +| [Ecliptic](#Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -115,6 +116,7 @@ and some [Node.js examples](../../demo/nodejs/). | Function | Description | | -------- | ----------- | | [Seasons](#Seasons) | Finds the equinoxes and solstices for a given calendar year. | +| [SunPosition](#SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -124,10 +126,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -143,20 +145,20 @@ these are used in function and type names. | [EquatorFromVector](#EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean equator (EQJ). | -| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/generate/kotlindoc/kotlin_prefix.md b/generate/kotlindoc/kotlin_prefix.md index 40d97e2c..d39103bc 100644 --- a/generate/kotlindoc/kotlin_prefix.md +++ b/generate/kotlindoc/kotlin_prefix.md @@ -52,10 +52,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. diff --git a/generate/pydown/py_prefix.md b/generate/pydown/py_prefix.md index a1c95136..9677fe93 100644 --- a/generate/pydown/py_prefix.md +++ b/generate/pydown/py_prefix.md @@ -52,8 +52,8 @@ To get started quickly, here are some [examples](../../demo/python/). | [HelioVector](#HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Ecliptic) | Converts J2000 equatorial coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [Ecliptic](#Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -131,7 +131,7 @@ To get started quickly, here are some [examples](../../demo/python/). | -------- | ----------- | | [SearchSunLongitude](#SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | | [Seasons](#Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -141,10 +141,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -160,20 +160,20 @@ these are used in function and type names. | [EquatorFromVector](#EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). | -| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/generate/template/astronomy.c b/generate/template/astronomy.c index ae1cbcba..0fa67990 100644 --- a/generate/template/astronomy.c +++ b/generate/template/astronomy.c @@ -8725,6 +8725,57 @@ astro_rotation_t Astronomy_Rotation_EQJ_EQD(astro_time_t *time) return Astronomy_CombineRotation(prec, nut); } + +/** + * @brief + * Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). + * + * This is one of the family of functions that returns a rotation matrix + * for converting from one orientation to another. + * Source: EQJ = equatorial system, using mean equator at J2000 epoch. + * Target: ECT = ecliptic system, using true equinox of the specified date/time. + * + * @param time + * The date and time at which the Earth's equator defines the target orientation. + * + * @return + * A rotation matrix that converts EQJ to ECT at `time`. + */ +astro_rotation_t Astronomy_Rotation_EQJ_ECT(astro_time_t *time) +{ + astro_rotation_t rot, step; + + rot = Astronomy_Rotation_EQJ_EQD(time); + step = Astronomy_Rotation_EQD_ECT(time); + return Astronomy_CombineRotation(rot, step); +} + + +/** + * @brief + * Calculates a rotation matrix from true ecliptic of date (ECT) to J2000 mean equator (EQJ). + * + * This is one of the family of functions that returns a rotation matrix + * for converting from one orientation to another. + * Source: ECT = ecliptic system, using true equinox of the specified date/time. + * Target: EQJ = equatorial system, using mean equator at J2000 epoch. + * + * @param time + * The date and time at which the Earth's equator defines the target orientation. + * + * @return + * A rotation matrix that converts ECT to EQJ at `time`. + */ +astro_rotation_t Astronomy_Rotation_ECT_EQJ(astro_time_t *time) +{ + astro_rotation_t rot, step; + + rot = Astronomy_Rotation_ECT_EQD(time); + step = Astronomy_Rotation_EQD_EQJ(time); + return Astronomy_CombineRotation(rot, step); +} + + /** * @brief * Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean equator (EQJ). diff --git a/source/c/README.md b/source/c/README.md index 290363bf..e55f527f 100644 --- a/source/c/README.md +++ b/source/c/README.md @@ -54,8 +54,8 @@ To get started quickly, here are some [examples](../../demo/c/). | [HelioVector](#Astronomy_HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#Astronomy_GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Astronomy_Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Astronomy_Ecliptic) | Converts J2000 mean equator coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#Astronomy_EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [Ecliptic](#Astronomy_Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#Astronomy_EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Astronomy_Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#Astronomy_PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#Astronomy_BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -132,9 +132,9 @@ To get started quickly, here are some [examples](../../demo/c/). | Function | Description | | -------- | ----------- | -| [SearchSunLongitude](#Astronomy_SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | +| [SearchSunLongitude](#Astronomy_SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the true ecliptic of date (ECT) system. | | [Seasons](#Astronomy_Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#Astronomy_SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#Astronomy_SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -144,10 +144,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -163,20 +163,22 @@ these are used in function and type names. | [EquatorFromVector](#Astronomy_EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#Astronomy_VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#Astronomy_HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Astronomy_Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Astronomy_Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Astronomy_Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Astronomy_Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Astronomy_Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Astronomy_Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Astronomy_Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Astronomy_Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Astronomy_Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Astronomy_Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Astronomy_Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECT](#Astronomy_Rotation_EQJ_ECT) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | +| [Rotation_EQJ_ECL](#Astronomy_Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). | | [Rotation_EQJ_HOR](#Astronomy_Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Astronomy_Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Astronomy_Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Astronomy_Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Astronomy_Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy_Rotation_ECT_EQJ) | Calculates a rotation matrix from true ecliptic of date (ECT) J2000 mean equator (EQJ). | +| [Rotation_ECL_EQD](#Astronomy_Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Astronomy_Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Astronomy_Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Astronomy_Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Astronomy_Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean equator (EQJ). | -| [Rotation_HOR_ECL](#Astronomy_Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Astronomy_Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Astronomy_Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Astronomy_Rotation_EQJ_GAL) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | @@ -2113,6 +2115,30 @@ This is one of the family of functions that returns a rotation matrix for conver +--- + + +### Astronomy_Rotation_ECT_EQJ(time) ⇒ [`astro_rotation_t`](#astro_rotation_t) + +**Calculates a rotation matrix from true ecliptic of date (ECT) to J2000 mean equator (EQJ).** + + + +This is one of the family of functions that returns a rotation matrix for converting from one orientation to another. Source: ECT = ecliptic system, using true equinox of the specified date/time. Target: EQJ = equatorial system, using mean equator at J2000 epoch. + + + +**Returns:** A rotation matrix that converts ECT to EQJ at `time`. + + + +| Type | Parameter | Description | +| --- | --- | --- | +| astro_time_t * | `time` | The date and time at which the Earth's equator defines the target orientation. | + + + + --- @@ -2227,6 +2253,30 @@ This is one of the family of functions that returns a rotation matrix for conver +--- + + +### Astronomy_Rotation_EQJ_ECT(time) ⇒ [`astro_rotation_t`](#astro_rotation_t) + +**Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT).** + + + +This is one of the family of functions that returns a rotation matrix for converting from one orientation to another. Source: EQJ = equatorial system, using mean equator at J2000 epoch. Target: ECT = ecliptic system, using true equinox of the specified date/time. + + + +**Returns:** A rotation matrix that converts EQJ to ECT at `time`. + + + +| Type | Parameter | Description | +| --- | --- | --- | +| astro_time_t * | `time` | The date and time at which the Earth's equator defines the target orientation. | + + + + --- diff --git a/source/c/astronomy.c b/source/c/astronomy.c index 6007a153..1b0c6218 100644 --- a/source/c/astronomy.c +++ b/source/c/astronomy.c @@ -9886,6 +9886,57 @@ astro_rotation_t Astronomy_Rotation_EQJ_EQD(astro_time_t *time) return Astronomy_CombineRotation(prec, nut); } + +/** + * @brief + * Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). + * + * This is one of the family of functions that returns a rotation matrix + * for converting from one orientation to another. + * Source: EQJ = equatorial system, using mean equator at J2000 epoch. + * Target: ECT = ecliptic system, using true equinox of the specified date/time. + * + * @param time + * The date and time at which the Earth's equator defines the target orientation. + * + * @return + * A rotation matrix that converts EQJ to ECT at `time`. + */ +astro_rotation_t Astronomy_Rotation_EQJ_ECT(astro_time_t *time) +{ + astro_rotation_t rot, step; + + rot = Astronomy_Rotation_EQJ_EQD(time); + step = Astronomy_Rotation_EQD_ECT(time); + return Astronomy_CombineRotation(rot, step); +} + + +/** + * @brief + * Calculates a rotation matrix from true ecliptic of date (ECT) to J2000 mean equator (EQJ). + * + * This is one of the family of functions that returns a rotation matrix + * for converting from one orientation to another. + * Source: ECT = ecliptic system, using true equinox of the specified date/time. + * Target: EQJ = equatorial system, using mean equator at J2000 epoch. + * + * @param time + * The date and time at which the Earth's equator defines the target orientation. + * + * @return + * A rotation matrix that converts ECT to EQJ at `time`. + */ +astro_rotation_t Astronomy_Rotation_ECT_EQJ(astro_time_t *time) +{ + astro_rotation_t rot, step; + + rot = Astronomy_Rotation_ECT_EQD(time); + step = Astronomy_Rotation_EQD_EQJ(time); + return Astronomy_CombineRotation(rot, step); +} + + /** * @brief * Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean equator (EQJ). diff --git a/source/c/astronomy.h b/source/c/astronomy.h index bb94b062..364855a8 100644 --- a/source/c/astronomy.h +++ b/source/c/astronomy.h @@ -1322,11 +1322,13 @@ astro_rotation_t Astronomy_Rotation_EQD_ECL(astro_time_t *time); astro_rotation_t Astronomy_Rotation_EQD_ECT(astro_time_t *time); astro_rotation_t Astronomy_Rotation_EQD_HOR(astro_time_t *time, astro_observer_t observer); astro_rotation_t Astronomy_Rotation_EQJ_EQD(astro_time_t *time); +astro_rotation_t Astronomy_Rotation_EQJ_ECT(astro_time_t *time); astro_rotation_t Astronomy_Rotation_EQJ_ECL(void); astro_rotation_t Astronomy_Rotation_EQJ_HOR(astro_time_t *time, astro_observer_t observer); astro_rotation_t Astronomy_Rotation_ECL_EQD(astro_time_t *time); astro_rotation_t Astronomy_Rotation_ECL_EQJ(void); astro_rotation_t Astronomy_Rotation_ECL_HOR(astro_time_t *time, astro_observer_t observer); +astro_rotation_t Astronomy_Rotation_ECT_EQJ(astro_time_t *time); astro_rotation_t Astronomy_Rotation_ECT_EQD(astro_time_t *time); astro_rotation_t Astronomy_Rotation_HOR_EQD(astro_time_t *time, astro_observer_t observer); astro_rotation_t Astronomy_Rotation_HOR_EQJ(astro_time_t *time, astro_observer_t observer); diff --git a/source/csharp/README.md b/source/csharp/README.md index f417f35b..481a22b7 100644 --- a/source/csharp/README.md +++ b/source/csharp/README.md @@ -40,8 +40,8 @@ To get started quickly, here are some [examples](../../demo/csharp/). | [HelioVector](#Astronomy.HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#Astronomy.GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Astronomy.Equator) | Calculates right ascension and declination. | -| [EquatorialToEcliptic](#Astronomy.EquatorialToEcliptic) | Converts J2000 equatorial coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#Astronomy.EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [EquatorialToEcliptic](#Astronomy.EquatorialToEcliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#Astronomy.EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Astronomy.Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#Astronomy.PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#Astronomy.BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -116,9 +116,9 @@ To get started quickly, here are some [examples](../../demo/csharp/). | Function | Description | | -------- | ----------- | -| [SearchSunLongitude](#Astronomy.SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | +| [SearchSunLongitude](#Astronomy.SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the true ecliptic of date (ECT) system. | | [Seasons](#Astronomy.Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#Astronomy.SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#Astronomy.SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -128,10 +128,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -147,20 +147,20 @@ these are used in function and type names. | [EquatorFromVector](#Astronomy.EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#Astronomy.VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#Astronomy.HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Astronomy.Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Astronomy.Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Astronomy.Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Astronomy.Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Astronomy.Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Astronomy.Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Astronomy.Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Astronomy.Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Astronomy.Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Astronomy.Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Astronomy.Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Astronomy.Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Astronomy.Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Astronomy.Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Astronomy.Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Astronomy.Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Astronomy.Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Astronomy.Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Astronomy.Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Astronomy.Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Astronomy.Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Astronomy.Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Astronomy.Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Astronomy.Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). | -| [Rotation_HOR_ECL](#Astronomy.Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Astronomy.Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Astronomy.Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Astronomy.Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/source/js/README.md b/source/js/README.md index 67eaf3e7..16cacc15 100644 --- a/source/js/README.md +++ b/source/js/README.md @@ -39,7 +39,8 @@ and some [Node.js examples](../../demo/nodejs/). | [HelioVector](#HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Ecliptic) | Calculates ecliptic latitude, longitude, and Cartesian coordinates. | +| [Ecliptic](#Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -115,6 +116,7 @@ and some [Node.js examples](../../demo/nodejs/). | Function | Description | | -------- | ----------- | | [Seasons](#Seasons) | Finds the equinoxes and solstices for a given calendar year. | +| [SunPosition](#SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -124,10 +126,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -143,20 +145,20 @@ these are used in function and type names. | [EquatorFromVector](#EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean equator (EQJ). | -| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). | diff --git a/source/kotlin/README.md b/source/kotlin/README.md index 977e4a87..785f3274 100644 --- a/source/kotlin/README.md +++ b/source/kotlin/README.md @@ -52,10 +52,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. diff --git a/source/python/README.md b/source/python/README.md index d227b5de..c51c2217 100644 --- a/source/python/README.md +++ b/source/python/README.md @@ -52,8 +52,8 @@ To get started quickly, here are some [examples](../../demo/python/). | [HelioVector](#HelioVector) | Calculates body position vector with respect to the center of the Sun. | | [GeoVector](#GeoVector) | Calculates body position vector with respect to the center of the Earth. | | [Equator](#Equator) | Calculates right ascension and declination. | -| [Ecliptic](#Ecliptic) | Converts J2000 equatorial coordinates to J2000 ecliptic coordinates. | -| [EclipticLongitude](#EclipticLongitude) | Calculates ecliptic longitude of a body in the J2000 system. | +| [Ecliptic](#Ecliptic) | Converts J2000 mean equator (EQJ) coordinates to true ecliptic of date (ECT) coordinates. | +| [EclipticLongitude](#EclipticLongitude) | Calculates true ecliptic of date (ECT) longitude for a body. | | [Horizon](#Horizon) | Calculates horizontal coordinates (azimuth, altitude) for a given observer on the Earth. | | [PairLongitude](#PairLongitude) | Calculates the difference in apparent ecliptic longitude between two bodies, as seen from the Earth. | | [BaryState](#BaryState) | Calculates the barycentric position and velocity vectors of the Sun or a planet. | @@ -131,7 +131,7 @@ To get started quickly, here are some [examples](../../demo/python/). | -------- | ----------- | | [SearchSunLongitude](#SearchSunLongitude) | Finds the next time the Sun reaches a specified apparent ecliptic longitude in the *true equator of date* system. | | [Seasons](#Seasons) | Finds the equinoxes and solstices for a given calendar year. | -| [SunPosition](#SunPosition) | Calculates the Sun's apparent ecliptic coordinates as seen from the Earth. | +| [SunPosition](#SunPosition) | Calculates the Sun's apparent true ecliptic of date (ECT) coordinates as seen from the Earth. | ### Coordinate transforms @@ -141,10 +141,10 @@ It also allows converting from a vector to spherical (angular) coordinates and b within a given orientation. Note the 3-letter codes for each of the orientation systems; these are used in function and type names. -- **EQJ = J2000 Mean Equator**: Uses the Earth's equator on January 1, 2000, at noon UTC. -- **EQD = Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. -- **ECT = True Ecliptic of Date**: Uses the true orbital plane and equator of the Earth on the given date. -- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun in the year 2000. The x-axis is referenced against the J2000 mean equinox. +- **EQJ = J2000 Mean Equator**: Uses the Earth's mean equator (corrected for precession but ignoring nutation) on January 1, 2000, at noon UTC. This moment in time is called J2000. +- **EQD = True Equator of Date**: Uses the Earth's equator on a given date and time, adjusted for precession and nutation. +- **ECL = J2000 Mean Ecliptic**: Uses the plane of the Earth's orbit around the Sun at J2000. The x-axis is referenced against the J2000 mean equinox. +- **ECT = True Ecliptic of Date**: Uses the true (corrected for precession and nutation) orbital plane of the Earth on the given date. The x-axis is referenced against the true equinox for that date. - **HOR = Horizontal**: Uses the viewpoint of an observer at a specific location on the Earth at a given date and time. - **GAL = Galactic**: Based on the IAU 1958 definition of galactic coordinates. @@ -160,20 +160,20 @@ these are used in function and type names. | [EquatorFromVector](#EquatorFromVector) | Given an equatorial vector, calculates equatorial angular coordinates. | | [VectorFromHorizon](#VectorFromHorizon) | Given apparent angular horizontal coordinates, calculates horizontal vector. | | [HorizonFromVector](#HorizonFromVector) | Given a vector in horizontal orientation, calculates horizontal angular coordinates. | -| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from equator of date (EQD) to J2000 mean equator (EQJ). | -| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). | -| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from equator of date (EQD) to ecliptic J2000 (ECL). | -| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from equator of date (EQD) to horizontal (HOR). | -| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to equator of date (EQD). | -| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to ecliptic J2000 (ECL). | +| [Rotation_EQD_EQJ](#Rotation_EQD_EQJ) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean equator (EQJ). | +| [Rotation_EQD_ECT](#Rotation_EQD_ECT) | Calculates a rotation matrix from true equator of date (EQD) to true ecliptic of date (ECT). | +| [Rotation_EQD_ECL](#Rotation_EQD_ECL) | Calculates a rotation matrix from true equator of date (EQD) to J2000 mean ecliptic (ECL). | +| [Rotation_EQD_HOR](#Rotation_EQD_HOR) | Calculates a rotation matrix from true equator of date (EQD) to horizontal (HOR). | +| [Rotation_EQJ_EQD](#Rotation_EQJ_EQD) | Calculates a rotation matrix from J2000 mean equator (EQJ) to true equator of date (EQD). | +| [Rotation_EQJ_ECL](#Rotation_EQJ_ECL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_HOR](#Rotation_EQJ_HOR) | Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). | -| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). | -| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from ecliptic J2000 (ECL) to equator of date (EQD). | -| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from ecliptic J2000 (ECL) to J2000 mean equator (EQJ). | -| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from ecliptic J2000 (ECL) to horizontal (HOR). | -| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to equator of date (EQD). | +| [Rotation_ECT_EQD](#Rotation_ECT_EQD) | Calculates a rotation matrix from true ecliptic of date (ECT) to true equator of date (EQD). | +| [Rotation_ECL_EQD](#Rotation_ECL_EQD) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to true equator of date (EQD). | +| [Rotation_ECL_EQJ](#Rotation_ECL_EQJ) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). | +| [Rotation_ECL_HOR](#Rotation_ECL_HOR) | Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). | +| [Rotation_HOR_EQD](#Rotation_HOR_EQD) | Calculates a rotation matrix from horizontal (HOR) to true equator of date (EQD). | | [Rotation_HOR_EQJ](#Rotation_HOR_EQJ) | Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). | -| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to ecliptic J2000 (ECL). | +| [Rotation_HOR_ECL](#Rotation_HOR_ECL) | Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). | | [Rotation_EQJ_GAL](#Rotation_EQJ_GAL) | Calculates a rotation matrix from J2000 mean equator (EQJ) to galactic (GAL). | | [Rotation_GAL_EQJ](#Rotation_GAL_EQJ) | Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). |