Script to add GPS, Galileo, Glonass, and Beidou GNSS satellites to Celestia. https://spacecruft.org/spacecruft/celestia-gnss
Go to file
Jeff Moe c1ccc4a5a2 most fields converting... 2022-05-21 17:54:49 -06:00
config platforms file with sat names for pyorbital 2022-05-21 13:22:54 -06:00
extras updated galileo tle 2022-05-21 17:54:27 -06:00
pics GNSS for Celestia 2022-05-20 22:54:55 -06:00
.gitignore GNSS for Celestia 2022-05-20 22:54:55 -06:00
LICENSE GNSS for Celestia 2022-05-20 22:54:55 -06:00
README.md sample TLE 2022-05-21 14:30:57 -06:00
requirements.txt most fields converting... 2022-05-21 17:54:49 -06:00
tle2ssc most fields converting... 2022-05-21 17:54:49 -06:00

README.md

Spacecruft Celestia GNSS

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

It 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.

There is a spreadsheet that you can enter a TLE into it and it generates an .ssc file that Celestia can read. Using a spreadsheet is a bit awkward, and hard to automate.

It would be real swell to be able to add TLEs to Celestia more easily. Then all the GNSS satellites could be added. Or SatNOGS...

It will take the data that generates this:

spacecruft-galileo

And render it in this application: celestia-screenshot

See Also

Spacecruft

Spacecruft:

Celestia

Upstream Celestia:

TLE Conversion

TLE Conversion Spreadsheet:

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  [  ]
}

Galileo

Galileo 3D models are from the ESA:

TLE Sources

Beidou (China)

Galileo (Europe)

Glonass (Russia)

GNSS (All)

GPS (USA)

Spice

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

pyorbital

Orbital and astronomy computations in python.

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.

3D Model Conversion

Recent versions of Blender don't export .3ds format. But old versions of Blender, such as 2.79b do work. Get an old version here:

Launch blender, import, export.

# Go to https://gssc.esa.int/education/galileo3d/
# and download the Galileo_3D.zip file.
# It generates a unique URL, afaict.
unzip Galileo_3D.zip

# Get old Blender
wget https://download.blender.org/release/Blender2.79/blender-2.79b-linux-glibc219-x86_64.tar.bz2
tar xf blender-2.79b-linux-glibc219-x86_64.tar.bz2
cd blender-2.79b-linux-glibc219-x86_64
./blender

Blender creates a new file on launch.

Go to File --> Import --> Wavefront (.obj).

Import the file, such as galileo.obj.

Go to File --> Export --> 3D Studio (.3ds).

Save the file, such as galileo-gnss.3ds.

The galileo-gnss.3ds file created this way didn't render in Celestia. :(

Install celestia-gnss

Install thusly.

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

Run thusly.

Convert a TLE, example:

./tle2ssc extras/galileo-gnss/galileo.txt

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/galileo-gnss/ /usr/share/celestia/extras-standard/

Issues

pyorbital doesn't support geostationary orbits. It gives the error: Deep space calculations not supported

I thought that was what pyorbital was for. It is mentioned in a bug report, but not in the docs. Hmm.

See issue:

I think the Deep space error comes when trying to use TLEs for computing
geostationary or deep space orbits, with pyorbital doesn't support yet.

License / Copyright

Upstream sources under their respective copyrights.

Copyright (C) 2022 Jeff Moe.

License: GPLv2 or any later version.