From eda0d0b6a019ef5c8c8c7b2f9f1884215d8d6b11 Mon Sep 17 00:00:00 2001 From: Malin E Date: Thu, 5 May 2022 09:31:38 +0200 Subject: [PATCH] Use new JWST kernel with launch data * Add a new trail for the first 30 min of launch relative to EarthIAU --- .../solarsystem/missions/jwst/jwst.asset | 19 ++-- .../solarsystem/missions/jwst/trail.asset | 94 ++++++++++++++----- .../missions/jwst/transforms.asset | 50 ++++++++-- data/profiles/jwst.profile | 4 +- 4 files changed, 127 insertions(+), 40 deletions(-) diff --git a/data/assets/scene/solarsystem/missions/jwst/jwst.asset b/data/assets/scene/solarsystem/missions/jwst/jwst.asset index c0ca553cd4..3a297ff227 100644 --- a/data/assets/scene/solarsystem/missions/jwst/jwst.asset +++ b/data/assets/scene/solarsystem/missions/jwst/jwst.asset @@ -17,13 +17,16 @@ local band = asset.syncedResource({ Version = 1 }) +local launchTime = "2021 DEC 25 12:20:00" +local endTime = "2024 JAN 22 00:00:00" + local JWSTBand = { Identifier = "JWSTBand", Parent = transforms.JWSTPosition.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2021 DEC 25 12:50:00", - End = "2024 JAN 22" + Start = launchTime, + End = endTime }, Transform = { Rotation = { @@ -59,8 +62,8 @@ local JWSTModel = { Parent = transforms.JWSTRotation.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2021 DEC 25 12:50:00", - End = "2024 JAN 22" + Start = launchTime, + End = endTime }, Renderable = { Type = "RenderableModel", @@ -91,8 +94,8 @@ local JWSTFov = { Parent = JWSTModel.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2021 DEC 25 12:50:00", - End = "2024 JAN 22" + Start = launchTime, + End = endTime }, Renderable = { Type = "RenderablePrism", @@ -124,8 +127,8 @@ local JWSTLabel = { Parent = transforms.JWSTPosition.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2021 DEC 25 12:50:00", - End = "2024 JAN 22" + Start = launchTime, + End = endTime }, Renderable = { Type = "RenderableLabels", diff --git a/data/assets/scene/solarsystem/missions/jwst/trail.asset b/data/assets/scene/solarsystem/missions/jwst/trail.asset index a90a0abc62..430baf89a5 100644 --- a/data/assets/scene/solarsystem/missions/jwst/trail.asset +++ b/data/assets/scene/solarsystem/missions/jwst/trail.asset @@ -14,35 +14,76 @@ local kernels = asset.syncedResource({ Name = "JWST Kernel", Type = "HttpSynchronization", Identifier = "jwst_kernels", - Version = 1 + Version = 2 }) --- Trail of JWST relative the Earth for the first month after launch --- Makes histroy of trail to stay at Earth, that a trail relative to L2 won't +local launchTime = "2021 DEC 25 12:20:00" +local detachTime = "2021 DEC 25 12:50:00" +local L2orbitInsertionTime = "2022 JAN 25 00:00:00" +local endTime = "2024 JAN 22 00:00:00" + +-- Trail of JWST relative the Earth Inertial for the first 30 minutes after launch +-- Makes histroy of trail to stay at launch site, that a trail relative to Earth Center won't local JWSTTrailLaunch = { Identifier = "JWSTTrailLaunch", - Parent = earthTransforms.EarthCenter.Identifier, + Parent = earthTransforms.EarthIAU.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2021 DEC 25 12:50:00", - End = "2022 JAN 25" + Start = launchTime, + End = detachTime }, Renderable = { Type = "RenderableTrailTrajectory", Translation = { - Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "horizons_jwst_launch.hrz", - }, + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = 'EARTH', + Frame = 'IAU_EARTH', + Kernels = { kernels .. "webb.bsp" } + }, Color = { 0.9, 0.9, 0.0 }, - StartTime = "2021 DEC 25 12:50:00", - EndTime = "2022 JAN 25", + StartTime = launchTime, + EndTime = detachTime, SampleInterval = 60 -- Sample rate of once per minute }, GUI = { Name = "JWST Launch Trail", Path = "/Solar System/Missions/JWST/Trails", Description = [[ - James Webb Space Telescope Launch Trail relative to Earth. + James Webb Space Telescope Launch Trail relative to Earth IAU. + ]], + } +} + +-- Trail of JWST relative the Earth for the first month after detatching from the rocket +-- Makes histroy of trail to stay at Earth, that a trail relative to L2 won't +local JWSTTrailCruise = { + Identifier = "JWSTTrailCruise", + Parent = earthTransforms.EarthCenter.Identifier, + TimeFrame = { + Type = "TimeFrameInterval", + Start = detachTime, + End = L2orbitInsertionTime + }, + Renderable = { + Type = "RenderableTrailTrajectory", + Translation = { + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = 'EARTH', + Frame = 'GALACTIC', + Kernels = { kernels .. "webb.bsp" } + }, + Color = { 0.9, 0.9, 0.0 }, + StartTime = detachTime, + EndTime = L2orbitInsertionTime, + SampleInterval = 60 -- Sample rate of once per minute + }, + GUI = { + Name = "JWST Cruise Trail", + Path = "/Solar System/Missions/JWST/Trails", + Description = [[ + James Webb Space Telescope Cruise Trail relative to Earth. ]], } } @@ -54,15 +95,18 @@ local JWSTTrailOrbit = { Parent = transforms.L2.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2022 JAN 25", - End = "2024 JAN 22" + Start = L2orbitInsertionTime, + End = endTime }, Renderable = { Type = "RenderableTrailOrbit", Translation = { - Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "horizons_jwst_orbit.hrz", - }, + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = '392', -- L2 + Frame = 'GALACTIC', + Kernels = { kernels .. "webb.bsp" } + }, Color = { 0.9, 0.9, 0.0 }, Period = 182.621099, -- About 6 months Resolution = 183 -- About a sample rate of once per day @@ -81,15 +125,18 @@ local JWSTSunTrail = { Parent = sunTransforms.SolarSystemBarycenter.Identifier, TimeFrame = { Type = "TimeFrameInterval", - Start = "2022 JAN 25", - End = "2024 JAN 22" + Start = L2orbitInsertionTime, + End = endTime }, Renderable = { Type = "RenderableTrailOrbit", Translation = { - Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "horizons_jwst_sun.hrz", - }, + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = 'SSB', + Frame = 'GALACTIC', + Kernels = { kernels .. "webb.bsp" } + }, Color = { 0.0, 0.9, 0.9 }, Period = 365.242, Resolution = 365 -- About a sample rate of once per day @@ -105,6 +152,7 @@ local JWSTSunTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(JWSTTrailLaunch) + openspace.addSceneGraphNode(JWSTTrailCruise) openspace.addSceneGraphNode(JWSTTrailOrbit) openspace.addSceneGraphNode(JWSTSunTrail) end) @@ -112,10 +160,12 @@ end) asset.onDeinitialize(function() openspace.removeSceneGraphNode(JWSTSunTrail) openspace.removeSceneGraphNode(JWSTTrailOrbit) + openspace.removeSceneGraphNode(JWSTTrailCruise) openspace.removeSceneGraphNode(JWSTTrailLaunch) end) asset.export(JWSTTrailLaunch) +asset.export(JWSTTrailCruise) asset.export(JWSTTrailOrbit) asset.export(JWSTSunTrail) diff --git a/data/assets/scene/solarsystem/missions/jwst/transforms.asset b/data/assets/scene/solarsystem/missions/jwst/transforms.asset index b28b859d61..80c529050f 100644 --- a/data/assets/scene/solarsystem/missions/jwst/transforms.asset +++ b/data/assets/scene/solarsystem/missions/jwst/transforms.asset @@ -9,21 +9,45 @@ local horizons = asset.syncedResource({ Version = 3 }) +local kernels = asset.syncedResource({ + Name = "JWST Kernel", + Type = "HttpSynchronization", + Identifier = "jwst_kernels", + Version = 2 +}) + +local launchTime = "2021 DEC 25 12:20:00" +local detachTime = "2021 DEC 25 12:50:00" +local L2orbitInsertionTime = "2022 JAN 25 00:00:00" + local JWSTPosition = { Identifier = "JWSTPosition", - Parent = earthTransforms.EarthCenter.Identifier, + Parent = earthTransforms.EarthIAU.Identifier, Transform = { Translation = { Type = "TimelineTranslation", ShouldInterpolate = false, Keyframes = { - ["2021 DEC 25 12:50:00"] = { - Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "horizons_jwst_launch.hrz", + [launchTime] = { + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = 'EARTH', + Frame = 'IAU_EARTH', + Kernels = { kernels .. "webb.bsp" } }, - ["2022 JAN 25 00:00:00"] = { - Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "horizons_jwst_orbit.hrz", + [detachTime] = { + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = 'EARTH', + Frame = 'GALACTIC', + Kernels = { kernels .. "webb.bsp" } + }, + [L2orbitInsertionTime] = { + Type = 'SpiceTranslation', + Target = '170', -- JWST + Observer = '392', -- L2 + Frame = 'GALACTIC', + Kernels = { kernels .. "webb.bsp" } } } }, @@ -64,7 +88,14 @@ local JWSTRotation = { -- Reparent the JWSTPosition node when the data changes at 25 Jan 2022 asset.onInitialize(function() openspace.scriptScheduler.loadScheduledScript( - "2022 JAN 25 00:00:00", + detachTime, + [[openspace.setParent("JWSTPosition", "EarthCenter")]], + [[openspace.setParent("JWSTPosition", "EarthIAU")]], + "", + 1 -- Not default group, never clear this script + ) + openspace.scriptScheduler.loadScheduledScript( + L2orbitInsertionTime, [[openspace.setParent("JWSTPosition", "L2")]], [[openspace.setParent("JWSTPosition", "EarthCenter")]], "", @@ -72,16 +103,19 @@ asset.onInitialize(function() ) openspace.addSceneGraphNode(JWSTPosition) + openspace.addSceneGraphNode(BufferRotation) openspace.addSceneGraphNode(JWSTRotation) end) asset.onDeinitialize(function() openspace.removeSceneGraphNode(JWSTRotation) + openspace.removeSceneGraphNode(BufferRotation) openspace.removeSceneGraphNode(JWSTPosition) openspace.scriptScheduler.clear(1) end) asset.export(JWSTPosition) +asset.export(BufferRotation) asset.export(JWSTRotation) diff --git a/data/profiles/jwst.profile b/data/profiles/jwst.profile index 1de0b9effc..20b8bb45c4 100644 --- a/data/profiles/jwst.profile +++ b/data/profiles/jwst.profile @@ -46,7 +46,7 @@ "identifier": "profile.set.jwst_launch", "is_local": false, "name": "Set to JWST launch time", - "script": "openspace.time.setDeltaTime(1); openspace.time.setTime('2021-12-25T12:50:00');" + "script": "openspace.time.setDeltaTime(1); openspace.time.setTime('2021-12-25T12:20:01');" }, { "documentation": "Toggle JWST trail relative to the Sun", @@ -319,7 +319,7 @@ ], "time": { "type": "absolute", - "value": "2021-12-25T12:50:00" + "value": "2021-12-25T12:20:01" }, "version": { "major": 1,