Files
OpenSpace/data/assets/spice/core.asset
T
Alexander Bock 6fee06aa4e Reorganization of Spice file handling (#2975)
* Fix VideoTileLayer -> VideoTileProvider
* Move kernel loading into spice files
* Define Spice IDs inside assets
* General asset cleanup and organization
2023-12-12 10:57:24 +01:00

192 lines
4.9 KiB
Lua

local pck = asset.resource({
Name = "General PCK Kernels",
Type = "HttpSynchronization",
Identifier = "general_pck",
Version = 1
})
local spk = asset.resource({
Name = "General SPK Kernels",
Type = "HttpSynchronization",
Identifier = "general_spk",
Version = 2
})
-- The following IDs are defined in the de430 kernel provided by the `generic_spk` package
local ID = {
Earth = "EARTH",
EarthBarycenter = "EARTH BARYCENTER",
Mars = "MARS",
MarsBarycenter = "MARS BARYCENTER",
Mercury = "MERCURY",
MercuryBarycenter = "MERCURY BARYCENTER",
Moon = "MOON",
Neptune = "NEPTUNE",
NeptuneBarycenter = "NEPTUNE BARYCENTER",
Jupiter = "JUPITER",
JupiterBarycenter = "JUPITER BARYCENTER",
Pluto = "PLUTO",
PlutoBarycenter = "PLUTO BARYCENTER",
Saturn = "SATURN",
SaturnBarycenter = "SATURN BARYCENTER",
SolarSystemBarycenter = "SOLAR SYSTEM BARYCENTER",
Sun = "SUN",
Uranus = "URANUS",
UranusBarycenter = "URANUS BARYCENTER",
Venus = "VENUS",
VenusBarycenter = "VENUS BARYCENTER",
}
-- The following frames are provided as built-in reference frames by SPICE itself. See
-- https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/frames.html
-- Appendix: "Built in" Inertial Reference Frames
-- Appendix: "Built in" PCK-Based IAU Body-Fixed Reference Frames
-- Appendix: High Precision Earth Fixed Frames
-- for more information
local Frame = {
J2000 = "J2000",
EclipJ2000 = "ECLIPJ2000",
Galactic = "GALACTIC",
Earth = "IAU_EARTH",
ITRF93 = "ITRF93",
EarthFixed = "EARTH_FIXED",
Mars = "IAU_MARS",
Mercury = "IAU_MERCURY",
Moon = "IAU_MOON",
Neptune = "IAU_NEPTUNE",
Jupiter = "IAU_JUPITER",
Pluto = "IAU_PLUTO",
Saturn = "IAU_SATURN",
Sun = "IAU_SUN",
Uranus = "IAU_URANUS",
Venus = "IAU_VENUS",
["52Europa"] = "IAU_52_EUROPA",
Adrastea = "IAU_ADRASTEA",
Amalthea = "IAU_AMALTHEA",
Ananke = "IAU_ANANKE",
Ariel = "IAU_ARIEL",
Arrokoth = "IAU_ARROKOTH",
Atlas = "IAU_ATLAS",
Belinda = "IAU_BELINDA",
Bennu = "IAU_BENNU",
Bianca = "IAU_BIANCA",
Borrelly = "IAU_BORRELLY",
Callirrhoe = "IAU_CALLIRRHOE",
Callisto = "IAU_CALLISTO",
Calypso = "IAU_CALYPSO",
Carme = "IAU_CARME",
Ceres = "IAU_CERES",
Chaldene = "IAU_CHALDENE",
Charon = "IAU_CHARON",
Cordelia = "IAU_CORDELIA",
Cressida = "IAU_CRESSIDA",
Davida = "IAU_DAVIDA",
Deimos = "IAU_DEIMOS",
Desdemona = "IAU_DESDEMONA",
Despina = "IAU_DESPINA",
Didymos = "IAU_DIDYMOS",
Dimorphos = "IAU_DIMORPHOS",
Dione = "IAU_DIONE",
DonaldJohanson = "IAU_DONALDJOHANSON",
Elara = "IAU_ELARA",
Enceladus = "IAU_ENCELADUS",
Epimetheus = "IAU_EPIMETHEUS",
Erinome = "IAU_ERINOME",
Eros = "IAU_EROS",
Europa = "IAU_EUROPA",
Eurybates = "IAU_EURYBATES",
Galatea = "IAU_GALATEA",
Ganymede = "IAU_GANYMEDE",
Gaspra = "IAU_GASPRA",
Harpalyke = "IAU_HARPALYKE",
Helene = "IAU_HELENE",
Himalia = "IAU_HIMALIA",
Hydra = "IAU_HYDRA",
Hyperion = "IAU_HYPERION",
Iapetus = "IAU_IAPETUS",
Ida = "IAU_IDA",
Io = "IAU_IO",
Iocaste = "IAU_IOCASTE",
Isonoe = "IAU_ISONOE",
Itokawa = "IAU_ITOKAWA",
Janus = "IAU_JANUS",
Juliet = "IAU_JULIET",
Kalyke = "IAU_KALYKE",
Larissa = "IAU_LARISSA",
Leda = "IAU_LEDA",
Leucus = "IAU_LEUCUS",
Lutetia = "IAU_LUTETIA",
Lysithea = "IAU_LYSITHEA",
Magaclite = "IAU_MAGACLITE",
Menoetius = "IAU_MENOETIUS",
Metis = "IAU_METIS",
Mimas = "IAU_MIMAS",
Miranda = "IAU_MIRANDA",
Naiad = "IAU_NAIAD",
Nereid = "IAU_NEREID",
Nix = "IAU_NIX",
Oberon = "IAU_OBERON",
Ophelia = "IAU_OPHELIA",
Orus = "IAU_ORUS",
Pallas = "IAU_PALLAS",
Pan = "IAU_PAN",
Pandora = "IAU_PANDORA",
Pasiphae = "IAU_PASIPHAE",
Patroclus = "IAU_PATROCLUS",
Phobos = "IAU_PHOBOS",
Phoebe = "IAU_PHOEBE",
Polymele = "IAU_POLYMELE",
Portia = "IAU_PORTIA",
Praxidike = "IAU_PRAXIDIKE",
Prometheus = "IAU_PROMETHEUS",
Proteus = "IAU_PROTEUS",
Puck = "IAU_PUCK",
Queta = "IAU_QUETA",
Rhea = "IAU_RHEA",
Rosalind = "IAU_ROSALIND",
Ryugu = "IAU_RYUGU",
Sinope = "IAU_SINOPE",
Steins = "IAU_STEINS",
Taygete = "IAU_TAYGETE",
Telesto = "IAU_TELESTO",
Tempel1 = "IAU_TEMPEL_1",
Tethys = "IAU_TETHYS",
Thalassa = "IAU_THALASSA",
Thebe = "IAU_THEBE",
Themisto = "IAU_THEMISTO",
Titan = "IAU_TITAN",
Titania = "IAU_TITANIA",
Triton = "IAU_TRITON",
Umbriel = "IAU_UMBRIEL",
Vesta = "IAU_VESTA"
}
asset.onInitialize(function()
openspace.spice.loadKernel(pck .. "pck00011.tpc")
openspace.spice.loadKernel(spk .. "de430.bsp")
end)
asset.onDeinitialize(function()
openspace.spice.unloadKernel(spk .. "de430.bsp")
openspace.spice.unloadKernel(pck .. "pck00011.tpc")
end)
asset.export("ID", ID)
asset.export("Frame", Frame)
asset.meta = {
Name = "SPICE Base",
Version = "1.1",
Description = [[This asset contains the spice base kernels necessary for any space
application. Includes positions for Solar System bodies from 1850 to 2150]],
Author = "OpenSpace Team",
URL = "https://naif.jpl.nasa.gov/naif/data_generic.html",
License = "NASA"
}