Satellite Database Files |
To obtain information about spacecraft using STK database files, use the StkSatelliteDatabase class. This type uses a directory and a base filename to identify a set of files with the same name, but differing extensions, which together define the database. For more information on the format of these files, see the section on the database format below.
STK uses a "satellite database" to encode satellite ephemeris and metadata available from Celestrak and other sources.
After instantiating an instance of StkSatelliteDatabase, queries can be made to obtain a set of satellites matching a set of criteria. The following example demonstrates how to query the database for satellites:
StkSatelliteDatabase db = new StkSatelliteDatabase(dbDirectory, "stkSatDb"); // Create a query object and then populate it with the properties to query on. // Regular expressions are used to query on strings. StkSatelliteDatabaseQuery query = new StkSatelliteDatabaseQuery { CommonName = new Regex("QUICK"), MinimumApogee = 200000.0, }; // Get the database entries matching the query and print out the SSC number of each. foreach (StkSatelliteDatabaseEntry entry in db.GetEntries(query)) { Console.WriteLine(entry.SatelliteNumber); }
A satellite database is comprised of a total of six files which have the same base filename with different file extensions. The file extension determines the type of data contained by that file. Not all files are required. If an optional data file is not present, then that information will be silently omitted from the database entries.
File | Contents | Required? |
---|---|---|
Main database file | Required | |
Frequency Information | Optional | |
Write Ups | Optional | |
Owner/Mission | Optional | |
Two-line Element Sets | Optional | |
Generic database information | Optional |
The first three files contain fixed-width fields, where one row represents a single entry. The remaining contain a standard text format.
This is the main satellite database file; it contains all searchable fields. The format, starting at column zero, is as follows:
Column | Width | Description |
---|---|---|
0-4 | 5 | SSC number. Valid values are 00001 - 99999. Leading zeros are expected. |
5-19 | 15 | Common name. This is any common name that may be used. There may be multiple entries for a satellite; these may differ in the common name. |
20-34 | 15 | Official name. This is the unique official name for the entry. |
35-45 | 11 | International number. Unique number assigned to all objects achieving orbit and observed by U.S. Strategic Command (USSTRATCOM). |
46-55 | 10 | Owner/country. Owner of satellite. |
56-65 | 10 | Mission. Category of mission. |
66-68 | 3 | Launch site. May be abbreviated. |
69-76 | 8 | Launch date, in YYYYMMDD format. |
77-80 | 4 | Launch time (UTC), in HHMM format (0000-2359). |
81-100 | 20 | Orbit description, for example, heliocentric orbit, or for decayed objects, the decay date. |
101-104 | 4 | This field is blank. |
105-112 | 8 | Mass in kilograms. This is the dry mass of the satellite. |
113-118 | 6 | Apogee in kilometers above the surface. |
119-123 | 5 | Perigee in kilometers above the surface. |
124-130 | 7 | Period, the time in minutes for the satellite to complete one revolution of the Earth. This number is rounded to nearest tenth of a minute. |
131-135 | 5 | Inclination, the angle (in degrees) between the plane of the orbit and the equatorial plane of the planet. |
136-140 | 5 | This field is blank. |
141-148 | 8 | Status (Active, Inactive, or Unknown). |
149-156 | 8 | Date of last database update (YYYYMMDD) |
This is the frequency file; it contains all downlink frequencies known for the satellite. Frequencies are stored in Megahertz. Currently, this information is for description purposes only. There may be multiple entries for a particular satellite. The format, starting at column zero, is as follows:
Column | Width | Description |
---|---|---|
0-4 | 5 | SSC number. Valid values are 00001 - 99999. Leading zeros are expected. |
5-11 | 7 | Low frequency. |
12-19 | 7 | High frequency. |
This is the write up file. There can be multiple rows for a single satellite. The format, starting at column zero, is as follows:
Column | Width | Description |
---|---|---|
0-4 | 5 | SSC number. Valid values are 00001 - 99999. Leading zeros are expected. |
5-49 | 45 | Write up text. |
This is the Owner/Mission file. It contains a list of all the valid owners and missions for the database, and defines the lists returned by the GetOwners and GetMissions methods.
BEGIN Owner ARGN ASRA ESA ESRO UK US END Owner BEGIN Mission Astronomy Comm Earth Sci Engineer Human Crew Unknown END Mission
This file contains two-line element sets (TLEs) for the satellites in the database. The element sets represent the latest available TLE data for each satellite.
1 00005U 58002B 05015.94626345 -.00000062 00000-0 -10317-3 0 9658 2 00005 34.2544 279.4240 1851477 235.3377 105.8748 10.83848344594048 1 00011U 59001A 05015.08582723 .00000155 00000-0 62942-4 0 1094 2 00011 32.8742 252.5821 1484798 239.7234 104.8236 11.82002579949142 1 00012U 59001B 05015.81379938 .00000334 00000-0 20907-3 0 5848 2 00012 32.8922 192.9596 1681078 80.7514 297.8531 11.40765732878338 1 00016U 58002A 05015.94728841 .00000029 00000-0 13838-4 0 3987 2 00016 34.2736 202.9570 2031906 271.0047 65.9929 10.47957803867837 1 00020U 59007A 05015.35273971 .00000630 00000-0 26956-3 0 5357 2 00020 33.3472 351.0938 1690744 52.6138 321.6759 11.50473782580498 1 00022U 59009A 05015.95064910 .00000663 00000-0 92921-4 0 1783 2 00022 50.2929 278.4707 0179209 252.3746 105.7553 14.80402097387262 1 00029U 60002B 05013.90124256 .00000037 00000-0 38295-4 0 3936 2 00029 48.3834 186.5671 0024985 314.7880 45.0995 14.71345039388318 1 00045U 60007A 05015.74008867 .00000100 00000-0 53717-4 0 4356 2 00045 66.6974 78.4199 0253333 89.3317 273.6828 14.31832518315974
This is the generic database file, which contains version information and the date of last update of the database. This information is returned from the Version and LastUpdateDate properties.
BEGIN DatabaseUpdate Version 1.1 LastUpdate 20160616 END DatabaseUpdate
In order to use satellite information in other analysis in DME Component Libraries, it is useful to create a Platform object which represents the satellite. To make this easy, extension methods are defined in StkSatelliteDatabaseEntryExtensions and StkSatelliteDatabaseExtensions that create a platform from a single database entry, or create a list of platforms for all entries matching a query, as the following example demonstrates:
foreach (StkSatelliteDatabaseEntry entry in db.GetEntries(query)) { // A Platform object can be created from a single database entry. Platform platform = entry.CreatePlatform(); } // Or, a list of Platforms can be created from all entries matching a query. List<Platform> platforms = db.CreatePlatforms(query);
AGI maintains publicly-available satellite databases, updated daily, at: https://ftp.agi.com/dist/satdb/. The compressed ZIP archives can used to create a StkSatelliteDatabase without needing to unpack the files locally.
Alternatively, if your application has internet access, you can download the current database file from AGI using the following code:
// Downloads the current stkSatDbAll database from an AGI server. StkSatelliteDatabase db = StkSatelliteDatabase.Download(); // Or, download a specific database type, such as the stkAllTLE database. StkSatelliteDatabase allTle = StkSatelliteDatabase.Download(StkSatelliteDatabaseType.AllTwoLineElements);