Satellite Database

About the Satellite Database

Purpose & Functionality

The Satellite Database archives orbital data of satellites and other space objects in the form of Two-Line Elements. The data can be searched and retrieved via search form or API.

Data Sources

The orbital data is read out of TLE-files collected from CelesTrak on an hourly basis. The database started continuously collecting and archiving data on March 10th, 2023.

The frequency data comes from various sources and is registered manually.

Database Schema

Database diagram of the Satellite Database with four tables: SatelliteData, Satellite, FrequencySource and Frequency.
         SatelliteData stands in a many-to-one relationship to Satellite,
         as does Satellite to FrequencySource and Frequency to FrequencySource.
         SatelliteData fields in name type pairs: id integer, timestamp datetime, satellite_id integer, epoch string,
         mean_motion_dot string, mean_motion__ddot string, bstar string, element_set_no integer, inclination decimal,
         ra_of_asc_node decimal, eccentricity decimal, arg_of_pericenter decimal, mean_anomaly decimal,
         mean_motion decimal, rev_at_epoch int, norad_str string.
         Satellite fields in name type pairs: id integer primary key, object_name string, norad_cat_id int,
         frequency_source_id int, int_desg string, ephemeris_type int, tle_filename string.
         FrequencySource fields in name type pairs: id integer, name string, regex_sat_name string.
         Frequency fields in name type pairs: id int, frequency_source_id integer, start_frequency decimal,
         end_frequency decimal, start_date datetime, end_date datetime.

The primary key for all tables is id, which is auto-incremented as entries are being added to the database. Additionally, each table requires certain fields to either be unique by themselves or in combination with other fields.

Each Satellite Data entry corresponds to a Two-Line-Element Set, and it must have a unique combination of satellite_id and timestamp. This is to ensure the same TLE isn’t read in twice and that there isn’t any conflicting data.

Satellites represent the satellites themselves, each uniquely identified with a NORAD ID (norad_cat_id).

Frequencies are assigned to certain satellites using a combination of Frequency Source and Frequency. Each Frequency Source has a unique name and a regex expression, by which it is assigned to Satellites whose name are matched by the expression. A Frequency Source can have numerous Frequencies assigned to it, which store a frequency range and time range during which the frequency was in use.

Development & Source Code

The Satellite Database is an Open Research project by the Space Geodesy group at ETH Zurich. You can find the source code here.