celestia-gnss/README.md

4.9 KiB

Spacecruft Celestia GNSS

Celestia is a "real-time space simulation that lets you experience our universe in three dimensions".

Celestia contains many celestial objects, but few that are man made, such as Hubble. It has a TLE for the ISS, but it doesn't update it.

The present repo contains a script to import GNSS ("GPS") satellite TLE files into Celestia. It could be easily updated for any other source of TLEs.

celestia-gnss-screenshot

Quick & Dirty Install

If you just want to import the pre-generated file into Celestia for a look, just copy this file into your extras folder or similar.

Install celestia-gnss

Install thusly to generate your own .ssc files.

git clone https://spacecruft.org/spacecruft/celestia-gnss
cd celestia-gnss
sudo apt update
sudo apt install python3-pip
# Many ways to do python setup, here is one:
pip3 install --upgrade --user pip
# Make sure your path includes `~/.local/bin`, if not, add it.
which pip
# Should be ~/.local/bin/pip
pip install --user -r requirements.txt

Run celestia-gnss

Example (crufty example, if you have perms):

./tle2ssc > /usr/share/celestia/extras-standard/gnss/gnss.ssc

Use in Celestia

Then copy the satellites you want into your Celestia extras dir. Crufty bad way to do it, example:

sudo cp -a extras/gnss/gnss.ssc /usr/share/celestia/extras-standard/

Each system, GPS, Galileo, Glonass, Beidou, or the GNSS files can be used which include all four.

See Also

Spacecruft

Spacecruft:

Celestia

Upstream Celestia:

Celestia forum thread about celestia-gnss:

TLE Conversion

TLE Conversion Spreadsheet by Grant Hutchison from July 2003, the basis for the formulas in the tle2ssc script.

Useful formula from here too:

Solar System Catalog

"Solar System Catalog" files are primarily used to define the objects which can be found in a stellar system, such as planets, moons, asteroids, comets, and spacecraft. They also have four other uses: they can define alternative surface textures, locations on or near an object, and orbital reference points. An SSC file can also edit objects which have been defined in other SSC catalog files.

Info on .ssc files:

In Celestia name "Galileo" is used for the other spacecraft, not for the EU GNSS. So the name used in development here adds -gnss, ala, galileo-gnss.ssc, whereas the other GNSS don't.

Example .ssc file contents:

"1997-035A" "Sol/Earth" {
  Class "spacecraft"
  # Mesh
  Radius  0.005

  EllipticalOrbit {
    Epoch  2459718.94467728
    Period  0.49859567
    SemiMajorAxis  26560.345
    Eccentricity  0.0057297
    Inclination  55.5062
    AscendingNode  156.8049
    ArgOfPericenter  51.2220
   MeanAnomaly  309.3262
  }
  Obliquity  55.5062
  EquatorAscendingNode  156.8049
  RotationOffset  80.2289
  # Orientation  [  ]
}

TLE Sources

GNSS (All)

Beidou (China)

Galileo (Europe)

Glonass (Russia)

GPS (USA)

Spice

Spice TLE: "Evaluate NORAD two-line element data for earth orbiting spacecraft."

SGP4

SPG4

Skyfield

Skyfield

3D Models

Celestia uses an old 3D proprietary format from an old 3D application in .3ds format. It also has it's own format .cmod.

Galileo

Galileo 3D models are from the ESA:

3D Model Conversion

The galileo.obj file from the ESA can be read by cmodview in the celestia-tools package. The file can be saved in cmodview as galileo-gnss.cmod and then read by Celestia.

All GNSS satellites are using the Galileo model right now. XXX

Textures also need to be added. XXX

Blender

Using blender-2.79b didn't work to convert a .obj file to .3ds that worked in Celestia.

Status

Alpha, under development.

Output works in Celestia. Orbits are not confirmed correct.

License / Copyright

Upstream sources under their respective copyrights.

Copyright (C) 2022 Jeff Moe.

License: GPLv2 or any later version.