Add Euclid mission (#2970)

This commit is contained in:
Alexander Bock
2023-12-11 20:37:55 +01:00
committed by GitHub
parent dbc1403be6
commit aaa6522029
6 changed files with 438 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
asset.require("./model")
asset.require("./trails")
asset.require("./mission")
asset.meta = {
Name = "Euclid",
Version = "1.0",
Description = "This asset includes all of the other assets for the Euclid mission.",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,89 @@
local Mission = {
Name = "Euclid",
Image = "https://www.esa.int/var/esa/storage/images/esa_multimedia/images/2013/01/euclid_logo/12493233-3-eng-GB/Euclid_logo_pillars.png",
Description = [[Euclid is designed to explore the evolution of the dark universe. It will make a 3D-map of the universe (with time as the third dimension) by observing billions of galaxies out to 10 billion light-years, across more than a third of the sky.
While dark energy accelerates the expansion of the universe and dark matter governs the growth of cosmic structures, scientists remain unsure about what dark energy and dark matter actually are.
By observing the universe evolving over the past 10 billion years, Euclid will reveal how it has expanded and how structure has formed over cosmic history - and from this, astronomers can infer the properties of dark energy, dark matter and gravity, to reveal more about their precise nature.]],
Milestones = {
{
Name = "Launch",
Date = "2023 JUL 01 15:12:00"
},
{
Name = "Start of Trajectory Information",
Date = "2023 JUL 01 15:53:08.239"
},
{
Name = "Quality Release Q1",
Date = "2024 DEC 01"
},
{
Name = "Data Release DR1",
Date = "2025 DEC 01"
},
{
Name = "Quality Release Q2",
Date = "2026 DEC 01"
},
{
Name = "Data Release DR2",
Date = "2027 DEC 01"
},
{
Name = "Quality Release Q3",
Date = "2028 DEC 01"
},
{
Name = "Quality Release Q4",
Date = "2029 DEC 01"
},
{
Name = "Data Release DR3",
Date = "2030 DEC 01"
}
},
Phases = {
{
Name = "Cruise phase",
TimeRange = { Start = "2023 JUL 01 15:12:00", End = "2023 AUG 01" },
Description = "Following a cruise of 30 days, Euclid will operate in a large halo orbit around the L2 point of the Sun-Earth system, which is located 1.5 million km from the Earth in the anti-Sun direction. The orbit will not suffer from any Earth eclipses and will have a radius of 1 million kilometers. An operational lifetime of 6 years is planned."
},
{
Name = "Commissioning & Performance Verification phase",
TimeRange = { Start = "2023 AUG 01", End = "2023 OCT 01" },
Description = "During commissioning a mission's instruments and subsystems are deployed, turned on, tested and calibrated. The Performance Verification will ensure that the science instruments are all rigorously tested and that the expected performances of the Euclid project are in line with the core science objectives."
},
{
Name = "Operational phase",
TimeRange = { Start = "2023 OCT 01", End = "2028 AUG 01" },
Description = [[Euclid was selected for implementation in June 2012 by ESA's Science Programme Committee. It's main scientific objectives are:
- To investigate whether Dark Energy is real, or whether the apparent acceleration of the Universe is caused by a breakdown of General Relativity on the largest scales, or a failure of our assumption that the universe is more or less uniform in density.
- If dark energy is real, to investigate whether it is a constant energy spread across space, which would make it the Cosmological Constant found in Einstein's General Relativity, or a new force of nature that evolves with the expansion of the Universe.
- To investigate the nature of Dark Matter, the mass of neutrino particles and whether there are other, so-far undetected fast moving particle species in the Universe.
- To investigate the conditions in the Universe after the Big Bang that seeded the large-scale structure of the universe that we observe today.]]
}
}
}
asset.onInitialize(function()
openspace.loadMission(Mission)
end)
asset.onDeinitialize(function()
openspace.unloadMission(Mission.Name)
end)
asset.meta = {
Name = "Euclid Mission",
Version = "1.0",
Description = "This asset contains the mission profile information for ESA's Euclid mission. The data in this file has been combined from multiple sources, including https://sci.esa.int/web/euclid, https://www.esa.int/Science_Exploration/Space_Science/Euclid_overview, https://www.euclid-ec.org/, https://sci.esa.int/web/euclid, https://indico.in2p3.fr/event/14206/contributions/17189/attachments/14299/17526/Euclid-MSauvage-LSSTFrance-MAR2017.pdf, and https://euclid.caltech.edu/page/data-release-timeline",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,73 @@
local transform = asset.require("scene/solarsystem/planets/earth/transforms")
local sun = asset.require("scene/solarsystem/sun/sun")
local spice = asset.require("./spice")
local modelFolder = asset.resource({
Name = "Euclid Model",
Type = "HttpSynchronization",
Identifier = "euclid_model",
Version = 1
})
local Euclid = {
Identifier = "Euclid",
Parent = transform.EarthBarycenter.Identifier,
TimeFrame = {
Type = "TimeFrameInterval",
Start = "2023 JUL 01 15:53:08.239",
End = "2031 OCT 13 00:37:22.437"
},
Transform = {
Translation = {
Type = "SpiceTranslation",
Target = spice.ID.Euclid,
Observer = "EARTH BARYCENTER"
},
Rotation = {
Type = "FixedRotation",
Attached = "Euclid",
ZAxis = "Sun",
YAxis = { 0.0, 1.0, 0.0 },
YAxisOrthogonal = true
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = modelFolder .. "euclid.fbx",
ModelScale = 30.0,
LightSources = {
sun.LightSource
},
PerformShading = true,
AmbientIntensity = 0.075
},
GUI = {
Name = "Euclid",
Path = "/Solar System/Telescopes/Euclid"
}
}
asset.onInitialize(function()
openspace.addSceneGraphNode(Euclid)
end)
asset.onDeinitialize(function()
openspace.removeSceneGraphNode(Euclid)
end)
asset.export(Euclid)
asset.meta = {
Name = "Euclid Model",
Version = "1.0",
Description = "This asset contains the model of ESA's Euclid spacecraft. The model is retrieved from https://scifleet.esa.int",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,38 @@
local kernels = asset.resource({
Name = "Euclid Kernels",
Type = "HttpSynchronization",
Identifier = "euclid_kernels",
Version = 1
})
local EuclidKernels = {
kernels .. "de432s.bsp",
kernels .. "euclid_flp_00044_20230701_20311013_v01.bsp"
}
local ID = {
Euclid = -680
}
asset.onInitialize(function()
openspace.spice.loadKernel(EuclidKernels)
end)
asset.onDeinitialize(function()
openspace.spice.unloadKernel(EuclidKernels)
end)
asset.export("ID", ID)
asset.meta = {
Name = "Euclid Kernels",
Version = "1.0",
Description = "This asset contains the SPICE kernels for ESA's Euclid mission.",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,135 @@
local spice = asset.require("./spice")
local earth = asset.require("scene/solarsystem/planets/earth/transforms")
local solarsystem = asset.require("scene/solarsystem/sun/transforms")
local transforms = asset.require("scene/solarsystem/planets/earth/lagrange_points/l2")
local StartTime = "2023 JUL 01 15:53:08.239"
local EndTime = "2031 OCT 13 00:37:22.437"
local EuclidTrailSun = {
Identifier = "EuclidTrailSun",
Parent = solarsystem.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = spice.ID.Euclid,
Observer = "SSB"
},
Color = { 0.70, 0.50, 0.20 },
StartTime = StartTime,
EndTime = EndTime,
SampleInterval = 60000
},
GUI = {
Name = "Euclid Trail (Sun)",
Path = "/Solar System/Telescopes/Euclid"
}
}
local EuclidTrailEarth = {
Identifier = "EuclidTrailEarth",
Parent = earth.EarthBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
Translation = {
Type = "SpiceTranslation",
Target = spice.ID.Euclid,
Observer = "EARTH BARYCENTER"
},
Color = { 0.325, 0.65, 0.55 },
StartTime = StartTime,
EndTime = EndTime,
SampleInterval = 60000
},
GUI = {
Name = "Euclid Trail (Earth)",
Path = "/Solar System/Telescopes/Euclid"
}
}
local EuclidTrailOrbit = {
Identifier = "EuclidTrailOrbit",
Parent = transforms.L2Position.Identifier,
TimeFrame = {
Type = "TimeFrameInterval",
Start = StartTime,
End = EndTime
},
Renderable = {
Type = "RenderableTrailOrbit",
Translation = {
Type = "SpiceTranslation",
Target = spice.ID.Euclid,
Observer = 392, -- L2
Frame = "GALACTIC"
},
Color = { 0.863, 0.0, 0.902 },
Period = 182.621099, -- About 6 months
Resolution = 183 -- About a sample rate of once per day
},
GUI = {
Name = "Euclid Orbit Trail",
Path = "/Solar System/Telescopes/Euclid",
Description = "Euclid Orbit Trail relative to L2"
}
}
local EuclidTrailCoRevOrbit = {
Identifier = "EuclidTrailCoRevOrbit",
Parent = transforms.L2CoRevFrame.Identifier,
TimeFrame = {
Type = "TimeFrameInterval",
Start = StartTime,
End = EndTime
},
Renderable = {
Type = "RenderableTrailOrbit",
Translation = {
Type = "SpiceTranslation",
Target = spice.ID.Euclid,
Observer = 392, -- L2
Frame = "L2_COREV"
},
Color = { 0.863, 0.0, 0.902 },
Period = 182.621099, -- About 6 months
Resolution = 183 -- About a sample rate of once per day
},
GUI = {
Name = "Euclid L2 Co-Revolving Orbit Trail",
Path = "/Solar System/Telescopes/Euclid",
Description = "Euclid Orbit Trail relative to L2"
}
}
asset.onInitialize(function()
openspace.addSceneGraphNode(EuclidTrailSun)
openspace.addSceneGraphNode(EuclidTrailEarth)
openspace.addSceneGraphNode(EuclidTrailOrbit)
openspace.addSceneGraphNode(EuclidTrailCoRevOrbit)
end)
asset.onDeinitialize(function()
openspace.removeSceneGraphNode(EuclidTrailCoRevOrbit)
openspace.removeSceneGraphNode(EuclidTrailOrbit)
openspace.removeSceneGraphNode(EuclidTrailEarth)
openspace.removeSceneGraphNode(EuclidTrailSun)
end)
asset.export(EuclidTrailSun)
asset.export(EuclidTrailEarth)
asset.export(EuclidTrailOrbit)
asset.export(EuclidTrailCoRevOrbit)
asset.meta = {
Name = "Euclid Trails",
Version = "1.0",
Description = "This asset contains the trails for the Euclid spacecraft relative to the Earth and the Sun.",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license"
}

View File

@@ -0,0 +1,89 @@
{
"assets": [
"base",
"base_keybindings",
"events/toggle_sun",
"scene/solarsystem/telescopes/euclid/euclid",
"scene/solarsystem/planets/earth/earth"
],
"camera": {
"anchor": "Euclid",
"type": "goToNode"
},
"delta_times": [
1.0,
5.0,
30.0,
60.0,
300.0,
1800.0,
3600.0,
43200.0,
86400.0,
604800.0,
1209600.0,
2592000.0,
5184000.0,
7776000.0,
15552000.0,
31536000.0,
63072000.0,
157680000.0,
315360000.0,
630720000.0
],
"mark_nodes": [
"Earth",
"Sun",
"Euclid"
],
"meta": {
"author": "OpenSpace Team",
"description": "A profile showing the trajectory of ESA's Euclid mission",
"license": "MIT License",
"name": "Euclid",
"url": "https://www.openspaceproject.com",
"version": "1.0"
},
"properties": [
{
"name": "Scene.L2.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
},
{
"name": "Scene.L2Label.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
},
{
"name": "Scene.L2SmallLabel.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
},
{
"name": "Scene.EuclidTrailSun.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
},
{
"name": "Scene.EuclidTrailEarth.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
},
{
"name": "Scene.EuclidTrailOrbit.Renderable.Enabled",
"type": "setPropertyValueSingle",
"value": "false"
}
],
"time": {
"is_paused": false,
"type": "relative",
"value": "-1d"
},
"version": {
"major": 1,
"minor": 3
}
}