GPTranslation

Inherits Translation

Defines an object’s orbit from a general perturbation (“GP”) element source rather than from explicitly authored Keplerian parameters. It is intended for orbit descriptions stored in common external formats such as satellite element sets and similar catalog-style orbital data products.

The implementation also supports files that contain multiple element entries. In that case, a specific entry can be selected, allowing a single file to serve as a source for multiple orbiting objects or multiple records of the same kind.

Members

Name

Documentation

Type

Description

Optional

File

Specifies the filename of the general pertubation file.

File

Value of type ‘File’

No

Format

A NORAD-style Two-Line element. Orbit Mean-Elements Message in the KVN notation. CSV format that is provided by Celestrak JPL’s Small Bodies Database. The file format that is contained in the file.

String

In list { TLE, OMM, CSV, SBDB }

No

Element

Specifies the element within the file that should be used in case the file provides multiple general pertubation elements. Defaults to 1.

Integer

Greater than: 0

Yes

Inherited members from Translation

Name

Documentation

Type

Description

Optional

Type

The type of translation that is described in this element. The available types of translations depend on the configuration of the application and can be written to disk on application startup into the FactoryDocumentation.

String

Must name a valid Translation type

No

TimeFrame

The time frame in which this Translation is applied. If the in-game time is outside this range, no translation will be applied.

Table

TimeFrame

Yes

Asset Examples

 1local earthAsset = asset.require("scene/solarsystem/planets/earth/transforms")
 2
 3
 4
 5local omm = asset.resource({
 6  Name = "Satellite CSV Data (ISS)",
 7  Type = "UrlSynchronization",
 8  Identifier = "satellite_csv_data_iss",
 9  Url = "https://liu-se.relay.openspaceproject.com/celestrak?CATNR=25544&FORMAT=csv",
10  Filename = "ISS.txt",
11  SecondsUntilResync = openspace.time.secondsPerDay()
12})
13
14
15local IssPosition = {
16  Identifier = "ISSPosition",
17  Parent = earthAsset.EarthInertial.Identifier,
18  BoundingSphere = 54.5, -- half the width
19  Transform = {
20    Translation = {
21      Type = "GPTranslation",
22      Observer = earthAsset.EarthInertial.Identifier,
23      File = omm .. "ISS.txt",
24      Format = "CSV"
25    }
26  },
27  Tag = { "earth_satellites", "ISS", "space_stations" },
28  GUI = {
29    Name = "ISS Position",
30    Path = "/Solar System/Planets/Earth/Satellites/ISS",
31    Hidden = true
32  }
33}
34
35
36asset.onInitialize(function()
37  openspace.addSceneGraphNode(IssPosition)
38end)
39
40asset.onDeinitialize(function()
41  openspace.removeSceneGraphNode(IssPosition)
42end)
43
44asset.export(IssPosition)
45
46
47
48asset.meta = {
49  Name = "International Space Station Position",
50  Description = "Position for ISS. Data from Celestrak.",
51  Author = "OpenSpace Team",
52  URL = "https://celestrak.org/NORAD/elements/",
53  License = "CC-BY"
54}