Galmon observers convert to Celestia SSC working

main
root 2022-05-23 16:35:59 -06:00
parent 2ec5c5c97b
commit 7ddf62a655
5 changed files with 684 additions and 49 deletions

View File

@ -1,6 +1,4 @@
# Spacecruft Celestia Galmon
***WORK IN PROGRESS***
`celestia-galmon` is a set of scripts to retrieve Galmon GNSS
data and feed it to Celestia for visualization.
@ -14,11 +12,6 @@ running more than 50 receivers."*
Celestia is a *"real-time space simulation that lets you experience our
universe in three dimensions".*
* https://galmon.eu
* https://celestia.space
# Screenshots
Screenshots of running Celestia with GNSS satellites, from
`celestia-gnss`.
@ -37,18 +30,38 @@ including Galmon data.
# Install
Install thusly.
Quick & dirty if you want to use pre-generated file:
```
apt update
apt install python3-pip
pip install --user -r requirements.txt
sudo mkdir -p /usr/share/celestia/extras-standard/galmon
# Use your username for debian
sudo chown debian:debian /usr/share/celestia/extras-standard/galmon
wget \
-O /usr/share/celestia/extras-standard/galmon/galmon-observers.ssc \
https://spacecruft.org/spacecruft/celestia-galmon/raw/branch/main/extras/galmon/galmon-observers.ssc
# Then (re)start Celestia.
```
If you want to generate your own files:
```
# Quick & dirty Python setup
sudo apt update
sudo apt install python3-pip
pip install --user --upgrade pip
pip install --user -r requirements.txt
```
# Run
Run thusly.
Retrieve Galmon observers, output SSC format for Celestia:
```
./celestia-galmon
./celestia-galmon-observers
# Save file for Celestia:
./celestia-galmon-observers > \
/usr/share/celestia/extras-standard/galmon/galmon-observers.ssc
```
# Galmon Data
@ -109,16 +122,9 @@ Observers:
* https://berthub.eu/articles/posts/galmon-project/
# TODO
Do.
* All the things.
# Status
Alpha, under development.
# License / Copyright
Unofficial project, not part of Celestia or Galmon.
Upstream sources under their respective copyrights.

View File

@ -1,31 +0,0 @@
#!/usr/bin/python3
"""
celestia-galmon
Retrieve Galmon GNSS data and feed it to Celestia for visualization.
Copyright (C) 2022, Jeff Moe, jebba.
Authors: Jeff Moe
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
# Usage:
# celestia-galmon
# Example:
# ./celestia-galmon > /usr/share/celestia/extras-standard/galmon/galmon.foo
import os
import json
import simplejson as json

View File

@ -0,0 +1,50 @@
#!/usr/bin/python3
"""
celestia-galmon-observers
Retrieve Galmon observers, output SSC format for Celestia.
Copyright (C) 2022, Jeff Moe, jebba.
Author: Jeff Moe
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
# Usage:
# celestia-galmon-observers
# Example:
# ./celestia-galmon-observers > \
# /usr/share/celestia/extras-standard/galmon/galmon-observers.ssc
import os
import json
import pandas as pd
#observers_url='https://galmon.eu/observers.json'
observers_url='data/observers.json'
observers = pd.read_json(observers_url, orient='records')
for x in range(len(observers.id)):
print('Location "Observer ', observers["id"][x],
', ', observers["owner"][x], '" ',
'"Sol/Earth"', sep="")
print('{')
print(' LongLat [', observers["longitude"][x],
observers["latitude"][x], "%.3f" %(observers["h"][x] / 1000),
']')
print(' Importance 1000.00')
print(' Type "Observatory"')
print(' }')
print()

View File

@ -0,0 +1,609 @@
Location "Observer 3, PA3FYM" "Sol/Earth"
{
LongLat [ 5.1 52.2 0.063 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 5, W6LHI (Martin)" "Sol/Earth"
{
LongLat [ -122.0 36.9 -0.019 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 14, " "Sol/Earth"
{
LongLat [ 4.3 51.9 0.076 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 15, @0xC5E3" "Sol/Earth"
{
LongLat [ 16.3 48.2 0.305 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 16, KB6GE" "Sol/Earth"
{
LongLat [ -118.4 33.9 -0.025 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 17, " "Sol/Earth"
{
LongLat [ 18.4 -33.9 0.053 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 19, PA3FYM" "Sol/Earth"
{
LongLat [ 5.1 52.2 0.068 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 20, KB6GE pt/mh" "Sol/Earth"
{
LongLat [ -170.7 -14.3 0.064 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 22, thebaldgeek" "Sol/Earth"
{
LongLat [ -117.0 33.4 0.344 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 23, CTF" "Sol/Earth"
{
LongLat [ -46.5 -23.5 0.773 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 25, CTF" "Sol/Earth"
{
LongLat [ -46.5 -23.5 0.762 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 26, ssb" "Sol/Earth"
{
LongLat [ 37.8 55.6 0.203 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 27, Phil (craag)" "Sol/Earth"
{
LongLat [ -0.5 51.2 0.106 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 28, gizmoguy" "Sol/Earth"
{
LongLat [ 175.3 -37.7 0.060 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 29, Phil (craag)" "Sol/Earth"
{
LongLat [ -5.1 50.0 0.168 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 31, jeffpc" "Sol/Earth"
{
LongLat [ -71.1 42.4 0.017 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 32, jeffpc" "Sol/Earth"
{
LongLat [ -71.1 42.4 0.033 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 34, sarnold" "Sol/Earth"
{
LongLat [ -122.7 45.4 0.108 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 35, " "Sol/Earth"
{
LongLat [ 17.0 -22.5 1.703 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 36, " "Sol/Earth"
{
LongLat [ 4.6 52.3 0.058 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 38, ak_hepcat (KL5BN)" "Sol/Earth"
{
LongLat [ -149.7 61.1 0.220 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 40, ISHCHATUL" "Sol/Earth"
{
LongLat [ 35.1 31.7 0.726 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 44, sarnold" "Sol/Earth"
{
LongLat [ -122.7 45.4 0.101 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 45, sarnold" "Sol/Earth"
{
LongLat [ -122.7 45.4 0.106 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 46, sarnold" "Sol/Earth"
{
LongLat [ -122.7 45.4 0.104 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 48, " "Sol/Earth"
{
LongLat [ -105.2 39.8 1.829 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 49, " "Sol/Earth"
{
LongLat [ 32.5 0.2 -6.112 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 50, darkk.net.ru" "Sol/Earth"
{
LongLat [ 30.2 59.9 0.016 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 52, darkk.net.ru" "Sol/Earth"
{
LongLat [ 73.3 54.9 0.129 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 53, mmc" "Sol/Earth"
{
LongLat [ 138.6 -34.9 0.072 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 54, PA3FYM" "Sol/Earth"
{
LongLat [ 5.1 52.2 0.057 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 55, ssb" "Sol/Earth"
{
LongLat [ 37.2 55.6 0.277 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 56, ssb" "Sol/Earth"
{
LongLat [ 37.2 55.6 0.250 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 59, jared" "Sol/Earth"
{
LongLat [ -83.8 42.2 0.249 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 60, jared" "Sol/Earth"
{
LongLat [ -83.8 42.2 0.247 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 64, " "Sol/Earth"
{
LongLat [ -78.9 39.6 0.548 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 69, czane" "Sol/Earth"
{
LongLat [ -157.8 21.3 0.067 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 71, edmonds" "Sol/Earth"
{
LongLat [ -84.3 33.7 0.297 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 74, edmonds" "Sol/Earth"
{
LongLat [ -84.3 33.7 0.291 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 75, chtitux" "Sol/Earth"
{
LongLat [ 55.3 -20.9 0.120 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 77, KB6GE" "Sol/Earth"
{
LongLat [ -118.4 33.9 -0.033 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 80, reddfoxx" "Sol/Earth"
{
LongLat [ -85.7 38.2 0.111 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 81, " "Sol/Earth"
{
LongLat [ -150.0 61.1 0.056 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 83, " "Sol/Earth"
{
LongLat [ 115.9 -32.0 -0.018 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 86, ak_hepcat (KL5BN)" "Sol/Earth"
{
LongLat [ -149.7 61.1 0.218 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 87, " "Sol/Earth"
{
LongLat [ -78.9 39.6 0.538 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 88, " "Sol/Earth"
{
LongLat [ 26.4 -30.8 1.373 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 89, SJC" "Sol/Earth"
{
LongLat [ 4.6 52.2 0.053 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 90, " "Sol/Earth"
{
LongLat [ 170.3 -45.8 0.057 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 91, M0EYT" "Sol/Earth"
{
LongLat [ -2.0 50.7 0.100 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 92, ekaftan" "Sol/Earth"
{
LongLat [ -70.6 -33.2 0.727 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 94, ekaftan" "Sol/Earth"
{
LongLat [ -70.6 -33.2 0.723 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 97, " "Sol/Earth"
{
LongLat [ 152.9 -27.4 0.099 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 98, " "Sol/Earth"
{
LongLat [ 145.1 -37.9 0.084 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 101, ssb" "Sol/Earth"
{
LongLat [ 37.2 55.6 0.255 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 103, PA3FYM" "Sol/Earth"
{
LongLat [ 5.1 52.2 0.059 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 104, PA3FYM" "Sol/Earth"
{
LongLat [ 5.1 52.2 -0.010 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 113, " "Sol/Earth"
{
LongLat [ 13.4 42.0 0.743 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 114, i$" "Sol/Earth"
{
LongLat [ 8.6 49.7 0.205 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 115, " "Sol/Earth"
{
LongLat [ -71.1 42.2 0.013 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 117, Zathras" "Sol/Earth"
{
LongLat [ 115.9 -32.0 -0.009 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 118, Criggie_Pi4_in_Woodshed" "Sol/Earth"
{
LongLat [ 172.3 -43.6 0.066 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 120, Neil" "Sol/Earth"
{
LongLat [ 105.8 21.0 0.033 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 121, EI6IZ (Brendan)" "Sol/Earth"
{
LongLat [ -9.3 53.8 0.099 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 128, Jonathan Brewer" "Sol/Earth"
{
LongLat [ 103.8 1.3 0.013 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 130, Matt" "Sol/Earth"
{
LongLat [ 175.4 -37.8 0.197 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 131, Steve Meuse, N1JFU" "Sol/Earth"
{
LongLat [ -71.0 42.0 0.002 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 135, Matt" "Sol/Earth"
{
LongLat [ 175.4 -37.8 0.192 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 165, Upu" "Sol/Earth"
{
LongLat [ -1.8 53.8 0.157 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 166, DH2VA" "Sol/Earth"
{
LongLat [ 8.5 47.3 0.576 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 167, EI6IZ (Brendan)" "Sol/Earth"
{
LongLat [ -9.3 53.8 0.100 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 169, BramJ" "Sol/Earth"
{
LongLat [ 5.2 52.3 0.051 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 171, Leon" "Sol/Earth"
{
LongLat [ 18.6 -33.9 0.098 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 175, " "Sol/Earth"
{
LongLat [ 2.3 48.8 0.116 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 176, WA7JAY (Ron)" "Sol/Earth"
{
LongLat [ -120.9 39.2 0.920 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 177, " "Sol/Earth"
{
LongLat [ 6.8 50.7 0.167 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 178, TDV_Alinsa" "Sol/Earth"
{
LongLat [ -121.7 37.2 0.153 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 179, TDV_Alinsa" "Sol/Earth"
{
LongLat [ -121.7 37.2 0.153 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 183, PJ2BG" "Sol/Earth"
{
LongLat [ -68.8 12.1 0.003 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 184, " "Sol/Earth"
{
LongLat [ 103.8 1.3 0.042 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 187, " "Sol/Earth"
{
LongLat [ 168.3 -46.4 0.015 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 188, oh2ewl" "Sol/Earth"
{
LongLat [ 24.9 60.2 0.091 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 189, Jeff Moe SpaceCruft" "Sol/Earth"
{
LongLat [ -105.2 40.5 1.853 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 190, rowan at impermanent.io" "Sol/Earth"
{
LongLat [ 145.3 -37.8 0.452 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 191, m4tk" "Sol/Earth"
{
LongLat [ 12.0 49.0 0.410 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 192, Jeff Moe SpaceCruft" "Sol/Earth"
{
LongLat [ -105.2 40.5 2.048 ]
Importance 1000.00
Type "Observatory"
}
Location "Observer 200, Septentrio" "Sol/Earth"
{
LongLat [ 4.3 52.0 0.054 ]
Importance 1000.00
Type "Observatory"
}

View File

@ -0,0 +1 @@
pandas