主要内容

Import Satellite TLE Data Using Tracking Data Importer App

R2026b
Since R2026b

This example shows how to import satellite trajectory data from a Two-Line Element (TLE) file into the Tracking Data Importer app. You then propagate satellite orbits to generate a truth data table, import it into the app, and map, convert, and visualize the satellite trajectories on a globe.

Generate Truth Data

Read the TLE file containing a LEO satellite constellation using the tleread (Aerospace Toolbox) function. The TLE file used in this example contains orbital elements for 40 satellites.

tleData = tleread("leoSatelliteConstellation.tle");
numSatellites = numel(tleData);

Define a time vector starting from the TLE epoch and spanning 200 minutes with 1-minute intervals. This defines approximately two orbital periods for satellites in low Earth orbit (LEO).

startTime = tleData(1).Epoch;
dt = minutes(0:1:200)';
time = startTime + dt;

Propagate the orbit for satellites using propagateOrbit (Aerospace Toolbox) with the OutputCoordinateFrame set to "geographic". This returns positions as latitude, longitude, and altitude, and velocities in the local NED (North-East-Down) frame.

% Compute positions and velocities of satellites at defined time
% intervals
[pos, vel] = propagateOrbit(time, tleData, ...
    OutputCoordinateFrame="geographic");

% Timestamp vector of same size as number of positions
timestamps = repmat(time,1,numel(tleData));

% Names at all timestamps
satelliteNames = repmat([tleData.Name],numel(time),1);

% Generate a truth table
satelliteData = table( ...
    timestamps(:), ...% Time
    satelliteNames(:), ...% Name
    pos(1,:)', pos(2,:)', pos(3,:)', ...% LLA 
    vel(1,:)', vel(2,:)', vel(3,:)', ...% Velocity
    VariableNames=["time",...
                   "name", ...
                   "lat","long","alt", ...
                   "v_n","v_e","v_d"]);

Preview the generated truth data table.

head(satelliteData)
            time                name           lat       long         alt         v_n       v_e        v_d   
    ____________________    _____________    _______    _______    __________    ______    ______    ________

    04-May-2020 18:45:35    "Satellite 1"    -9.3845    -148.96     8.503e+05    6063.9    3766.9      5.1694
    04-May-2020 18:46:35    "Satellite 1"    -6.4786    -147.16    8.5002e+05      6085    3733.4      3.9586
    04-May-2020 18:47:35    "Satellite 1"     -3.564    -145.38    8.4982e+05    6098.2    3712.4      2.6927
    04-May-2020 18:48:35    "Satellite 1"    -0.6447    -143.62     8.497e+05    6103.8    3703.6      1.3944
    04-May-2020 18:49:35    "Satellite 1"     2.2755    -141.86    8.4965e+05    6101.7      3707    0.086615
    04-May-2020 18:50:35    "Satellite 1"     5.1927    -140.08    8.4969e+05      6092    3722.8     -1.2074
    04-May-2020 18:51:35    "Satellite 1"     8.1032     -138.3     8.498e+05    6074.6    3750.9     -2.4649
    04-May-2020 18:52:35    "Satellite 1"     11.003    -136.48    8.4998e+05    6048.9    3791.5     -3.6635

Import and Map Data

Launch the Tracking Data Importer application by using the trackingDataImporter command. In the app, click the Import button and select Import from workspace.

Select the satelliteData table as shown in the picture below.

Click the New Converter button and select Custom to create a converter that maps the table columns to the data elements required by the importer.

Provide a name for the converter (for example, SatelliteDataConverter) to identify it for future use. You also configure the converter to match the satellite truth data generated in the previous section. You choose Coordinate Type as Geodetic because the satellite position was obtained in geographic coordinates using the propagateOrbit function. You also configure Frame Type as Local NED because the satellite velocity was recorded in the local NED frame.

Click Confirm, and then map the state elements as shown in the picture below. First, map the Date Time Data Element to match the time column in the table. Then, select the appropriate table column in the Match To column of each field in the Other Data Elements table.

Click Save Converter to save the converter. Verify that the data is Ready to Convert in the panel above.

Convert Data

After mapping, click the Convert button to convert the raw imported data to the required formats.

During conversion, the app validates the mapping and creates a converted data table with position and velocity in the local NED reference frame. You should see a converted table at the bottom after successful conversion.

Visualize Data

Click the Visualize button to visualize the satellite trajectories on an interactive globe-based visual.

This opens the visualization panel and shows the trajectory of each satellite orbit in the data on the globe in blue.

You can also interact with the data table to highlight and inspect the trajectory of a specific satellite.

You can further export the data to complete tracking tasks such as Create Tracking Scenario Using Imported ADS-B Data using this as ground truth, tuning a filter, or evaluating a tracker's performance.

Summary

In this example, you learned how to import TLE data for tracking use cases by first generating a truth table, and then importing it using the Tracking Data Importer app. For more details on how to use the app, refer to the documentation of the Tracking Data Importer app.