Introduction¶
What is SORTS¶
SORTS stands for Space Object Radar Tracking Simulator (SORTS). It is a collection of modules designed for research purposes concerning the tracking and detection of objects in space. Its ultimate goal is to simulate the tracking and discovery of objects in space using radar systems in a very general fashion. Therefor it can not only be used for simulating the performance of radar systems but be used to plan observations and schedule campagins.
Feature list¶
Vast library of usage examples
Quick calculation of passes over a radar system
Easy simulation of observed variables of hard targets with radar systems (range, range rate, radar cross section, signal to noise ratio, …) given an arbitrary radar and radar observation schema
Definition of arbitrary radar control systems
Definition of arbitrary scheduler systems that manage radar-controllers
Pre-defined library of radar systems, radar survay patterns, standard radar controllers and schedulers
Standardized interface to a collection of propagators
Allows modification of any level of a simulation trough sub-classing the basic models
Large collection of helper functions for simulation to automate e.g. MPI-trivial parallelization and disk-caching
Execution time and memory usage profiler compatible with most base models
Logging compatible with most base models
Frame transformations implemented trough Astropy
Time handling implemented trough Astropy
All time-critical calculations implemented using numpy to accelerate calculation
Predefined error models such as ionospheric ray bending and coded transmission matched filter errors
Ray-tracing simulation of radar signals trough the ionosphere using pyglow
Measurement Jacobian calculation and linearized orbit error calculation and propagation
Ability to plan measurement campaigns using the output from a scheduler simulation
Collection of predefined population formats for loading e.g. TLE catalogs
Correlation algorithms for correlating measurement data to a population
Input/Output package for writing and reading standardized data formats e.g. CCSDS TDM files
Large collection of plotting functions for quick visualization
Interpolation methods for propagation optimization
…
Example¶
Finding all passes of a space object over a radar system
#!/usr/bin/env python
import numpy as np
import pyorb
import sorts
from sorts.propagator import SGP4
eiscat3d = sorts.radars.eiscat3d
prop = SGP4(
settings = dict(
out_frame='ITRS',
),
)
orb = pyorb.Orbit(
M0 = pyorb.M_earth,
direct_update=True,
auto_update=True,
degrees=True,
a=7200e3,
e=0.05,
i=75,
omega=0,
Omega=79,
anom=72,
epoch=53005.0,
)
print(orb)
t = sorts.equidistant_sampling(
orbit = orb,
start_t = 0,
end_t = 3600*24*1,
max_dpos=1e4,
)
states = prop.propagate(t, orb.cartesian[:,0], orb.epoch)
passes = eiscat3d.find_passes(t, states)
for txi in range(len(eiscat3d.tx)):
for rxi in range(len(eiscat3d.rx)):
for ps in passes[txi][rxi]: print(ps)