RenderableSolarImagery
Inherits Renderable
A RenderableSolarImagery renders time-sequenced solar observations from spacecraft instruments as textured planes in 3D space. The renderable automatically displays the image corresponding to the current simulation time.
Multiple instruments are supported (e.g., AIA-171, AIA-193, EUVI-A-171), and the active instrument can be selected via the ActiveInstrument property.
For optimal performance, images are decoded asynchronously in the background and cached to disk. When changing time, the previous image remains visible until the new one is ready. The renderable also predicts and pre-loads nearby frames based on playback direction to ensure smooth playback.
The DownsamplingLevel property can be used to reduce image resolution for improved performance. A value of 0 uses full resolution, while higher values progressively reduce the resolution (1 = half, 2 = quarter, etc.).
Visual adjustments can be made via color mapping (transfer functions), gamma, and contrast controls. Coronagraph instruments can optionally display a frustum visualization.
Members
Name |
Documentation |
Type |
Description |
Optional |
|---|---|---|---|---|
|
The root directory containing solar imagery organized by instrument. Each subdirectory represents an instrument and contains its observation images. |
|
Value of type ‘Directory’ |
No |
|
Contrast of the current spacecraft imagery. |
|
Value of type ‘Double’ |
Yes |
|
Decides if the object should be dimmed (i.e. faded out) when the camera is in the sunny part of an atmosphere. |
|
Value of type ‘Boolean’ |
Yes |
|
Controls how much to downsample the original data (0 is original resolution). |
|
Value of type ‘Integer’ |
Yes |
|
Enables border around the current spacecraft imagery. |
|
Value of type ‘Boolean’ |
Yes |
|
Determines whether this object will be visible or not. |
|
Value of type ‘Boolean’ |
Yes |
|
Enables frustum around the current spacecraft imagery. |
|
Value of type ‘Boolean’ |
Yes |
|
Specifies how the plane is rendered: front side only, with a solid backside, or textured on both sides. |
|
In list { FrontOnly, Solid Back, Double Sided } |
Yes |
|
Gamma of the current spacecraft imagery. |
|
Value of type ‘Double’ |
Yes |
|
Controls how close to the Sun to render the imagery. |
|
Value of type ‘Double’ |
Yes |
|
This value determines the opacity of this renderable. A value of 0 means completely transparent. |
|
In range: ( 0, 1) |
Yes |
|
Determines how many images to pre-fetch after the current image frame. |
|
Value of type ‘Integer’ |
Yes |
|
Determines how many images to pre-fetch before the current image frame. |
|
Value of type ‘Integer’ |
Yes |
|
A value that specifies if the renderable should be rendered in the Background, Opaque, Pre-/PostDeferredTransparency, Overlay, or Sticker rendering step. |
|
In list { Background, Opaque, PreDeferredTransparent, Overlay, PostDeferredTransparent, Sticker } |
Yes |
|
The instrument to display on startup (e.g., “AIA-171”). If not specified, the first available instrument is used. |
|
Value of type ‘String’ |
Yes |
|
A single tag or a list of tags that this renderable will respond to when setting properties. |
|
Value of type ‘Table’, or Value of type ‘String’ |
Yes |
|
The type of the renderable. |
|
Value of type ‘String’ |
Yes |
|
Output information about image decoding. |
|
Value of type ‘Boolean’ |
Yes |
Inherited members from Renderable
Name |
Documentation |
Type |
Description |
Optional |
|---|---|---|---|---|
|
Decides if the object should be dimmed (i.e. faded out) when the camera is in the sunny part of an atmosphere. |
|
Value of type ‘Boolean’ |
Yes |
|
Determines whether this object will be visible or not. |
|
Value of type ‘Boolean’ |
Yes |
|
This value determines the opacity of this renderable. A value of 0 means completely transparent. |
|
In range: ( 0, 1) |
Yes |
|
A value that specifies if the renderable should be rendered in the Background, Opaque, Pre-/PostDeferredTransparency, Overlay, or Sticker rendering step. |
|
In list { Background, Opaque, PreDeferredTransparent, Overlay, PostDeferredTransparent, Sticker } |
Yes |
|
A single tag or a list of tags that this renderable will respond to when setting properties. |
|
Value of type ‘Table’, or Value of type ‘String’ |
Yes |
|
The type of the renderable. |
|
Value of type ‘String’ |
Yes |
Asset Examples
1local stereo_a = asset.require("scene/solarsystem/missions/stereo/stereo_a")
2local coreKernels = asset.require("spice/core")
3local kernels = asset.require("scene/solarsystem/missions/stereo/kernels")
4
5
6
7-- We use the Stereo position with an added rotation to stabilize the image and remove
8-- any wobble effect since we don't have the CK kernels
9local StereoPosition = {
10 Identifier = "STEREO_A_Position_Ecliptic",
11 Parent = stereo_a.Position.Identifier,
12 Transform = {
13 -- This rotation removes tiny wobbles and fixes the frame in place
14 Rotation = {
15 Type = "SpiceRotation",
16 SourceFrame = coreKernels.Frame.EclipJ2000,
17 DestinationFrame = coreKernels.Frame.Galactic
18 }
19 },
20 GUI = {
21 Name = "STEREO A Position",
22 Path = "/Solar System/Missions/STEREO A",
23 Description = [[The position of the STEREO-A spacecraft with an added rotation to
24 reduce wobble effects.]],
25 Hidden = true,
26 Focusable = false
27 }
28}
29
30local SolarImagery = {
31 Identifier = "SolarImagery_STEREO_A",
32 Parent = StereoPosition.Identifier,
33 TimeFrame = {
34 Type = "TimeFrameInterval",
35 Start = stereo_a.MissionBegin,
36 End = stereo_a.MissionEnd
37 },
38 Renderable = {
39 Type = "RenderableSolarImagery",
40 ImageDirectory = openspace.absPath("${SYNC_DYNAMIC}/solarbrowsing/stereo-a")
41 },
42 GUI = {
43 Name = "STEREO A Imagery",
44 Path = "/Solar System/Sun/Solar Imagery",
45 Description = [[Time-resolved solar imagery from NASA's Solar TErrestrial RElations
46 Observatory (STEREO-A). Images from multiple instruments can be browsed over time and
47 are projected onto a plane positioned relative to the Sun. Instrument-specific color
48 mappings help highlight different solar phenomena such as active regions, flares,
49 and coronal structures.]],
50 Focusable = false
51 }
52}
53
54
55asset.onInitialize(function ()
56 openspace.addSceneGraphNode(StereoPosition)
57 openspace.addSceneGraphNode(SolarImagery)
58end
59)
60
61asset.onDeinitialize(function ()
62 openspace.removeSceneGraphNode(SolarImagery)
63 openspace.removeSceneGraphNode(StereoPosition)
64end
65)
66
67asset.export("Imagery", SolarImagery)
68
69
70
71asset.meta = {
72 Name = "STEREO Solar Imagery",
73 Description = [[Time-resolved solar imagery from NASA's STEREO-A spacecraft,
74 showing the Sun in multiple wavelengths captured by its onboard instruments.]],
75 Author = "OpenSpace Team",
76 URL = "https://openspaceproject.com",
77 License = "MIT license"
78}