Lunar Limb Profile
Lunar limb profile data for solar eclipse calculations
Last updated
Lunar limb profile data for solar eclipse calculations
Last updated
This API is available on the Pro plan or higher
The lunar-limb
end point returns a limited set of data related to the lunar limb profile. This is commonly used in making advanced solar eclipse calculations (specifically to find adjusted times and position angles of the second and third contacts), and to aid in simulating the appearance of Baily's Beads.
Credit:
The data returned by this API is from data derived from the Kaguya mission by David Herald. Please review the ReadMe.txt file linked below for additional information.
Lunar limb profiles are available only for a limited range of libration values:
l
, libration in longitude: +9.0° to -9.0°
b
, libration in latitude: +1.6° to -1.6°
Resolution: 0.2° intervals
These libration values cover the ranges which occur during solar eclipses (when the Moon is always near one of its nodes). The resolution of 0.2° is sufficient for the purposes of establishing the effects of variation in the lunar limb on solar eclipse observations.
The API will return JSON data containing limb data for a given lunar libration. The desired lunar libration can be given directly, or alternatively it will be calculated from a given date. Additionally, the data can be requested in SVG form for graphical display, with a desired vertical exaggeration factor.
DATE_TIME
None
Optional. The date/time for which the limb profile is desired. Required if LIBRATION_IN_LNG
and LIBRATION_IN_LAT
are omitted.
LAT,LNG
None
Optional. The observer's latitude and longitude (geodetic). Required if LIBRATION_IN_LNG
and LIBRATION_IN_LAT
are omitted.
LIBRATION_IN_LNG
, LIBRATION_IN_LAT
None
Optional. Libration values to be used. Ignored if observer LAT,LNG
and DATE_TIME
are given. Required otherwise. See above note on supported range of values.
FORMAT
json
Optional. If omitted, API returns a JSON response. Supported values: json
(default) or svg
(scalable vector graphics).
EXAGGERATION_FACTOR
20
Optional. Ignored unless FORMAT
is svg
. Applies a vertical exaggeration factor to the lunar limb data when requesting SVG format. Larger values
SIZE
1000
Optional. Ignored unless FORMAT
is svg
. Sets height and width of returned SVG object. Valid range: 1.0 to 10000.0.
If the observer latitude and longitude are given, the API will calculate the topocentric libration values automatically. If observer location is omitted, you must supply valid values for libration in longitude and latitude within the ranges noted above.
If all cases, the given or inferred libration values are 'snapped' to the closest limb profile data set from the Kaguya/Herald source.
This example returns the lunar limb profile for the 2015 total eclipse as observed in Svalbard at the time of greatest eclipse:
The (excerpted) response is:
The query
object shows the parameters used to determine what limb profile data is required, including the topocentric libration values (l
and b
) and position angle (P
) calculated for the given date and observer location.
The response
object contains the rounded libration values used to select from the Kaguya/Herald dataset. aa_from
and aa_to
indicate the range of limb profile data point radial angles in degrees given in data
. deg
shows the resolution (always 0.2°).
The data
property contains the array of raw limb offsets in arc seconds. E.g. the first value -0.28″ indicates that at the angle of 0° as measured from the center of mass of the Moon, the angular semi-diameter is reduced from the mean semi-diameter by -0.28″.
Be sure to consult the ReadMe.txt file linked above to understand how to relate these values to the reference values used in preparation of the dataset.
This example returns the lunar limb profile for the 2015 total eclipse as observed in Svalbard at the time of greatest eclipse in SVG format, with a vertical exaggeration factor of 15 and a size of 800:
The raw response is as follows (excerpt shown):
The points returned at scaled based on the size parameter value and the position angle rotation (P
in the JSON format example above) is already applied.
When displayed in graphical form, this SVG object appears like this - it has no styling included:
The SVG object can be styled for display in your own app or website using tools such as CSS or other graphical editing tools. For example, with green border and light grey fill:
The resulting SVG appears as shown: