diff --git a/routes/satellite.py b/routes/satellite.py
index d35e199..717a955 100644
--- a/routes/satellite.py
+++ b/routes/satellite.py
@@ -327,13 +327,14 @@ def predict_passes():
except ValueError as e:
return api_error(str(e), 400)
- norad_to_name = {
- 25544: 'ISS',
- 40069: 'METEOR-M2',
- 57166: 'METEOR-M2-3'
- }
-
- sat_input = data.get('satellites', ['ISS', 'METEOR-M2', 'METEOR-M2-3'])
+ norad_to_name = {
+ 25544: 'ISS',
+ 40069: 'METEOR-M2',
+ 57166: 'METEOR-M2-3',
+ 59051: 'METEOR-M2-4',
+ }
+
+ sat_input = data.get('satellites', ['ISS', 'METEOR-M2-3', 'METEOR-M2-4'])
satellites = []
for sat in sat_input:
if isinstance(sat, int) and sat in norad_to_name:
@@ -342,11 +343,12 @@ def predict_passes():
satellites.append(sat)
passes = []
- colors = {
- 'ISS': '#00ffff',
- 'METEOR-M2': '#9370DB',
- 'METEOR-M2-3': '#ff00ff'
- }
+ colors = {
+ 'ISS': '#00ffff',
+ 'METEOR-M2': '#9370DB',
+ 'METEOR-M2-3': '#ff00ff',
+ 'METEOR-M2-4': '#00ff88',
+ }
name_to_norad = {v: k for k, v in norad_to_name.items()}
ts = _get_timescale()
@@ -410,11 +412,12 @@ def get_satellite_position():
sat_input = data.get('satellites', [])
include_track = bool(data.get('includeTrack', True))
- norad_to_name = {
- 25544: 'ISS',
- 40069: 'METEOR-M2',
- 57166: 'METEOR-M2-3'
- }
+ norad_to_name = {
+ 25544: 'ISS',
+ 40069: 'METEOR-M2',
+ 57166: 'METEOR-M2-3',
+ 59051: 'METEOR-M2-4',
+ }
satellites = []
for sat in sat_input:
diff --git a/templates/index.html b/templates/index.html
index 988aae2..292d584 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -11628,7 +11628,8 @@
if (trackedSatellites.length === 0) {
trackedSatellites = [
{ id: 'ISS', name: 'ISS (ZARYA)', norad: '25544', builtin: true, checked: true },
- { id: 'METEOR-M2', name: 'Meteor-M 2', norad: '40069', builtin: true, checked: true }
+ { id: 'METEOR-M2-3', name: 'Meteor-M2-3', norad: '57166', builtin: true, checked: true },
+ { id: 'METEOR-M2-4', name: 'Meteor-M2-4', norad: '59051', builtin: true, checked: true }
];
renderSatelliteList();
}
diff --git a/templates/satellite_dashboard.html b/templates/satellite_dashboard.html
index 6690268..7a04815 100644
--- a/templates/satellite_dashboard.html
+++ b/templates/satellite_dashboard.html
@@ -100,8 +100,8 @@
@@ -602,8 +602,8 @@
let satellites = {
25544: { name: 'ISS (ZARYA)', color: '#00ffff' },
- 40069: { name: 'METEOR-M2', color: '#9370DB' },
- 57166: { name: 'METEOR-M2-3', color: '#ff00ff' }
+ 57166: { name: 'METEOR-M2-3', color: '#ff00ff' },
+ 59051: { name: 'METEOR-M2-4', color: '#00ff88' }
};
const satColors = ['#00ffff', '#9370DB', '#ff00ff', '#00ff00', '#ff6600', '#ffff00', '#ff69b4', '#7b68ee'];
@@ -1063,8 +1063,7 @@
// Satellites that can be handed off to the weather-satellite capture mode
const WEATHER_SAT_KEYS = new Set([
- 'NOAA-15', 'NOAA-18', 'NOAA-19', 'NOAA-20', 'NOAA-21',
- 'METEOR-M2', 'METEOR-M2-3', 'METEOR-M2-4'
+ 'METEOR-M2-3', 'METEOR-M2-4'
]);
function renderPassList() {
diff --git a/utils/database.py b/utils/database.py
index 89fb19d..29aba76 100644
--- a/utils/database.py
+++ b/utils/database.py
@@ -631,10 +631,18 @@ def init_db() -> None:
INSERT OR IGNORE INTO tracked_satellites (norad_id, name, tle_line1, tle_line2, enabled, builtin)
VALUES ('25544', 'ISS (ZARYA)', NULL, NULL, 1, 1)
''')
- conn.execute('''
- INSERT OR IGNORE INTO tracked_satellites (norad_id, name, tle_line1, tle_line2, enabled, builtin)
- VALUES ('40069', 'METEOR-M2', NULL, NULL, 1, 1)
- ''')
+ conn.execute('''
+ INSERT OR IGNORE INTO tracked_satellites (norad_id, name, tle_line1, tle_line2, enabled, builtin)
+ VALUES ('40069', 'METEOR-M2', NULL, NULL, 1, 1)
+ ''')
+ conn.execute('''
+ INSERT OR IGNORE INTO tracked_satellites (norad_id, name, tle_line1, tle_line2, enabled, builtin)
+ VALUES ('57166', 'METEOR-M2-3', NULL, NULL, 1, 1)
+ ''')
+ conn.execute('''
+ INSERT OR IGNORE INTO tracked_satellites (norad_id, name, tle_line1, tle_line2, enabled, builtin)
+ VALUES ('59051', 'METEOR-M2-4', NULL, NULL, 1, 1)
+ ''')
# =====================================================================
# Ground Station Tables (automated observations, IQ recordings)