mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-01-22 14:31:50 -05:00
238 lines
53 KiB
Markdown
238 lines
53 KiB
Markdown
# Astronomy Engine (Kotlin)
|
|
|
|
[](https://jitpack.io/#cosinekitty/astronomy)
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
Here are some [Kotlin examples](../../demo/kotlin/) and [Java examples](../../demo/java/) to get you started.
|
|
|
|
Feel free to [start a new discussion topic](https://github.com/cosinekitty/astronomy/discussions)
|
|
if you need some help in your astronomy-related project, either with this code or astronomy
|
|
computation concepts in general.
|
|
|
|
To include Astronomy Engine in your project, add this in your root `build.gradle.kts` at the end of repositories section:
|
|
```kotlin
|
|
allprojects {
|
|
repositories {
|
|
...
|
|
maven("https://jitpack.io")
|
|
}
|
|
}
|
|
```
|
|
|
|
Now add the dependency:
|
|
```kotlin
|
|
dependencies {
|
|
implementation("io.github.cosinekitty:astronomy:2.1.19")
|
|
}
|
|
```
|
|
|
|
For other build tools support have a look at [this](https://jitpack.io/#cosinekitty/astronomy).
|
|
|
|
---
|
|
|
|
## Contents
|
|
|
|
- [Coordinate Transforms](#coords)
|
|
- [Gravity Simulator](#gravsim)
|
|
- [Types](#types)
|
|
- [Functions](#functions)
|
|
- [Properties](#properties)
|
|
|
|
---
|
|
|
|
<a name="coords"></a>
|
|
## Coordinate Transforms
|
|
|
|
The following orientation systems are supported.
|
|
Astronomy Engine can convert a vector from any of these orientations to any of the others.
|
|
It also allows converting from a vector to spherical (angular) coordinates and back,
|
|
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 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.
|
|
|
|
<a name="gravsim"></a>
|
|
## Gravity Simulator
|
|
|
|
Astronomy Engine provides a [GravitySimulator](doc/-gravity-simulator/index.md) class
|
|
that allows you to model the trajectories of one or more small bodies like asteroids,
|
|
comets, or coasting spacecraft. If you know an initial position vector
|
|
and velocity vector for a small body, the gravity simulator can incrementally
|
|
simulate the pull of gravity on it from the Sun and planets, to calculate its
|
|
movement through the Solar System.
|
|
|
|
---
|
|
|
|
## Types
|
|
|
|
| Name | Summary |
|
|
|---|---|
|
|
| [Aberration](doc/-aberration/index.md)<br>enum [Aberration](doc/-aberration/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[Aberration](doc/-aberration/index.md)> <br>Aberration calculation options. |
|
|
| [ApsisInfo](doc/-apsis-info/index.md)<br>class [ApsisInfo](doc/-apsis-info/index.md)(time: [Time](doc/-time/index.md), kind: [ApsisKind](doc/-apsis-kind/index.md), distanceAu: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>An apsis event: pericenter (closest approach) or apocenter (farthest distance). |
|
|
| [ApsisKind](doc/-apsis-kind/index.md)<br>enum [ApsisKind](doc/-apsis-kind/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[ApsisKind](doc/-apsis-kind/index.md)> <br>The type of apsis: pericenter (closest approach) or apocenter (farthest distance). |
|
|
| [AtmosphereInfo](doc/-atmosphere-info/index.md)<br>class [AtmosphereInfo](doc/-atmosphere-info/index.md)(pressure: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), temperature: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), density: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Information about idealized atmospheric variables at a given elevation. |
|
|
| [AxisInfo](doc/-axis-info/index.md)<br>class [AxisInfo](doc/-axis-info/index.md)(ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), spin: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), north: [Vector](doc/-vector/index.md))<br>Information about a body's rotation axis at a given time. |
|
|
| [Body](doc/-body/index.md)<br>enum [Body](doc/-body/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[Body](doc/-body/index.md)> <br>The enumeration of celestial bodies supported by Astronomy Engine. |
|
|
| [ConstellationInfo](doc/-constellation-info/index.md)<br>class [ConstellationInfo](doc/-constellation-info/index.md)(symbol: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), name: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), ra1875: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec1875: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Reports the constellation that a given celestial point lies within. |
|
|
| [DateTime](doc/-date-time/index.md)<br>class [DateTime](doc/-date-time/index.md)(year: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), month: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), day: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), hour: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), minute: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), second: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>A universal time resolved into UTC calendar date and time fields. |
|
|
| [Direction](doc/-direction/index.md)<br>enum [Direction](doc/-direction/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[Direction](doc/-direction/index.md)> <br>Selects whether to search for a rising event or a setting event for a celestial body. |
|
|
| [EarthNotAllowedException](doc/-earth-not-allowed-exception/index.md)<br>class [EarthNotAllowedException](doc/-earth-not-allowed-exception/index.md) : [Exception](https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html)<br>The Earth is not allowed as the body parameter. |
|
|
| [EclipseEvent](doc/-eclipse-event/index.md)<br>class [EclipseEvent](doc/-eclipse-event/index.md)(time: [Time](doc/-time/index.md), altitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Holds a time and the observed altitude of the Sun at that time. |
|
|
| [EclipseKind](doc/-eclipse-kind/index.md)<br>enum [EclipseKind](doc/-eclipse-kind/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[EclipseKind](doc/-eclipse-kind/index.md)> <br>The different kinds of lunar/solar eclipses. |
|
|
| [Ecliptic](doc/-ecliptic/index.md)<br>data class [Ecliptic](doc/-ecliptic/index.md)(vec: [Vector](doc/-vector/index.md), elat: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), elon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Ecliptic angular and Cartesian coordinates. |
|
|
| [ElongationInfo](doc/-elongation-info/index.md)<br>class [ElongationInfo](doc/-elongation-info/index.md)(time: [Time](doc/-time/index.md), visibility: [Visibility](doc/-visibility/index.md), elongation: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), eclipticSeparation: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Contains information about the visibility of a celestial body at a given date and time. |
|
|
| [EquatorEpoch](doc/-equator-epoch/index.md)<br>enum [EquatorEpoch](doc/-equator-epoch/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[EquatorEpoch](doc/-equator-epoch/index.md)> <br>Selects the date for which the Earth's equator is to be used for representing equatorial coordinates. |
|
|
| [Equatorial](doc/-equatorial/index.md)<br>class [Equatorial](doc/-equatorial/index.md)(ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dist: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), vec: [Vector](doc/-vector/index.md))<br>Equatorial angular and cartesian coordinates. |
|
|
| [GlobalSolarEclipseInfo](doc/-global-solar-eclipse-info/index.md)<br>class [GlobalSolarEclipseInfo](doc/-global-solar-eclipse-info/index.md)(kind: [EclipseKind](doc/-eclipse-kind/index.md), obscuration: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), peak: [Time](doc/-time/index.md), distance: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), latitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), longitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Reports the time and geographic location of the peak of a solar eclipse. |
|
|
| [GravitySimulator](doc/-gravity-simulator/index.md)<br>class [GravitySimulator](doc/-gravity-simulator/index.md)<br>A simulation of zero or more small bodies moving through the Solar System. |
|
|
| [HourAngleInfo](doc/-hour-angle-info/index.md)<br>class [HourAngleInfo](doc/-hour-angle-info/index.md)(time: [Time](doc/-time/index.md), hor: [Topocentric](doc/-topocentric/index.md))<br>Information about a celestial body crossing a specific hour angle. |
|
|
| [IlluminationInfo](doc/-illumination-info/index.md)<br>class [IlluminationInfo](doc/-illumination-info/index.md)(time: [Time](doc/-time/index.md), mag: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), phaseAngle: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), phaseFraction: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), helioDist: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), ringTilt: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Information about the brightness and illuminated shape of a celestial body. |
|
|
| [InternalError](doc/-internal-error/index.md)<br>class [InternalError](doc/-internal-error/index.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)) : [Exception](https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html)<br>An unexpected internal error occurred in Astronomy Engine |
|
|
| [InvalidBodyException](doc/-invalid-body-exception/index.md)<br>class [InvalidBodyException](doc/-invalid-body-exception/index.md)(body: [Body](doc/-body/index.md)) : [Exception](https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html)<br>An invalid body was specified for the given function. |
|
|
| [JupiterMoonsInfo](doc/-jupiter-moons-info/index.md)<br>class [JupiterMoonsInfo](doc/-jupiter-moons-info/index.md)(io: [StateVector](doc/-state-vector/index.md), europa: [StateVector](doc/-state-vector/index.md), ganymede: [StateVector](doc/-state-vector/index.md), callisto: [StateVector](doc/-state-vector/index.md))<br>Holds the positions and velocities of Jupiter's major 4 moons. |
|
|
| [LibrationInfo](doc/-libration-info/index.md)<br>data class [LibrationInfo](doc/-libration-info/index.md)(elat: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), elon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), mlat: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), mlon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), distanceKm: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), diamDeg: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Lunar libration angles, returned by [libration](doc/libration.md). |
|
|
| [LocalSolarEclipseInfo](doc/-local-solar-eclipse-info/index.md)<br>class [LocalSolarEclipseInfo](doc/-local-solar-eclipse-info/index.md)(kind: [EclipseKind](doc/-eclipse-kind/index.md), obscuration: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), partialBegin: [EclipseEvent](doc/-eclipse-event/index.md), totalBegin: [EclipseEvent](doc/-eclipse-event/index.md)?, peak: [EclipseEvent](doc/-eclipse-event/index.md), totalEnd: [EclipseEvent](doc/-eclipse-event/index.md)?, partialEnd: [EclipseEvent](doc/-eclipse-event/index.md))<br>Information about a solar eclipse as seen by an observer at a given time and geographic location. |
|
|
| [LunarEclipseInfo](doc/-lunar-eclipse-info/index.md)<br>class [LunarEclipseInfo](doc/-lunar-eclipse-info/index.md)(kind: [EclipseKind](doc/-eclipse-kind/index.md), obscuration: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), peak: [Time](doc/-time/index.md), sdPenum: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), sdPartial: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), sdTotal: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Information about a lunar eclipse. |
|
|
| [MoonQuarterInfo](doc/-moon-quarter-info/index.md)<br>class [MoonQuarterInfo](doc/-moon-quarter-info/index.md)(quarter: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), time: [Time](doc/-time/index.md))<br>A lunar quarter event (new moon, first quarter, full moon, or third quarter) along with its date and time. |
|
|
| [NodeEventInfo](doc/-node-event-info/index.md)<br>class [NodeEventInfo](doc/-node-event-info/index.md)(time: [Time](doc/-time/index.md), kind: [NodeEventKind](doc/-node-event-kind/index.md))<br>Information about an ascending or descending node of a body. |
|
|
| [NodeEventKind](doc/-node-event-kind/index.md)<br>enum [NodeEventKind](doc/-node-event-kind/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[NodeEventKind](doc/-node-event-kind/index.md)> <br>Indicates whether a crossing through the ecliptic plane is ascending or descending. |
|
|
| [Observer](doc/-observer/index.md)<br>data class [Observer](doc/-observer/index.md)(latitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), longitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), height: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>The location of an observer on (or near) the surface of the Earth. |
|
|
| [PositionFunction](doc/-position-function/index.md)<br>fun interface [PositionFunction](doc/-position-function/index.md)<br>A function for which to solve a light-travel time problem. |
|
|
| [Refraction](doc/-refraction/index.md)<br>enum [Refraction](doc/-refraction/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[Refraction](doc/-refraction/index.md)> <br>Selects whether to correct for atmospheric refraction, and if so, how. |
|
|
| [RotationMatrix](doc/-rotation-matrix/index.md)<br>class [RotationMatrix](doc/-rotation-matrix/index.md)(rot: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[DoubleArray](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double-array/index.html)>)<br>A rotation matrix that can be used to transform one coordinate system to another. |
|
|
| [SearchContext](doc/-search-context/index.md)<br>fun interface [SearchContext](doc/-search-context/index.md)<br>Represents a function whose ascending root is to be found. |
|
|
| [SeasonsInfo](doc/-seasons-info/index.md)<br>class [SeasonsInfo](doc/-seasons-info/index.md)(marchEquinox: [Time](doc/-time/index.md), juneSolstice: [Time](doc/-time/index.md), septemberEquinox: [Time](doc/-time/index.md), decemberSolstice: [Time](doc/-time/index.md))<br>The dates and times of changes of season for a given calendar year. |
|
|
| [Spherical](doc/-spherical/index.md)<br>data class [Spherical](doc/-spherical/index.md)(lat: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), lon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dist: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Spherical coordinates: latitude, longitude, distance. |
|
|
| [StateVector](doc/-state-vector/index.md)<br>data class [StateVector](doc/-state-vector/index.md)(x: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), y: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), z: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), vx: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), vy: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), vz: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), t: [Time](doc/-time/index.md))<br>Represents a combined position vector and velocity vector at a given moment in time. |
|
|
| [Time](doc/-time/index.md)<br>class [Time](doc/-time/index.md) : [Comparable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html)<[Time](doc/-time/index.md)> <br>A date and time used for astronomical calculations. |
|
|
| [Topocentric](doc/-topocentric/index.md)<br>data class [Topocentric](doc/-topocentric/index.md)(azimuth: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), altitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Coordinates of a celestial body as seen by a topocentric observer. |
|
|
| [TransitInfo](doc/-transit-info/index.md)<br>class [TransitInfo](doc/-transit-info/index.md)(start: [Time](doc/-time/index.md), peak: [Time](doc/-time/index.md), finish: [Time](doc/-time/index.md), separation: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Information about a transit of Mercury or Venus, as seen from the Earth. |
|
|
| [Vector](doc/-vector/index.md)<br>data class [Vector](doc/-vector/index.md)(x: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), y: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), z: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), t: [Time](doc/-time/index.md))<br>A 3D Cartesian vector whose components are expressed in Astronomical Units (AU). |
|
|
| [Visibility](doc/-visibility/index.md)<br>enum [Visibility](doc/-visibility/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[Visibility](doc/-visibility/index.md)> <br>Indicates whether a body (especially Mercury or Venus) is best seen in the morning or evening. |
|
|
|
|
## Functions
|
|
|
|
| Name | Summary |
|
|
|---|---|
|
|
| [angleFromSun](doc/angle-from-sun.md)<br>fun [angleFromSun](doc/angle-from-sun.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Returns the angle between the given body and the Sun, as seen from the Earth. |
|
|
| [atmosphere](doc/atmosphere.md)<br>fun [atmosphere](doc/atmosphere.md)(elevationMeters: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [AtmosphereInfo](doc/-atmosphere-info/index.md)<br>Calculates U.S. Standard Atmosphere (1976) variables as a function of elevation. |
|
|
| [backdatePosition](doc/backdate-position.md)<br>fun [backdatePosition](doc/backdate-position.md)(time: [Time](doc/-time/index.md), observerBody: [Body](doc/-body/index.md), targetBody: [Body](doc/-body/index.md), aberration: [Aberration](doc/-aberration/index.md)): [Vector](doc/-vector/index.md)<br>Solve for light travel time correction of apparent position. |
|
|
| [baryState](doc/bary-state.md)<br>fun [baryState](doc/bary-state.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [StateVector](doc/-state-vector/index.md)<br>Calculates barycentric position and velocity vectors for the given body. |
|
|
| [constellation](doc/constellation.md)<br>fun [constellation](doc/constellation.md)(ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [ConstellationInfo](doc/-constellation-info/index.md)<br>Determines the constellation that contains the given point in the sky. |
|
|
| [correctLightTravel](doc/correct-light-travel.md)<br>fun [correctLightTravel](doc/correct-light-travel.md)(func: [PositionFunction](doc/-position-function/index.md), time: [Time](doc/-time/index.md)): [Vector](doc/-vector/index.md)<br>Solve for light travel time of a vector function. |
|
|
| [defineStar](doc/define-star.md)<br>fun [defineStar](doc/define-star.md)(body: [Body](doc/-body/index.md), ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), distanceLightYears: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html))<br>Assign equatorial coordinates to a user-defined star. |
|
|
| [degreesToRadians](doc/degrees-to-radians.md)<br>fun [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html).[degreesToRadians](doc/degrees-to-radians.md)(): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Convert an angle expressed in degrees to an angle expressed in radians. |
|
|
| [eclipticGeoMoon](doc/ecliptic-geo-moon.md)<br>fun [eclipticGeoMoon](doc/ecliptic-geo-moon.md)(time: [Time](doc/-time/index.md)): [Spherical](doc/-spherical/index.md)<br>Calculates spherical ecliptic geocentric position of the Moon. |
|
|
| [eclipticLongitude](doc/ecliptic-longitude.md)<br>fun [eclipticLongitude](doc/ecliptic-longitude.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates heliocentric ecliptic longitude of a body. |
|
|
| [elongation](doc/elongation.md)<br>fun [elongation](doc/elongation.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [ElongationInfo](doc/-elongation-info/index.md)<br>Determines visibility of a celestial body relative to the Sun, as seen from the Earth. |
|
|
| [equator](doc/equator.md)<br>fun [equator](doc/equator.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md), equdate: [EquatorEpoch](doc/-equator-epoch/index.md), aberration: [Aberration](doc/-aberration/index.md)): [Equatorial](doc/-equatorial/index.md)<br>Calculates equatorial coordinates of a celestial body as seen by an observer on the Earth's surface. |
|
|
| [equatorialToEcliptic](doc/equatorial-to-ecliptic.md)<br>fun [equatorialToEcliptic](doc/equatorial-to-ecliptic.md)(eqj: [Vector](doc/-vector/index.md)): [Ecliptic](doc/-ecliptic/index.md)<br>Converts a J2000 mean equator (EQJ) vector to a true ecliptic of date (ETC) vector and angles. |
|
|
| [geoEmbState](doc/geo-emb-state.md)<br>fun [geoEmbState](doc/geo-emb-state.md)(time: [Time](doc/-time/index.md)): [StateVector](doc/-state-vector/index.md)<br>Calculates the geocentric position and velocity of the Earth/Moon barycenter. |
|
|
| [geoMoon](doc/geo-moon.md)<br>fun [geoMoon](doc/geo-moon.md)(time: [Time](doc/-time/index.md)): [Vector](doc/-vector/index.md)<br>Calculates equatorial geocentric position of the Moon at a given time. |
|
|
| [geoMoonState](doc/geo-moon-state.md)<br>fun [geoMoonState](doc/geo-moon-state.md)(time: [Time](doc/-time/index.md)): [StateVector](doc/-state-vector/index.md)<br>Calculates equatorial geocentric position and velocity of the Moon at a given time. |
|
|
| [geoVector](doc/geo-vector.md)<br>fun [geoVector](doc/geo-vector.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md), aberration: [Aberration](doc/-aberration/index.md)): [Vector](doc/-vector/index.md)<br>Calculates geocentric Cartesian coordinates of a body in the J2000 equatorial system. |
|
|
| [globalSolarEclipsesAfter](doc/global-solar-eclipses-after.md)<br>fun [globalSolarEclipsesAfter](doc/global-solar-eclipses-after.md)(startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[GlobalSolarEclipseInfo](doc/-global-solar-eclipse-info/index.md)><br>Enumerates a series of consecutive global solar eclipses that occur after a given time. |
|
|
| [helioDistance](doc/helio-distance.md)<br>fun [helioDistance](doc/helio-distance.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates the distance between a body and the Sun at a given time. |
|
|
| [helioState](doc/helio-state.md)<br>fun [helioState](doc/helio-state.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [StateVector](doc/-state-vector/index.md)<br>Calculates heliocentric position and velocity vectors for the given body. |
|
|
| [helioVector](doc/helio-vector.md)<br>fun [helioVector](doc/helio-vector.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [Vector](doc/-vector/index.md)<br>Calculates heliocentric Cartesian coordinates of a body in the J2000 equatorial system. |
|
|
| [horizon](doc/horizon.md)<br>fun [horizon](doc/horizon.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md), ra: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), dec: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), refraction: [Refraction](doc/-refraction/index.md)): [Topocentric](doc/-topocentric/index.md)<br>Calculates the apparent location of a body relative to the local horizon of an observer on the Earth. |
|
|
| [hourAngle](doc/hour-angle.md)<br>fun [hourAngle](doc/hour-angle.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Finds the hour angle of a body for a given observer and time. |
|
|
| [illumination](doc/illumination.md)<br>fun [illumination](doc/illumination.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [IlluminationInfo](doc/-illumination-info/index.md)<br>Finds visual magnitude, phase angle, and other illumination information about a celestial body. |
|
|
| [inverseRefractionAngle](doc/inverse-refraction-angle.md)<br>fun [inverseRefractionAngle](doc/inverse-refraction-angle.md)(refraction: [Refraction](doc/-refraction/index.md), bentAltitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates the inverse of an atmospheric refraction angle. |
|
|
| [jupiterMoons](doc/jupiter-moons.md)<br>fun [jupiterMoons](doc/jupiter-moons.md)(time: [Time](doc/-time/index.md)): [JupiterMoonsInfo](doc/-jupiter-moons-info/index.md)<br>Calculates jovicentric positions and velocities of Jupiter's largest 4 moons. |
|
|
| [lagrangePoint](doc/lagrange-point.md)<br>fun [lagrangePoint](doc/lagrange-point.md)(point: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), time: [Time](doc/-time/index.md), majorBody: [Body](doc/-body/index.md), minorBody: [Body](doc/-body/index.md)): [StateVector](doc/-state-vector/index.md)<br>Calculates one of the 5 Lagrange points for a pair of co-orbiting bodies. |
|
|
| [lagrangePointFast](doc/lagrange-point-fast.md)<br>fun [lagrangePointFast](doc/lagrange-point-fast.md)(point: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), majorState: [StateVector](doc/-state-vector/index.md), majorMass: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), minorState: [StateVector](doc/-state-vector/index.md), minorMass: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [StateVector](doc/-state-vector/index.md)<br>Calculates one of the 5 Lagrange points from body masses and state vectors. |
|
|
| [libration](doc/libration.md)<br>fun [libration](doc/libration.md)(time: [Time](doc/-time/index.md)): [LibrationInfo](doc/-libration-info/index.md)<br>Calculates the Moon's libration angles at a given moment in time. |
|
|
| [localSolarEclipsesAfter](doc/local-solar-eclipses-after.md)<br>fun [localSolarEclipsesAfter](doc/local-solar-eclipses-after.md)(startTime: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[LocalSolarEclipseInfo](doc/-local-solar-eclipse-info/index.md)><br>Enumerates a series of consecutive local solar eclipses that occur after a given time. |
|
|
| [lunarApsidesAfter](doc/lunar-apsides-after.md)<br>fun [lunarApsidesAfter](doc/lunar-apsides-after.md)(startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[ApsisInfo](doc/-apsis-info/index.md)><br>Enumerates a series of consecutive lunar apsides that occur after a given time. |
|
|
| [lunarEclipsesAfter](doc/lunar-eclipses-after.md)<br>fun [lunarEclipsesAfter](doc/lunar-eclipses-after.md)(startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[LunarEclipseInfo](doc/-lunar-eclipse-info/index.md)><br>Enumerates a series of consecutive lunar eclipses that occur after a given time. |
|
|
| [massProduct](doc/mass-product.md)<br>fun [massProduct](doc/mass-product.md)(body: [Body](doc/-body/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Returns the product of mass and universal gravitational constant of a Solar System body. |
|
|
| [moonNodesAfter](doc/moon-nodes-after.md)<br>fun [moonNodesAfter](doc/moon-nodes-after.md)(startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[NodeEventInfo](doc/-node-event-info/index.md)><br>Enumerates a series of consecutive ascending/descending nodes of the Moon. |
|
|
| [moonPhase](doc/moon-phase.md)<br>fun [moonPhase](doc/moon-phase.md)(time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Returns the Moon's phase as an angle from 0 to 360 degrees. |
|
|
| [moonQuartersAfter](doc/moon-quarters-after.md)<br>fun [moonQuartersAfter](doc/moon-quarters-after.md)(startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[MoonQuarterInfo](doc/-moon-quarter-info/index.md)><br>Enumerates a series of consecutive moon quarter phase events. |
|
|
| [nextGlobalSolarEclipse](doc/next-global-solar-eclipse.md)<br>fun [nextGlobalSolarEclipse](doc/next-global-solar-eclipse.md)(prevEclipseTime: [Time](doc/-time/index.md)): [GlobalSolarEclipseInfo](doc/-global-solar-eclipse-info/index.md)<br>Searches for the next global solar eclipse in a series. |
|
|
| [nextLocalSolarEclipse](doc/next-local-solar-eclipse.md)<br>fun [nextLocalSolarEclipse](doc/next-local-solar-eclipse.md)(prevEclipseTime: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [LocalSolarEclipseInfo](doc/-local-solar-eclipse-info/index.md)<br>Searches for the next local solar eclipse in a series. |
|
|
| [nextLunarApsis](doc/next-lunar-apsis.md)<br>fun [nextLunarApsis](doc/next-lunar-apsis.md)(apsis: [ApsisInfo](doc/-apsis-info/index.md)): [ApsisInfo](doc/-apsis-info/index.md)<br>Finds the next lunar perigee or apogee event in a series. |
|
|
| [nextLunarEclipse](doc/next-lunar-eclipse.md)<br>fun [nextLunarEclipse](doc/next-lunar-eclipse.md)(prevEclipseTime: [Time](doc/-time/index.md)): [LunarEclipseInfo](doc/-lunar-eclipse-info/index.md)<br>Searches for the next lunar eclipse in a series. |
|
|
| [nextMoonNode](doc/next-moon-node.md)<br>fun [nextMoonNode](doc/next-moon-node.md)(prevNode: [NodeEventInfo](doc/-node-event-info/index.md)): [NodeEventInfo](doc/-node-event-info/index.md)<br>Searches for the next time when the Moon's center crosses through the ecliptic plane. |
|
|
| [nextMoonQuarter](doc/next-moon-quarter.md)<br>fun [nextMoonQuarter](doc/next-moon-quarter.md)(mq: [MoonQuarterInfo](doc/-moon-quarter-info/index.md)): [MoonQuarterInfo](doc/-moon-quarter-info/index.md)<br>Continues searching for lunar quarters from a previous search. |
|
|
| [nextPlanetApsis](doc/next-planet-apsis.md)<br>fun [nextPlanetApsis](doc/next-planet-apsis.md)(body: [Body](doc/-body/index.md), apsis: [ApsisInfo](doc/-apsis-info/index.md)): [ApsisInfo](doc/-apsis-info/index.md)<br>Finds the next planetary perihelion or aphelion event in a series. |
|
|
| [nextTransit](doc/next-transit.md)<br>fun [nextTransit](doc/next-transit.md)(body: [Body](doc/-body/index.md), prevTransitTime: [Time](doc/-time/index.md)): [TransitInfo](doc/-transit-info/index.md)<br>Searches for another transit of Mercury or Venus. |
|
|
| [observerGravity](doc/observer-gravity.md)<br>fun [observerGravity](doc/observer-gravity.md)(latitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), height: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates the gravitational acceleration experienced by an observer on the Earth. |
|
|
| [pairLongitude](doc/pair-longitude.md)<br>fun [pairLongitude](doc/pair-longitude.md)(body1: [Body](doc/-body/index.md), body2: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Returns one body's ecliptic longitude with respect to another, as seen from the Earth. |
|
|
| [planetApsidesAfter](doc/planet-apsides-after.md)<br>fun [planetApsidesAfter](doc/planet-apsides-after.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[ApsisInfo](doc/-apsis-info/index.md)><br>Enumerates a series of consecutive planetary perihelia/aphelia events. |
|
|
| [planetOrbitalPeriod](doc/planet-orbital-period.md)<br>fun [planetOrbitalPeriod](doc/planet-orbital-period.md)(body: [Body](doc/-body/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Returns the average number of days it takes for a planet to orbit the Sun. |
|
|
| [radiansToDegrees](doc/radians-to-degrees.md)<br>fun [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html).[radiansToDegrees](doc/radians-to-degrees.md)(): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Convert an angle expressed in radians to an angle expressed in degrees. |
|
|
| [refractionAngle](doc/refraction-angle.md)<br>fun [refractionAngle](doc/refraction-angle.md)(refraction: [Refraction](doc/-refraction/index.md), altitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates the amount of "lift" to an altitude angle caused by atmospheric refraction. |
|
|
| [rotationAxis](doc/rotation-axis.md)<br>fun [rotationAxis](doc/rotation-axis.md)(body: [Body](doc/-body/index.md), time: [Time](doc/-time/index.md)): [AxisInfo](doc/-axis-info/index.md)<br>Calculates information about a body's rotation axis at a given time. |
|
|
| [rotationEclEqd](doc/rotation-ecl-eqd.md)<br>fun [rotationEclEqd](doc/rotation-ecl-eqd.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean ecliptic (ECL) to equatorial of-date (EQD). |
|
|
| [rotationEclEqj](doc/rotation-ecl-eqj.md)<br>fun [rotationEclEqj](doc/rotation-ecl-eqj.md)(): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean ecliptic (ECL) to J2000 mean equator (EQJ). |
|
|
| [rotationEclHor](doc/rotation-ecl-hor.md)<br>fun [rotationEclHor](doc/rotation-ecl-hor.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean ecliptic (ECL) to horizontal (HOR). |
|
|
| [rotationEctEqd](doc/rotation-ect-eqd.md)<br>fun [rotationEctEqd](doc/rotation-ect-eqd.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from true ecliptic of date (ECT) to equator of date (EQD). |
|
|
| [rotationEctEqj](doc/rotation-ect-eqj.md)<br>fun [rotationEctEqj](doc/rotation-ect-eqj.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from true ecliptic of date (ECT) to J2000 mean equator (EQJ). |
|
|
| [rotationEqdEcl](doc/rotation-eqd-ecl.md)<br>fun [rotationEqdEcl](doc/rotation-eqd-ecl.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean ecliptic (ECL). |
|
|
| [rotationEqdEct](doc/rotation-eqd-ect.md)<br>fun [rotationEqdEct](doc/rotation-eqd-ect.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from equator of date (EQD) to true ecliptic of date (ECT). |
|
|
| [rotationEqdEqj](doc/rotation-eqd-eqj.md)<br>fun [rotationEqdEqj](doc/rotation-eqd-eqj.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from equatorial of-date (EQD) to J2000 mean equator (EQJ). |
|
|
| [rotationEqdHor](doc/rotation-eqd-hor.md)<br>fun [rotationEqdHor](doc/rotation-eqd-hor.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from equatorial of-date (EQD) to horizontal (HOR). |
|
|
| [rotationEqjEcl](doc/rotation-eqj-ecl.md)<br>fun [rotationEqjEcl](doc/rotation-eqj-ecl.md)(): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean equator (EQJ) to J2000 mean ecliptic (ECL). |
|
|
| [rotationEqjEct](doc/rotation-eqj-ect.md)<br>fun [rotationEqjEct](doc/rotation-eqj-ect.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean equator (EQJ) to true ecliptic of date (ECT). |
|
|
| [rotationEqjEqd](doc/rotation-eqj-eqd.md)<br>fun [rotationEqjEqd](doc/rotation-eqj-eqd.md)(time: [Time](doc/-time/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean equator (EQJ) to equatorial of-date (EQD). |
|
|
| [rotationEqjGal](doc/rotation-eqj-gal.md)<br>fun [rotationEqjGal](doc/rotation-eqj-gal.md)(): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). |
|
|
| [rotationEqjHor](doc/rotation-eqj-hor.md)<br>fun [rotationEqjHor](doc/rotation-eqj-hor.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from J2000 mean equator (EQJ) to horizontal (HOR). |
|
|
| [rotationGalEqj](doc/rotation-gal-eqj.md)<br>fun [rotationGalEqj](doc/rotation-gal-eqj.md)(): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from galactic (GAL) to J2000 mean equator (EQJ). |
|
|
| [rotationHorEcl](doc/rotation-hor-ecl.md)<br>fun [rotationHorEcl](doc/rotation-hor-ecl.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from horizontal (HOR) to J2000 mean ecliptic (ECL). |
|
|
| [rotationHorEqd](doc/rotation-hor-eqd.md)<br>fun [rotationHorEqd](doc/rotation-hor-eqd.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from horizontal (HOR) to equatorial of-date (EQD). |
|
|
| [rotationHorEqj](doc/rotation-hor-eqj.md)<br>fun [rotationHorEqj](doc/rotation-hor-eqj.md)(time: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [RotationMatrix](doc/-rotation-matrix/index.md)<br>Calculates a rotation matrix from horizontal (HOR) to J2000 equatorial (EQJ). This is one of the family of functions that returns a rotation matrix for converting from one orientation to another. Source: HOR = horizontal system (x=North, y=West, z=Zenith). Target: EQJ = equatorial system, using equator at the J2000 epoch. |
|
|
| [search](doc/search.md)<br>fun [search](doc/search.md)(time1: [Time](doc/-time/index.md), time2: [Time](doc/-time/index.md), toleranceSeconds: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), func: [SearchContext](doc/-search-context/index.md)): [Time](doc/-time/index.md)?<br>Searches for a time at which a function's value increases through zero. |
|
|
| [searchAltitude](doc/search-altitude.md)<br>fun [searchAltitude](doc/search-altitude.md)(body: [Body](doc/-body/index.md), observer: [Observer](doc/-observer/index.md), direction: [Direction](doc/-direction/index.md), startTime: [Time](doc/-time/index.md), limitDays: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), altitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](doc/-time/index.md)?<br>Finds the next time the center of a body reaches a given altitude. |
|
|
| [searchGlobalSolarEclipse](doc/search-global-solar-eclipse.md)<br>fun [searchGlobalSolarEclipse](doc/search-global-solar-eclipse.md)(startTime: [Time](doc/-time/index.md)): [GlobalSolarEclipseInfo](doc/-global-solar-eclipse-info/index.md)<br>Searches for a solar eclipse visible anywhere on the Earth's surface. |
|
|
| [searchHourAngle](doc/search-hour-angle.md)<br>fun [searchHourAngle](doc/search-hour-angle.md)(body: [Body](doc/-body/index.md), observer: [Observer](doc/-observer/index.md), hourAngle: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), startTime: [Time](doc/-time/index.md), direction: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = +1): [HourAngleInfo](doc/-hour-angle-info/index.md)<br>Searches for the time when the center of a body reaches a specified hour angle as seen by an observer on the Earth. |
|
|
| [searchLocalSolarEclipse](doc/search-local-solar-eclipse.md)<br>fun [searchLocalSolarEclipse](doc/search-local-solar-eclipse.md)(startTime: [Time](doc/-time/index.md), observer: [Observer](doc/-observer/index.md)): [LocalSolarEclipseInfo](doc/-local-solar-eclipse-info/index.md)<br>Searches for a solar eclipse visible at a specific location on the Earth's surface. |
|
|
| [searchLunarApsis](doc/search-lunar-apsis.md)<br>fun [searchLunarApsis](doc/search-lunar-apsis.md)(startTime: [Time](doc/-time/index.md)): [ApsisInfo](doc/-apsis-info/index.md)<br>Finds the date and time of the Moon's perigee or apogee. |
|
|
| [searchLunarEclipse](doc/search-lunar-eclipse.md)<br>fun [searchLunarEclipse](doc/search-lunar-eclipse.md)(startTime: [Time](doc/-time/index.md)): [LunarEclipseInfo](doc/-lunar-eclipse-info/index.md)<br>Searches for a lunar eclipse. |
|
|
| [searchMaxElongation](doc/search-max-elongation.md)<br>fun [searchMaxElongation](doc/search-max-elongation.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [ElongationInfo](doc/-elongation-info/index.md)<br>Finds a date and time when Mercury or Venus reaches its maximum angle from the Sun as seen from the Earth. |
|
|
| [searchMoonNode](doc/search-moon-node.md)<br>fun [searchMoonNode](doc/search-moon-node.md)(startTime: [Time](doc/-time/index.md)): [NodeEventInfo](doc/-node-event-info/index.md)<br>Searches for a time when the Moon's center crosses through the ecliptic plane. |
|
|
| [searchMoonPhase](doc/search-moon-phase.md)<br>fun [searchMoonPhase](doc/search-moon-phase.md)(targetLon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), startTime: [Time](doc/-time/index.md), limitDays: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](doc/-time/index.md)?<br>Searches for the time that the Moon reaches a specified phase. |
|
|
| [searchMoonQuarter](doc/search-moon-quarter.md)<br>fun [searchMoonQuarter](doc/search-moon-quarter.md)(startTime: [Time](doc/-time/index.md)): [MoonQuarterInfo](doc/-moon-quarter-info/index.md)<br>Finds the first lunar quarter after the specified date and time. A lunar quarter is one of the following four lunar phase events: new moon, first quarter, full moon, third quarter. This function finds the lunar quarter that happens soonest after the specified date and time. |
|
|
| [searchPeakMagnitude](doc/search-peak-magnitude.md)<br>fun [searchPeakMagnitude](doc/search-peak-magnitude.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [IlluminationInfo](doc/-illumination-info/index.md)<br>Searches for the date and time Venus will next appear brightest as seen from the Earth. |
|
|
| [searchPlanetApsis](doc/search-planet-apsis.md)<br>fun [searchPlanetApsis](doc/search-planet-apsis.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [ApsisInfo](doc/-apsis-info/index.md)<br>Finds the first aphelion or perihelion for a planet after a given time. |
|
|
| [searchRelativeLongitude](doc/search-relative-longitude.md)<br>fun [searchRelativeLongitude](doc/search-relative-longitude.md)(body: [Body](doc/-body/index.md), targetRelativeLongitude: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), startTime: [Time](doc/-time/index.md)): [Time](doc/-time/index.md)<br>Searches for the time when the Earth and another planet are separated by a specified angle in ecliptic longitude, as seen from the Sun. |
|
|
| [searchRiseSet](doc/search-rise-set.md)<br>@[JvmOverloads](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-overloads/index.html)<br>fun [searchRiseSet](doc/search-rise-set.md)(body: [Body](doc/-body/index.md), observer: [Observer](doc/-observer/index.md), direction: [Direction](doc/-direction/index.md), startTime: [Time](doc/-time/index.md), limitDays: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), metersAboveGround: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 0.0): [Time](doc/-time/index.md)?<br>Searches for the next time a celestial body rises or sets as seen by an observer on the Earth. |
|
|
| [searchSunLongitude](doc/search-sun-longitude.md)<br>fun [searchSunLongitude](doc/search-sun-longitude.md)(targetLon: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html), startTime: [Time](doc/-time/index.md), limitDays: [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)): [Time](doc/-time/index.md)?<br>Searches for the time when the Sun reaches an apparent ecliptic longitude as seen from the Earth. |
|
|
| [searchTransit](doc/search-transit.md)<br>fun [searchTransit](doc/search-transit.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [TransitInfo](doc/-transit-info/index.md)<br>Searches for the first transit of Mercury or Venus after a given date. |
|
|
| [seasons](doc/seasons.md)<br>fun [seasons](doc/seasons.md)(year: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [SeasonsInfo](doc/-seasons-info/index.md)<br>Finds both equinoxes and both solstices for a given calendar year. |
|
|
| [siderealTime](doc/sidereal-time.md)<br>fun [siderealTime](doc/sidereal-time.md)(time: [Time](doc/-time/index.md)): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>Calculates Greenwich Apparent Sidereal Time (GAST). |
|
|
| [sunPosition](doc/sun-position.md)<br>fun [sunPosition](doc/sun-position.md)(time: [Time](doc/-time/index.md)): [Ecliptic](doc/-ecliptic/index.md)<br>Calculates geocentric ecliptic coordinates for the Sun. |
|
|
| [times](doc/times.md)<br>operator fun [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html).[times](doc/times.md)(vec: [Vector](doc/-vector/index.md)): [Vector](doc/-vector/index.md)<br>Multiply a scalar by a vector, yielding another vector. |
|
|
| [transitsAfter](doc/transits-after.md)<br>fun [transitsAfter](doc/transits-after.md)(body: [Body](doc/-body/index.md), startTime: [Time](doc/-time/index.md)): [Sequence](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html)<[TransitInfo](doc/-transit-info/index.md)><br>Enumerates a series of consecutive transits of Mercury or Venus. |
|
|
|
|
## Properties
|
|
|
|
| Name | Summary |
|
|
|---|---|
|
|
| [AU_PER_LY](doc/-a-u_-p-e-r_-l-y.md)<br>const val [AU_PER_LY](doc/-a-u_-p-e-r_-l-y.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 63241.07708807546<br>The number of astronomical units per light-year. |
|
|
| [C_AUDAY](doc/-c_-a-u-d-a-y.md)<br>const val [C_AUDAY](doc/-c_-a-u-d-a-y.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 173.1446326846693<br>The speed of light in AU/day. |
|
|
| [CALLISTO_RADIUS_KM](doc/-c-a-l-l-i-s-t-o_-r-a-d-i-u-s_-k-m.md)<br>const val [CALLISTO_RADIUS_KM](doc/-c-a-l-l-i-s-t-o_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 2410.3<br>The mean radius of Jupiter's moon Callisto, expressed in kilometers. |
|
|
| [DEG2RAD](doc/-d-e-g2-r-a-d.md)<br>const val [DEG2RAD](doc/-d-e-g2-r-a-d.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 0.017453292519943295<br>The factor to convert degrees to radians = pi/180. |
|
|
| [EUROPA_RADIUS_KM](doc/-e-u-r-o-p-a_-r-a-d-i-u-s_-k-m.md)<br>const val [EUROPA_RADIUS_KM](doc/-e-u-r-o-p-a_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 1560.8<br>The mean radius of Jupiter's moon Europa, expressed in kilometers. |
|
|
| [GANYMEDE_RADIUS_KM](doc/-g-a-n-y-m-e-d-e_-r-a-d-i-u-s_-k-m.md)<br>const val [GANYMEDE_RADIUS_KM](doc/-g-a-n-y-m-e-d-e_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 2631.2<br>The mean radius of Jupiter's moon Ganymede, expressed in kilometers. |
|
|
| [HOUR2RAD](doc/-h-o-u-r2-r-a-d.md)<br>const val [HOUR2RAD](doc/-h-o-u-r2-r-a-d.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 0.26179938779914946<br>The factor to convert sidereal hours to radians = pi/12. |
|
|
| [IO_RADIUS_KM](doc/-i-o_-r-a-d-i-u-s_-k-m.md)<br>const val [IO_RADIUS_KM](doc/-i-o_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 1821.6<br>The mean radius of Jupiter's moon Io, expressed in kilometers. |
|
|
| [JUPITER_EQUATORIAL_RADIUS_KM](doc/-j-u-p-i-t-e-r_-e-q-u-a-t-o-r-i-a-l_-r-a-d-i-u-s_-k-m.md)<br>const val [JUPITER_EQUATORIAL_RADIUS_KM](doc/-j-u-p-i-t-e-r_-e-q-u-a-t-o-r-i-a-l_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 71492.0<br>The equatorial radius of Jupiter, expressed in kilometers. |
|
|
| [JUPITER_MEAN_RADIUS_KM](doc/-j-u-p-i-t-e-r_-m-e-a-n_-r-a-d-i-u-s_-k-m.md)<br>const val [JUPITER_MEAN_RADIUS_KM](doc/-j-u-p-i-t-e-r_-m-e-a-n_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 69911.0<br>The volumetric mean radius of Jupiter, expressed in kilometers. |
|
|
| [JUPITER_POLAR_RADIUS_KM](doc/-j-u-p-i-t-e-r_-p-o-l-a-r_-r-a-d-i-u-s_-k-m.md)<br>const val [JUPITER_POLAR_RADIUS_KM](doc/-j-u-p-i-t-e-r_-p-o-l-a-r_-r-a-d-i-u-s_-k-m.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 66854.0<br>The polar radius of Jupiter, expressed in kilometers. |
|
|
| [KM_PER_AU](doc/-k-m_-p-e-r_-a-u.md)<br>const val [KM_PER_AU](doc/-k-m_-p-e-r_-a-u.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 1.4959787069098932E8<br>The number of kilometers in one astronomical unit (AU). |
|
|
| [MILLISECONDS_PER_DAY](doc/-m-i-l-l-i-s-e-c-o-n-d-s_-p-e-r_-d-a-y.md)<br>const val [MILLISECONDS_PER_DAY](doc/-m-i-l-l-i-s-e-c-o-n-d-s_-p-e-r_-d-a-y.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>The number of milliseconds in a day. |
|
|
| [MINUTES_PER_DAY](doc/-m-i-n-u-t-e-s_-p-e-r_-d-a-y.md)<br>const val [MINUTES_PER_DAY](doc/-m-i-n-u-t-e-s_-p-e-r_-d-a-y.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>The number of minutes in a day. |
|
|
| [RAD2DEG](doc/-r-a-d2-d-e-g.md)<br>const val [RAD2DEG](doc/-r-a-d2-d-e-g.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 57.29577951308232<br>The factor to convert radians to degrees = 180/pi. |
|
|
| [RAD2HOUR](doc/-r-a-d2-h-o-u-r.md)<br>const val [RAD2HOUR](doc/-r-a-d2-h-o-u-r.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html) = 3.819718634205488<br>The factor to convert radians to sidereal hours = 12/pi. |
|
|
| [SECONDS_PER_DAY](doc/-s-e-c-o-n-d-s_-p-e-r_-d-a-y.md)<br>const val [SECONDS_PER_DAY](doc/-s-e-c-o-n-d-s_-p-e-r_-d-a-y.md): [Double](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-double/index.html)<br>The number of seconds in a day. |
|