1 Introduction

In the last decades, in orbit population has become one of the main concerns for space agencies and institutions worldwide, and this problem mostly affects two regions: Low Earth Orbit (LEO) and Geostationary Orbit (GEO). Among orbiting objects, just a small fraction is represented by co-operative satellites, while the main part by space debris, which include inactive satellites, rocket bodies, and fragments of all sizes [1]. Space debris represent a threat to space activities, moreover for what concerns in orbit collision risk, and so different strategies have been implemented to guarantee safe operations. To this end, an international effort is currently taking place in the Space Surveillance and Tracking (SST) field, and Europe deals with this topic through two programmes: the European Space Agency (ESA) Space Situational Awareness (SSA) programme [2] and the European Union Space Surveillance and Tracking (EUSST) framework [3]. Nowadays, the latter groups national agencies and institutions from 15 European countries, and is in charge of guaranteeing the following services: conjunction analysis [4,5,6,7,8], fragmentation analysis [9, 10] and re-entry prediction [11]. These services exploit measurements obtained through ground-based sensors, which are optical telescopes (they provide highly accurate angular track) [12], radars (in addition to angles, they provide either slant range, SR, or Doppler shift, DS, measurements, or both) [13] and lasers (they provide extremely precise range measurements) [14]. Besides these services, maneuver detection [15] and proximity operations monitoring [16, 17] are also fundamental in space traffic management activities. The latter is expected to play a crucial role in the future for the active debris removal programmes.

Italy is involved in the EUSST programme through the Italian Space Agency (ASI), the Astrophysics National Institute (INAF) and the Italian Ministry of Defence, with the Italian Air Force (AM) largely involved, and it is in charge of re-entry and fragmentation services, managed by the AM Space Situational Awareness Centre (C-SSA). For this reason, efficient and reliable tools shall be designed to process observation data. Within this framework, the Italian SST Operational Centre (ISOC) has recently upgraded its system to the ISOC Suite 2.0 (simply indicated in the work as ISOC Suite from now on), which provides multiple functions and services in the SST domain. Compared to the first version of the software (ISOC Suite 1.0), more functionalities are present, which are offered through an integrated web-based platform, granting easier accessibility. The present work describes the orbit determination module developed for the ISOC Suite in partnership with industry and academia, thanks to a collaboration involving AM, Leonardo Company and Politecnico di Milano. The prototypal version here described has been then translated to C++ language to be used in the operational environment, granting higher performance in terms of computational times.

Generally, as soon as the measurements are provided by a sensor belonging to the consortium network in the form of Tracking Data Message (TDM) files [18], their correlation to a catalogued object must be first verified, to then proceed performing Orbit Determination (OD). To determine the orbital state of an observed object, sensor measurements can be processed in two ways, depending on whether the data refer to a catalogued object or not.

In the catalogued case, the orbital state predictions are refined using the measurements and this process is known as Refined Orbit Determination (ROD). The algorithms used can be distinguished between sequential methods (they need the predicted state uncertainty) and batch methods (they do not). The former processes the measurement information in chronological order (either forward or backward, depending on the application), the latter, instead, leverages a complete data set acquired over a certain time horizon to find a solution. Both sequential and batch methods are iterative and require sufficiently good initial guesses. Besides the position and the velocity, these algorithms can also estimate the target physical parameters (such as the ballistic coefficient), which can be then refined considering additional ephemerides of the object [19].

For uncatalogued objects instead, no prediction is available and only measurements can be exploited. In this case, an Initial Orbit Determination (IOD) is performed to compute a first guess of the target orbital state, through dedicated methodologies. In this context, the most reliable methodologies usually estimate orbital position and velocity only.

In an operational scenario, once a sequence of measurements is acquired, a correlation procedure is performed to link the measurements to a catalogued object, via propagation to observation epochs and projection onto the measurement space. This operation is possibly conducted concurrently with a track to track association, most often for the optical case, to link measurements to a same target [20]. By this way, a statistically meaningful distance can be computed, even in terms of control expense to support maneuvering objects observation [21]. In this latter case, the catalogued targets pattern of life is usually considered as additional source of information [22]. Then, if the correlation is successful, ROD is run, otherwise, an IOD procedure is performed. Finally, the compatibility of the OD result with respect to the input measurements can be verified with a process similar to the correlation one, as reported in Sect. 3.

The work illustrates the prototypal version of the orbit determination module embedded in ISOC, whose performance are discussed through results obtained both from synthetic and real observational data. The paper is organized as follows. First, an overview of ISOC suite is provided, as well as the process mathematical theory and pipelines. Then, a numerical analysis is carried out to validate the tool. Finally, the algorithm performance is assessed through operational real case scenarios.

2 Italian SST operations centre

ISOC was originally established in 2014 and operated by the military personnel of the Flight Test Department of the AM. Currently, the operational activities are led by the the Air and Space Operations Command, whereas the Flight Test Department is responsible for Research and Development tasks. The ISOC Suite is a complex system that was developed to support SST tasks, but it is currently evolving towards a broader awareness of the space scenario, to enhance national security of both civil and military applications. ISOC is also included in the EUSST framework, leading and supporting the services listed, as follows:

  • Re-entry (RE): prime responsible for the analysis of uncontrolled re-entry in low atmosphere for large and dangerous objects.

  • Fragmentation (FG): prime responsible for the analysis of in-orbit fragmentation as consequence of satellite break-ups or collisions.

  • Collision avoidance (CA): cold redundant operational centre for the analysis of the collision probability and geometry for conjunction events.

Fig. 1
figure 1

ISOC architecture

The ISOC Suite supports the above-mentioned services, whose high-level architecture is represented in Fig. 1. The main inputs of the suite are provided by national sensors, partner sensors, consortium observations available through the European observation catalogue along with available public sources. The core is based on commercial off-the-shelf (COTS) and proprietary software and algorithms. The system services (i.e. outputs) are shown in the top part of Fig. 1. ISOC Suite is designed to manage data coming from Space-Track website [23] and to task sensors. Then, the interaction of ISOC Suite with EUSST portal regards the provision of the Re-entry and Fragmentation services reports, while the one with EUSST database consists in the upload/download of the measurements acquired by the national sensors. Concerning the latter, the AM upload observation data acquired by Italian sensors and download those produced by other countries belonging to EUSST consortium. Finally, interfaces are designed to allow data exchange with spacecraft operators (the S/C OPRS block in Fig. 1).

A functional part of the entire system is the correlation and the orbit determination process, which could be assured by the suite described in this paper.

3 Correlation process

To correlate measurements to a catalogued object, a statistical correlation index is computed using the concept of squared Mahalanobis distance, combined with the \(\chi ^2\) test, as follows.

Assuming a normal distribution, the acquired measurements, at each observation epoch \(t_k\), can be expressed as \(\varvec{Y} (t_k) \sim {\mathcal {N}} \left( \varvec{\mu _y}(t_k), \varvec{P_y}\right)\), where \(\varvec{P_y}\) is constant and is defined based on the sensor accuracy. The dimension \(N_y\) of \(\varvec{Y}\) depends on the acquired measurements. In order to verify the correlation status of a generic catalogued orbital state \(\varvec{X} \sim {\mathcal {N}} \left( \varvec{\mu _x}, \; \varvec{P_x} \right)\), this can be propagated up to the observation epochs either by a Keplerian propagator, or a numerical high-fidelity propagator [11], or SGP4 [24], and then projected in the measurements space, according to an Unscented Transformation (UT). This operation results in the synthetic measurements set \(\varvec{{\tilde{Y}}} (t_k) \sim {\mathcal {N}} \left( \varvec{{\tilde{\mu }}_y}(t_k), \varvec{{\tilde{P}}_y}(t_k)\right)\), where, differently from \(\varvec{P_y}\), \(\varvec{{\tilde{P}}_y}\) depends on the observation epoch \(t_k\) considered. For each observation epoch \(t_k\), the Mahalanobis distance is computed as:

$$\begin{aligned} \xi (t_k)&= \left\{ \varvec{{\tilde{\mu }}_y}(t_k) - \varvec{\mu _y}(t_k) \right\} ^\textrm{T} \; \left\{ \varvec{P_y} + \varvec{{\tilde{P}}_y}(t_k) \right\} ^{-1} \\ \nonumber&\quad \left\{ \varvec{{\tilde{\mu }}_y}(t_k) - \varvec{\mu _y}(t_k) \right\} \end{aligned}$$
(1)

To assess the \(\chi ^2\) test, the Mahalanobis distance \(\xi (t_k)\) is divided by the inverse of the \(\chi ^2\) cumulative distribution function, which depends on the uncertainty level (usually addressed to as \(\sigma\) level), and to the \(N_y\) number of degrees of freedom:

$$\begin{aligned} \zeta (t_k) = \frac{\xi (t_k)}{{\bar{\chi }}^2} \end{aligned}$$
(2)

In this work, the quantity \({\bar{\chi }}^2\) is set compatible with the 3-\(\sigma\) level, which corresponds to a probability of 99.8%.

To pass the \(\chi ^2\) test described above, the threshold \(\tau\) shall be theoretically set equal to 1. However, for noisy and not accurate measurements (such as in real case scenario), it may occur that such a threshold is not respected even for correct correlations, and \(\tau\) shall be relaxed accordingly. This takes place, for instance, when the measurement noise exceeds the declared accuracy (information included in the covariance matrix \(\varvec{P_y}\)), or when the Gaussian assumption does not hold. This matter is further discussed in Sect. 7.

Given a catalogue and a TDM containing observables, the ISOC Suite correlation process is performed as follows:

  1. 1.

    Propagate all the catalogued objects up to the TDM observation epochs, and project the orbital states in the measurements space, obtaining, at each time \(t_k\), the predicted measurements \(\varvec{{\tilde{\mu }}_y}(t_k)\).

  2. 2.

    Filter out objects with an angular distance at initial and final TDM observation epochs greater than a threshold (set by the user). This operation is conducted to exclude candidates which cannot be detected by the sensor (either optical, radar or laser), as their positions at the initial and final observation epochs are out of its field of regard.

  3. 3.

    For the remaining objects, at each observation epoch \(t_k\) compute Eqs. 1 and 2, and then the correlation index \({\overline{\zeta }}\).

  4. 4.

    The process correlates the measurements to the object featuring the smallest correlation index.

An analogous procedure defines an index for the compatibility of the OD results with the measurements adopted in the estimation process. From the resulting mean \(\varvec{\mu _x}\) and covariance \(\varvec{P_x}\) at the OD reference epoch, the related synthetic measurements \(\varvec{{\tilde{Y}}} (t_k)\) are computed at each \(t_k\). Then, Eqs. 1 and 2 are evaluated, and the mean correlation index \({\bar{\zeta }}\) is computed. Finally, OD is considered satisfactory if \({\overline{\zeta }}<\tau\), where the same above-mentioned considerations apply to \(\tau\).

4 Refined orbit determination

In ROD processes, an orbital state prediction \(\varvec{X_0} \sim {\mathcal {N}} \left( \varvec{\mu _{x0}}, \; \varvec{P_{x0}} \right)\) is refined based on the acquired measurements \(\varvec{Y} \sim {\mathcal {N}} \left( \varvec{\mu _y}, \varvec{P_y}\right)\). Generally, either batch filters like the Non-linear Least Squares, or sequential filters like the Kalman Filters are used [25]. The former can refine the orbital state prediction also when the covariance \(\varvec{P_{x0}}\) is not known, while the latter cannot. Furthermore, the batch filters allow greater flexibility in the choice of the epoch at which the orbital state has to be refined, as it can either belong to the observation window or not. On the contrary, even if also sequential filters can theoretically refine orbital states which are outside of the observation time window, by properly setting the transformation function, this choice is usually not taken, because of the increasing transformation non-linearity (leading to performance deterioration) and longer computational time. Also, it is worth to remark that the sequential filters by definition can return the orbital state at any observation epoch, but this would imply not to have used all the available measurements. Thus, they usually provide the estimate only at the final-step observation epoch, which can be the first in time (for backward ROD), or the last one (for forward ROD). However they are generally more stable and, consequently, more reliable.

ISOC Suite exploits Non-linear Least Squares (as batch filter) and Unscented Kalman Filters (as sequential filter). The latter is used when a covariance is associated to the prediction, the former is applied otherwise, and the software is designed to automatically select the correct routine based on the input data. In addition, the user can select the desired model to perform orbital propagation in the transformation functions, by exploiting either a Keplerian propagator, or a numerical high-fidelity propagator [11], or SGP4 [24]. In the last case, a fixed-point iteration loop based on a Non-linear Least Squares is used to convert the orbital state from cartesian coordinates, expressed in Earth Centered Inertial (ECI) reference frame, to SGP4 elements and back. It is worth to point out that ISOC Suite allows to conduct ROD combining measurements related to a same target and acquired by different sensors.

4.1 Non-linear least squares

Generally speaking, the Non-linear Least Squares methods [25] seek to refine an orbital state \(\varvec{\mu _{x0}}\) (of dimension \(N_x\)), defined at time \({\hat{t}}\) and considered as process first guess, by iteratively searching for the mean orbital state \(\varvec{\mu _x}\) as that value that minimises the sum of the squares of the calculated observation residuals.

Let the residual vector be:

$$\begin{aligned} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) = \left( \varvec{\mu _y} - \varvec{{\tilde{\mu }}_y} \left( \varvec{\mu _x} \right) \right) , \end{aligned}$$
(3)

whose dimension is \(N_{\varepsilon }=N_\textrm{obs} \times N_y\), where \(N_\textrm{obs}\) is the observation epochs number and \(N_y\) is the dimension of the measurement state. Then, \(\varvec{\mu _y}\) is the set of the observation data (mapped in the measurements space) and \(\varvec{{\tilde{\mu }}_y}\) is the synthetic measurements set, retrieved from \(\varvec{\mu _{x0}}\) as described in Sect. 3. The process searches for the value of \(\varvec{\mu _x}\) which minimises the following performance index:

$$\begin{aligned} h \left( \varvec{\mu _x} \right) = \frac{1}{2} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) ^\textrm{T} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) \end{aligned}$$
(4)

Note that Eq. 4 is a quadratic function of \(\varvec{\mu _x}\), and, as a consequence, the expression has a unique minimum when:

$$\begin{aligned} \frac{\partial h}{\partial \varvec{\mu _x}} = 0 \quad \text {and} \quad \delta \varvec{\mu _x}^\textrm{T} \frac{\partial ^2 h}{\partial \varvec{\mu _x}^2} \delta \varvec{\mu _x} > 0 \end{aligned}$$
(5)

for \(\delta \varvec{\mu _x} \ne 0\). The second condition of Eq. 5 means that \(\partial ^2\,h / \partial \varvec{\mu _x}^2\) is positive defined.

The non-linear transformation from \(\varvec{\mu _{x0}}\) to \(\varvec{{\tilde{\mu }}_y}\) can have several shapes, depending on the epoch \({\hat{t}}\) (either related to observation window or not) and on the propagation model adopted, but all propagate the orbital state \(\varvec{\mu _{x0}}\) along the observation epochs and then project the computed states on the measurements space, according to the available data contained in \(\varvec{\mu _y}\). If the process converges, the orbital state \(\varvec{X}\) is found, both in terms of the estimated \(\varvec{\mu _x}\) and covariance, which is computed as:

$$\begin{aligned} \varvec{P_x} = \frac{\varvec{\varepsilon } \left( \varvec{\mu _x} \right) ^\textrm{T} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) }{{N}_{\epsilon } - {N}_x} \left( \varvec{J}\left( \varvec{\mu _x} \right) ^\textrm{T} \varvec{J} \left( \varvec{\mu _x} \right) \right) ^{-1} , \end{aligned}$$
(6)

where \(\varvec{J} \left( \varvec{\mu _x} \right)\) is the Jacobian of \(\varvec{\varepsilon } \left( \varvec{\mu _x} \right)\) at the solution \(\varvec{\mu _x}\).

There are different variations to this scheme, the most remarkable being the weighted Non-linear Least Squares and the a-priori Non-linear Least Squares.

In the weighted Non-linear Least Squares, Eq. 4 is modified as:

$$\begin{aligned} h \left( \varvec{\mu _x} \right) = \frac{1}{2} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) ^\textrm{T} \varvec{W_y} \; \varvec{\varepsilon } \left( \varvec{\mu _x} \right) , \end{aligned}$$
(7)

where \(\varvec{W_y}\) is the matrix weighting the observation errors and usually results from an initial judgement on the accuracy of the observations (the sensor accuracy, for instance), followed by a normalisation procedure to scale the weights to values between zero and one.

The a-priori Non-linear Least Squares also considers the predicted orbital state \(\varvec{{\bar{\mu }}_{x0}}\) as a further data to fit, together with an associated weighting matrix \(\varvec{W_{x0}}\), and Eq. 4 is modified as:

$$\begin{aligned} h \left( \varvec{\mu _x} \right)= & {} \frac{1}{2} \varvec{\varepsilon } \left( \varvec{\mu _x} \right) ^\textrm{T} \varvec{W_y} \; \varvec{\varepsilon } \left( \varvec{\mu _x} \right) \\ \nonumber{} & {} \quad + \frac{1}{2} \left( \varvec{\mu _x} - \varvec{\mu _{x0}} \right) ^\textrm{T} \varvec{W_{x0}} \left( \varvec{\mu _x} - \varvec{\mu _{x0}} \right) \end{aligned}$$
(8)

Usually, \(\varvec{W_{x0}}\) is derived from the covariance \(\varvec{P_{x0}}\) associated to \(\varvec{\mu _{x0}}\).

It is worth to remark that, in operations, the orbital propagation model used in the filter shall be as matching as possible the actual trajectory of the target, as further commented in Sect. 6.2. In any case, weighting the residuals with the uncertainty associated to the acquired measurements and determined through past calibration campaign, as done in Eq. 7 and in Eq. 9, increases the robustness of the process.

Even if the Non-linear Least Squares approaches are theoretically exploitable for IOD (starting from a circular first guess, for instance), they are operationally considered just for ROD applications, as an accurate \(\varvec{\mu _{x0}}\) is fundamental to get convergence, except for particular procedures in which they are combined with other algorithms to provide an IOD result, such as described in Sect. 5.1 if angles and Doppler shift measurements are provided.

4.2 Unscented Kalman Filter

An efficient way to perform ROD with a sequential filter is represented by the Unscented Kalman Filter. It is a technique based on the Unscented Transformation without any linearization, and thus provides superior performance with respect to the EKF in nonlinear problems [26, 27].

In a ROD operation, let us consider a prediction state \(\varvec{X_0} \sim {\mathcal {N}} \left( \varvec{\mu _{x0}}, \; \varvec{P_{x0}} \right)\) defined at reference time \(t_0\). Its dimension N\(_x\) depends on the parameters to be refined: \(N_x=6\) to refine just the orbital state, \(N_x=7\) if an additional physical parameter (such as the ballistic coefficient) is considered, and so on. Let the ROD measurements set be \(\varvec{Y}(t_k) \sim {\mathcal {N}} \left( \varvec{\mu _y}(t_k), \; \varvec{P_y} \right)\), where \(\varvec{\mu _y}(t_k)\) represents the acquired measurements at each observation epoch \(t_k\) and \(\varvec{P_y}\) the constant covariance defined up to the sensor accuracy.

From \(\varvec{X}\), sigma points are created: \(\varvec{{\bar{\mu }}_x} \left( t_0 \right)\). These are propagated up to the first-step observation epoch \(t_1\), resulting in the propagated \(N_x\)-dimensional sigma points: \(\varvec{{\bar{\mu }}_x^i} \left( t_1 | t_0 \right)\) (for the ith sigma point). Given the non-linear function g which projects an orbital state onto the measurements space, the predicted measurements sigma points can be computed at the first-step observation epoch \(t_1\), whose dimension \(N_y\) corresponds to the number of considered measurements: \(\varvec{{\bar{\mu }}_y^i} \left( t_1 | t_0 \right) = g \left( \varvec{{\bar{\mu }}_x^i} \left( t_1 | t_0 \right) \right)\). Then, the augmented sigma point \(\varvec{{\bar{\mu }}_\xi ^i} \left( t_1 | t_0 \right)\) is created, chaining \(\varvec{{\bar{\mu }}_x^i}\) and \(\varvec{{\bar{\mu }}_y^i}\):

$$\begin{aligned} \varvec{{\bar{\mu }}_\xi ^i} \left( t_1 | t_0 \right) = \begin{bmatrix} \varvec{{\bar{\mu }}_x^i} \left( t_1 | t_0 \right) \\ \varvec{{\bar{\mu }}_y^i} \left( t_1 | t_0 \right) \end{bmatrix} \end{aligned}$$
(9)

And its dimension \(N_{\xi }\) turns out to be equal to \(N_x+N_y\).

At this point, the state is retrieved from the sigma points \(\varvec{{\bar{\mu }}_\xi ^i} \left( t_1 | t_0 \right)\) and \(N_{\xi }\)-dimensional state is returned, both in terms of mean \(\varvec{{\hat{\mu }}_\xi } \left( t_1 | t_0 \right)\) (dimension \(N_{\xi }\times\)1) and covariance \(\varvec{{\hat{P}}_{\xi }} \left( t_1 | t_0 \right)\) (dimension \(N_{\xi }\times N_{\xi }\)). It is now possible to split \(\varvec{{\hat{\mu }}_\xi } \left( t_1 | t_0 \right)\) in:

$$\begin{aligned} \varvec{{\hat{\mu }}_\xi } \left( t_1 | t_0 \right) = \begin{bmatrix} \varvec{{\hat{\mu }}_x} \left( t_1 | t_0 \right) \\ \varvec{{\hat{\mu }}_y} \left( t_1 | t_0 \right) \end{bmatrix} \end{aligned}$$
(10)

And \(\varvec{{\hat{P}}_{\xi }} \left( t_1 | t_0 \right)\) in:

$$\begin{aligned} \varvec{{\hat{P}}_{\xi }} \left( t_1 | t_0 \right) = \begin{bmatrix} \varvec{{\hat{P}}_{x}} \left( t_1 | t_0 \right) \quad \varvec{{\hat{P}}_{x y}} \left( t_1 | t_0 \right) \\ \varvec{{\hat{P}}_{x y}}^\textrm{T} \left( t_1 | t_0 \right) \quad \varvec{{\hat{P}}_y} \left( t_1 | t_0 \right) \end{bmatrix} \end{aligned}$$
(11)

Such that the dimensions are \(N_x\times 1\) for \(\varvec{{\hat{\mu }}_x} \left( t_1 | t_0 \right)\), \(N_y\times 1\) for \(\varvec{{\hat{\mu }}_y} \left( t_1 | t_0 \right)\), \(N_x\times N_x\) for \(\varvec{{\hat{P}}_{x}} \left( t_1 | t_0 \right)\), \(N_y\times N_y\) for \(\varvec{{\hat{P}}_y} \left( t_1 | t_0 \right)\), \(N_x\times N_y\) for \(\varvec{{\hat{P}}_{x y}} \left( t_1 | t_0 \right)\). By defining:

$$\begin{aligned} \varvec{{\hat{P}}_e} \left( t_1 | t_0 \right) = \varvec{{\hat{P}}_y} \left( t_1 | t_0 \right) + \varvec{P_y} \end{aligned}$$
(12)

The covariance gain as:

$$\begin{aligned} \varvec{K} \left( t_1 | t_0 \right) = \varvec{{\hat{P}}_{xy}} \left( t_1 | t_0 \right) \varvec{{\hat{P}}_e} \left( t_1 | t_0 \right) ^{-1} \end{aligned}$$
(13)

The orbital state is updated as:

$$\begin{aligned} \begin{aligned} \varvec{\mu _x} \left( t_1 | t_0 \right) =&\varvec{{\hat{\mu }}_x} \left( t_1 | t_0 \right) + \varvec{K} \left( t_1 | t_0 \right) \left\{ \varvec{\mu _y} \left( t_1 \right) - \varvec{{\hat{\mu }}_y} \left( t_1 | t_0 \right) \right\} \\ \varvec{P_x} \left( t_1 | t_0 \right) =&\varvec{{\hat{P}}_{\mu }} \left( t_1 | t_0 \right) - \varvec{K} \left( t_1 | t_0 \right) \varvec{{\hat{P}}_e} \left( t_1 | t_0 \right) \varvec{K}^\textrm{T} \left( t_1 | t_0 \right) \end{aligned} \end{aligned}$$
(14)

By repeating this procedure for all the conditional estimations \(\left( t_{k+1} | t_k \right)\) sequentially, up to the final-step observation epoch \(t_f\), the orbital state is refined through the measurements. It is important to stress that the sequential filter procedure is possible only if a covariance is associated to the orbital state prediction. Then, as remarked above, the procedure can be performed either forward or backward with respect to the observation timeline (being sequential), but the result is always associated to the final-step observation epoch considered. It is also worth to stress that UKF grants a stable estimation if a correct measurements noise is considered, which, in ISOC Suite, is derived from the sensor accuracy. Thus, precise and correct information about sensor characteristics shall be known to have a stable solution.

5 Initial orbit determination

As illustrated above, no orbital predictions are available for the observed object in the IOD context. As explained earlier, in this situation the Non-linear Least Squares approaches, theoretically, could still be applied (and would allow to estimate other parameters in addition to position and velocity), but they turn out to be quite unstable, mainly due to the lack of a sufficiently accurate first guess. Thus, alternative methodologies have been developed by the scientific community, applied according to the available measurements.

The IOD pipeline workflow of the ISOC Suite is represented in Fig. 2. First, the input data are automatically recognized and the IOD is run, depending on whether the input TDM is optical or radar (laser data are processed in the latter manner). To this end, dedicated algorithms are exploited, as described in Sects. 5.1 and 5.2. The resulting orbital state, defined at the first observation epoch, is further refined through the filters described in Sect. 4. By default, UKF is used if a compliant covariance is associated to the result obtained at the previous step, an a-priori weighted Non-linear Least Squares otherwise. While the algorithms exploited to compute the IOD first guess are based on a Keplerian model, the perturbations effects can be included in the refinement phase, by selecting either SGP4 [24], or a numerical high-fidelity propagator [11]. At the end, the orbital state is returned, in terms of mean and covariance, at the final observation epoch.

Fig. 2
figure 2

Flow diagram of the IOD workflow

5.1 Radar IOD

Let us consider a set of radar sensor observations \(\varvec{Y} (t_k) \sim {\mathcal {N}} \left( \varvec{\mu _y}(t_k), \varvec{P_y}\right)\), where \(t_k\) are the N\(_{obs}\) observation epochs, \(\varvec{\mu _y} (t_k)\) the measurements acquired at \(t_k\) and \(\varvec{P_y}\) the covariance associated to the measurements and which is derived from the sensor accuracy. The acquired measurements are assumed to be angular coordinates (azimuth and elevation, or right ascension and declination) and SR, such that \(\varvec{\mu _y}\) and \(\varvec{P_y}\) result to have dimension \(3 \times N_\textrm{obs}\) and \(3\times 3\), respectively. These information, together with the time-dependent inertial sensor position \(\varvec{s}(t_k)\), can be processed to estimate the object orbital position \(\varvec{r}(t_k)\), whose uncertainty is described in terms of a multivariate normal distribution. In particular, the covariance \(\varvec{P_{r}}(t_k)\) can be derived from \(\varvec{Y} (t_k)\) with an UT, by projecting the sigma points from the measurements to the inertial space.

Several methods exist to obtain a preliminary orbit from two or three geocentric positions, such as Lambert’s problem solver or the Herrick-Gibbs approach as provided in [28]. Then, the GTDS range and angles method from [29] provides a stable fixed-point iteration scheme using the full acquired measurements, that is all the \(N_\textrm{obs}\) available observations. These methods are adapted in [30], which gives the definition of the Keplerian and analytical process applied in the present work for the radar IOD, and which is described as follows.

The \(\varvec{r}(t_k)\) vectors can be grouped in a unique matrix: \(\varvec{Z} = \left( \varvec{r}^\textrm{T} (t_1), \varvec{r}^\textrm{T}(t_2),\ldots , \varvec{r}^\textrm{T} (t_{{N}_\textrm{obs}}) \right)\). From \(\varvec{Z}\), the algorithm proceeds iteratively by modifying the orbital mean state with a fixed-point update process, starting from a first guess \(\varvec{\mu _0}\) (e.g. obtained with a Keplerian circular orbit assumption):

$$\begin{aligned} \varvec{\mu _x}^{j} = \varvec{H}(\varvec{\mu _x}^{j-1}) \varvec{Z} \end{aligned}$$
(15)

By defining the jth residual as \(R^{j} = \max (|\varvec{x}^{j}-\varvec{x}^{j-1}|)\), the loop goes on as long as \(\left( R^j-R^{j-1}\right) / R^j\) is larger than a tolerance \(\tau\) or the current number of iterations \(\lambda\) is lower than a predefined threshold.

At any iteration j, the matrix \(\varvec{H}(\varvec{\mu _x}^{j-1})\) is defined according to \(\varvec{f}(\varvec{\mu _x}^{j-1})\) and \(\varvec{g}(\varvec{\mu _x}^{j-1})\), which are vectors grouping the Lagrangian coefficients, whose derivations are provided in e.g. [31]:

$$\begin{aligned} \varvec{H}\left( \varvec{\mu _x}^{j-1}\right) = \frac{1}{\delta } \begin{pmatrix} \varvec{g}^{{\textbf {T}}} \textit{\textbf{g F}} - \varvec{f}^{{\textbf {T}}} \varvec{g G}\\ \varvec{f}^{{\textbf {T}}} \varvec{f G} - \varvec{f}^{{\textbf {T}}} \varvec{g F} \end{pmatrix} \end{aligned}$$
(16)

where the denominator is:

$$\begin{aligned} \delta = \left( \varvec{f}^{\textbf {T}} \varvec{f} \right) \, \left( \varvec{g}^{\textbf {T}} \varvec{g} \right) - (\varvec{f^T g})^2 \end{aligned}$$
(17)

while the auxiliary matrix \(\varvec{F}\) (and equivalently \(\varvec{G}\)) is defined as:

$$\begin{aligned} \varvec{F} = \begin{pmatrix} f_1 &{} 0 &{} 0 &{}... &{} f_{{N}_\textrm{obs}} &{} 0 &{} 0\\ 0 &{} f_1 &{} 0 &{}... &{} 0 &{} f_{{N}_\textrm{obs}} &{} 0\\ 0 &{} 0 &{} f_1 &{}... &{} 0 &{} 0 &{} f_{{N}_\textrm{obs}}\\ \end{pmatrix} \end{aligned}$$
(18)

where \(f_k\) is the Lagrangian coefficient f relative to kth epoch.

The method converges towards the solution \(\varvec{\mu _x}\). The orbital state covariance is finally determined through the linear approximation:

$$\begin{aligned} \varvec{P_x} = \varvec{H}\left( \varvec{\mu _x} \right) \varvec{P_{r}} \, \varvec{H}^{\textbf {T}} \left( \varvec{\mu _x} \right) \end{aligned}$$
(19)

where \(\varvec{P_r} = {\text {diag}} \left( \varvec{P_{r}}(t_1),\ldots , \varvec{P_{r}(t_{{N}_\textrm{obs}})} \right)\), and the orbital state \(\varvec{X} ({\hat{t}}) \sim {\mathcal {N}} \left( \varvec{\mu _x} ({\hat{t}}), \varvec{P_x} ({\hat{t}}) \right)\) is determined. In this work, the epoch \({\hat{t}}\) is set equal to the first observation epoch \(t_0\).

It is worth observing that, if an orbital prediction with no uncertainty associated (retrieved, for example, from Two-Line Elements, TLEs [32]) is exploited as the first guess, this procedure can work as a ROD process as well.

Slant range as derived measurement

The method described above determines the orbital mean state and covariance from radar measurements including angles and SR, regardless the availability of DS. However, in surveillance radar acquisitions, SR is not always included in the set of available measurements and this may represent a major limitation. To alleviate this issue and enhance the versatility of the method proposed, when the SR is not measured, its values are derived from DS measurements. To this end, the approach proposed in [33] is applied and summarised below.

From DS measurements, it is possible to derive the SR time derivative \(d \text {SR} / dt\) by knowing the transmitted frequency. Therefore, if the SR initial value SR\(_0\) is known, the SR can be computed at any epoch as:

$$\begin{aligned} \text {SR} \left( t\right) = \text {SR}_0 + \int _{t_0}^t \frac{\textrm{d} \, \text {SR}}{\textrm{d}t} \; \textrm{d}t \end{aligned}$$
(20)

Assuming that d\(\, \text {SR} / \textrm{d}t\) is known from DS measurements, together with t, \(t_0\) and \(\textrm{d}t\) (from the observation epochs), the problem reduces to the estimation of the SR initial value SR\(_0\) associated to the first observation epoch \(t_0\). The procedure for its determination, described hereafter, is based on the conservation of the total orbital energy.

Let \(\varvec{r_i} = \varvec{r}(t_i,\text {SR}_i) \, \hat{r_i}\) and \(\varvec{r}_j = \varvec{r}(t_i,\text {SR}_j) \, \hat{r_j}\) be the inertial position vectors at the ith and jth observation epochs, and \(\Delta t = t_j - t_i > 0\) the corresponding flight time. SR\(_i\) and SR\(_j\) are related to SR\(_0\) through Eq. 20. It is possible to solve the Lambert’s problem for \(\varvec{r_i}\) and \(\varvec{r_j}\) to get the specific orbital energy of the connecting arc:

$$\begin{aligned} \varepsilon _{i,j} \left( \text {SR}_0 \right) = - \mu / 2a \end{aligned}$$
(21)

Being \(\mu\) the Earth gravitational parameter and a the orbit semi-major axis. An ideal two-body system is conservative, that is the total energy of the problem is conserved. Therefore, after \(\varepsilon _{i,j} \left( \text {SR}_0 \right)\) has been computed for any combination of two observations \(\left( i, j \right)\), it is possible to identify the value of SR\(_0\) that yields the minimum standard deviation \(\sigma _{\varepsilon }\) in the distribution of energies. This SR\(_0\) represents the optimal solution, and the standard deviation of the energy distribution is a univariate function that only depends on the scalar integration constant SR\(_0\).

In this work, the approach is included in a process which first searches for the optimal solution on a coarse grid, by using a golden section search and parabolic interpolation. The resulting SR\(_0\) is the first guess entering a Non-linear Least Squares process, that refines the estimate by iteratively performing IOD (according to the procedure described above) and minimising the difference (weighted with the sensor accuracy \(\varvec{P_y}\)) between the real measurements \(\varvec{\mu _y}\) and the predicted ones \(\varvec{{\tilde{\mu }}_y}\) (computed from IOD result).

The final estimate SR\(_0\) is used to derive the SR profile at all the observation epochs, according to Eq. 20 and the radar IOD process can be finally run based on angles and on the derived SR. The resulting orbital state is then refined either according to UKF or Non-linear Least Squares on the actual observation data, that is without considering the derived SR.

5.2 Optical IOD

The optical IOD process is structured as a combination of a Gauss method with iterative improvement used to give a first guess (if not otherwise provided by the user), and a Gooding n-measurements version [34] to exploit every intermediate measurements of the observation arc, for the actual orbit estimate. Angular measurement uncertainty is taken into account through UT [26], considering the estimated orbital state as multivariate normal distribution.

Given a set of optical measurements consisting in a sequence of angular coordinates \((\alpha , \delta )\) denoting right ascension and declination of the target, they can be described as a normal distribution \(\varvec{Y} (t_k) \sim {\mathcal {N}} \left( \varvec{\mu _y}(t_k), \varvec{P_y}\right)\) with \(k = 1,\ldots , N_\textrm{obs}\), where \(N_\textrm{obs}\) represents the number of observation epochs, \(\varvec{\mu _y} (t_k)\) is the measurement mean values acquired at \(t_k\), \(\varvec{P_y}\) the associated covariance, derived from the declared sensor accuracy. This information can be combined with range and inertial station position (which varies across the observation) to retrieve the target position using:

$$\begin{aligned} {\textbf{r}} = {\textbf{R}} + \rho \, {\textbf{s}} \end{aligned}$$
(22)

where \({\textbf{r}}\) denotes the target position, \(\rho\) represents the range while \({\textbf{s}}\) is defined as:

$$\begin{aligned} {\textbf{s}} = \begin{pmatrix} \cos \alpha \, \cos \delta , \sin \alpha \, \cos \delta , \sin \delta \end{pmatrix} \end{aligned}$$
(23)

The core of the pipeline is represented by the Gooding algorithm. It leverages a first guess on the ranges at the boundaries of the observation to build the corresponding position vectors by means of Eq. 22. They are linked through the solution of a Lambert problem so that initial velocity and, consequently, the complete initial state are obtained. The latter is then propagated through unperturbed Keplerian dynamics, deemed admissible for this first estimate, across every measurement epoch in between the initial and the final ones. The computed intermediate states are then projected onto the angular measurement space to compare them with the actual ones and build \(N_\textrm{obs}-2\) residuals. This entire process is wrapped up as a cost function C to minimize the mentioned residuals squared sum by tuning the boundary ranges values:

$$\begin{aligned} \min _{\rho _0, \rho _{N_\textrm{obs}}} C(\rho _0, \rho _{N_\textrm{obs}}) \end{aligned}$$
(24)

Providing this algorithm with a suitable first guess is crucial to grant convergence to a meaningful solution, so a standard Gauss method-based process has been developed, as described in [35], to cope with this aspect if a first guess is not given as input to the pipeline. Due to Gauss method limitations in angular span [29], according to the involved observation width different options are provided:

  • With arc span higher than \(u_b\), where \(u_b\) can be set by the user as upper bound, two distinct arcs are used to give the corresponding two range guesses. They are built by selecting the portion of the original arc within the selected limit, starting respectively from the first and the last epochs measurements. So two \(u_b\)-wide arcs are used to perform Gauss.

  • With arc span lower than \(u_b\) the entire arc is used to obtain a first guess used as both initial and final range.

  • With arc span lower than \(l_b\), where \(l_b\) can be set by the user as lower bound, an alert is shown to warn the user of possible inaccurate results

The same method is applied to obtain a backup orbit estimate in case the Gooding method fails in reaching meaningful results. In this instance, a covariance is associated to the computed state by a first-order projection of the input sensor covariance \(\mathbf {P_y}\) by means of the transformation Jacobian \({\textbf{J}}\) linking measurements to the entire state:

$$\begin{aligned} \mathbf {P_x} = {\textbf{J}} \, \mathbf {P_y} \, {\textbf{J}}^\textrm{T} \end{aligned}$$
(25)

6 Numerical analysis

The current section is devoted to numerically validate the OD determination module of the ISOC Suite. To reproduce a scenario as realistic as possible in terms of observation geometry and track duration and accuracy, the measurements are simulated considering Cassini and the Bistatic Radar for LEO Survey (BIRALES) as baselines. Cassini is an Italian telescope belonging to the EUSST consortium, capable of tracking sources in Medium Earth Orbits (MEO) and GEO by mechanically steering its Field of View (FoV), resulting in a very large Field of Regard (FoR) [36]. BIRALES is a bistatic radar sensor devoted to LEO survey operations [13, 37,38,39].

The simulated optical data cover a time window of 1 h (from 11 p.m. to 12:00 p.m.) on April 29, 2022, whilst the radar data spans an entire day. This choice links to the target visibility in the optical case (only at night). Furthermore, the noise was attributed to the sensors:

  • BIRALES: 1e−02 deg on the angular track, 10 Hz on the Doppler shift and 100 m on the slant range.

  • Cassini: 6e−04 deg on the angular track.

Three orbital regimes are included to compute the satellite transits intersecting the FoV and the FoR of the two stations, and the target trajectory is derived through an SGP4 propagation [24]:

  • Low Earth Orbit: 100 radar passes.

  • Medium Earth Orbit: 100 optical passes.

  • Geostationary Orbit: 100 optical passes.

Figure 3 represents the Cumulative Distribution Functions (CDFs) describing the orbits of the objects used in the numerical analysis, both for LEO, MEO and GEO. The orbits are represented in terms of semi-major axis, eccentricity, inclination and right ascension of the ascending node. In addition, the CDFs of the track duration and number of measurements per track are reported for the LEO (Fig. 4), MEO (Fig. 5) and GEO (Fig. 6). It is possible to notice that, to reproduce realistic scenarios, in the first case the measurements tracks last some tens of seconds, with a sampling time set equal to 0.5 s, which are typical values for the radar observations of LEO objects. In the optical MEO case, the tracks duration ranges from about 1 min to 1 h, and the sampling time from about 6 s to 60 s, such that the analysed tracks always contain 10 measurements at least. It is worth to remark that, even if one single optical sensor is used as reference in the simulations and so the variation of the sampling time should be kept fixed, having different sampling time allows to test the general applicability of the developed software. Analogously, the optical GEO cases present tracks with a duration from few minutes to 1 h, and a sampling time ranging from 25 s to 60 s to always guarantee 10 measurements per track at least.

Fig. 3
figure 3

Cumulative distribution functions describing the orbits of the objects used in the numerical analysis, both for LEO, MEO and GEO. The orbits are represented in terms of semi-major axis, eccentricity, inclination and right ascension of the ascending node

Fig. 4
figure 4

Cumulative distribution functions of the radar measurements used in the numerical analysis regarding LEO objects, both in terms of track duration and number of measurements per track

Fig. 5
figure 5

Cumulative distribution functions of the optical measurements used in the numerical analysis regarding MEO objects, both in terms of track duration and number of measurements per track

Fig. 6
figure 6

Cumulative distribution functions of the optical measurements used in the numerical analysis regarding GEO objects, both in terms of track duration and number of measurements per track

Adopting this data set, the software performance is evaluated for the correlation (in Sect. 6.1), the ROD (Sect. 6.2), and the IOD processes (Sect. 6.3) as follows.

6.1 Correlation process

Regarding the correlation process, a synthetic TDM is generated for each transit. Alongside the aforementioned sensor noise, observation data are produced by perturbing the initial trajectory of the observed object based on the uncertainty detailed in [40].

The correlation process described in Sect. 3 is carried out with a catalogue of 3348 objects, and the main results are reported in Table 1, in terms of correlation rate and median correlation index. In the process, a 10\(^\circ\) angular filter is used.

Table 1 Correlation process: synthetic data results in terms of correlation rate and median correlation index

As Table 1 shows, the process always correlates the measurements to the correct object, with a median correlation index in the order of 1e−01.

6.2 Refined orbit determination

To assess the software within the ROD procedure, the same data set as in Sect. 6.1 is processed considering two scenarios: one without associating covariance with the catalogued object information and another where it is considered. In both cases, the initial estimation is obtained by perturbing the TLE corresponding to the pass through the covariance provided by [40], which is also used to associate the uncertainty to the transit prediction in the covariance case. This estimation is then propagated to the observation epochs employing an Unscented Transform [26].

In the no-covariance case, the weighted Non-linear Least Squares procedure described in Sect. 4 is used. To assess the robustness of the developed algorithms to the propagation model mismatching, a mismatch between the satellite trajectory and the method exploited in the tool is reproduced, by applying a Keplerian propagator to the batch filter cost function in place of SGP4 [24] (which was used to simulate measurements).

Table 2 ROD without covariance: synthetic data results in terms of median errors and median correlation index

Table 2 presents the ROD results without considering covariance, in terms of median errors and median correlation index. In the radar case (LEO scenario), the position error remains under 1 km, whereas the velocity error is in the order of 1e−02 km/s, which represents a noticeable deviation. This divergence can be attributed to the disparity between the real target trajectory and the analytical propagation within the filter. Nevertheless, the correlation index is below 1, underscoring the consistency between the ROD procedure outcome and the measurements.

In the optical case, the error in position increases, while the velocity one decreases. On one hand, the former aspect is due to the absence of the slant range measurement, which does not compensate for the noisy angular track. However, it is important to highlight that considering the scale of MEO and GEO regimes, a position error in the order of 1 km translates to a maximum of \(0.01\%\) of the orbit radius. Conversely, the reduction in velocity error can be attributed to the comparatively lower speeds of GEO and MEO satellites, as well as the comparatively diminished impact of perturbations on their trajectories. This latter factor decreases the mismatch between the actual trajectory and the one reconstructed through the analytical propagator, and it implies an error decrease in velocity.

In the covariance case, UKF [27] updates the state sequentially, according to the procedure described in Sect. 4. Analogously to the no-covariance case, a Keplerian propagator is used in the filter, whereas the actual target trajectory is computed through SGP4 [24].

Table 3 ROD with covariance: synthetic data results in terms of median errors and median correlation index

From Table 3, the errors are much smaller than the ones of Table 2. This is attributed to the UKF, exhibiting greater robustness than the batch filter in situations where covariance is not considered. More in detail, the LEO position error is smaller than the GEO and MEO ones, while the situation is reversed for what concerns the velocity error. The underlying reasons for this phenomenon remain consistent with the scenario lacking covariance consideration. These factors encompass the use in the radar LEO case of slant range measurements, the disparity between the SGP4 model and the analytical propagator, as well as the diminished impact of perturbations in the GEO and MEO orbital environments. Overall, the correlation index proves the compliance of the ROD results with the measurements.

6.3 Initial orbit determination

The IOD procedure is then tested, according to the algorithm presented in Sect. 5 and considering the same data set as in Sects. 6.1 and 6.2.

Table 4 Radar IOD: synthetic data results in terms of median errors and median correlation index

First, Table 4 shows radar IOD results in position and in velocity, depending on whether the slant range measurement is available, or not. In the former case, it can be noticed that the position error is comparable with the ROD case one when the covariance is available; however, the velocity error is worse than the ROD procedure with covariance. Instead, when the slant range is not available, the orbit determination result presents larger errors, due to the range estimation step which is quite sensitive on the noise affecting both DS and angular measurements.

Table 5 Optical IOD: synthetic data results in terms of median errors and median correlation index

Concerning the optical IOD, Table 5 shows results which are coarser than the radar ones and comparable to those of the no-covariance ROD (Table 2). This is mostly attributable to range estimation, being the first step of the employed methods, and that a Lambert problem maps initial and final positions as part of the Gooding estimation process, simplifying the underlying dynamics with respect to the one actually linking measurements across the observation arc. In addition, it can be observed that the position error is comparable with the one resulting from the radar IOD when no SR is available and must be estimated from the other measurements, analogously with what done in the optical IOD. Nevertheless, the error is small compared to the MEO and GEO scales, as observed above about the no-covariance ROD performance in the optical case.

7 Real data analysis

In this section, the performance of the tool is assessed based on real data, which are represented by radar and optical observations of targets whose precise orbital ephemeris are available: the Sentinel-3B (LEO) and the Galileo 17c (MEO), whose orbital parameters are reported in Table 6. The observations considered are provided by MFDR [41] for the LEO radar case, with an acquisition carried out on November 24, 2021 which provided angular track, SR and DS, and by MITE [42] for the MEO optical case, with an acquisition conducted on February 22, 2022 which provided angular track. It is noteworthy to highlight that, although MFDR is a tracking radar, its measurements are also leveraged to evaluate the outcomes of radar IOD processes.

Table 6 Real data: targets orbital parameters

As in Sect. 6, the figure of merits investigated are: median position error, median velocity error and correlation index. It is worth to stress that the performance here reported include also the effects of the measurement quality.

First, the correlation process is run considering a 12,000 objects catalogue (represented by TLEs taken from Space-Track website [23]). In both cases, the measurements result correlated to the correct object, and the correlation indexes are reported in Table 7. It is possible to notice that the correlation index for the radar observation is one order of magnitude larger than the optical case one, and this is linked to the measurement quality, as further discussed below.

Table 7 Real data: correlation

Then, the ROD procedure without covariance is tested, starting from the TLE (available on Space-Track website [23]) which is closest to the observation epochs and using SGP4 [24] in the batch filter. The results are reported in Table 8, where the radar position error is much smaller than the optical one; instead, velocity errors present a reversed behaviour. The radar correlation index is larger than 1, and this relates to the real measurement quality (as mentioned in Sect. 3), in particular to the non-zero mean noise. On the whole, the discrepancies closely align with those exhibited in the synthetic data (Table 2). Notably, the velocity error in the radar case demonstrates improvement over the synthetic simulation, whereas the optical observation presents the converse trend.

Table 8 Real data: ROD without covariance

The ROD procedure with covariance is also tested, by considering, as prediction, the result of an UT transformation [26] of the TLE with a covariance associated according to [40], as well as by using SGP4 [24] in the sequential filter. Table 9 reports the results of this analysis, and, comparing it to Table 3, it is possible to observe a decline in performance attributable to the actual data quality. Additionally, the radar shows larger errors than in the no-covariance case, in contrast with what was observed in synthetic data. This is likely due to the algorithm sensitivity to data quality or to a correspondingly reliable uncertainty. Nevertheless, the results are deemed sufficiently accurate and support what has been achieved in the synthetic scenarios.

Table 9 Real data: ROD with covariance

Finally, Table 10 shows the results of the IOD process. In this case, a highly fidelity numerical propagator is used in the refinement phase, considering the gravitational harmonics only, as the target physical parameters are theoretically unknown, being an IOD process. Analogously to the synthetic case, the optical IOD presents larger errors in position and smaller in velocity.

Table 10 Real data: IOD

Overall, the analysis reveals that the developed algorithms work efficiently even in real case scenarios, guaranteeing accurate and robust results. In particular, it is worth to highlight the IOD estimations quality, which is comparable to the ROD one (sometimes even better).

8 Conclusions

The work presented the prototypal version of the orbit determination module embedded in the ISOC Suite, an integrated web-based platform providing multiple space surveillance-related functions and services. This Suite has been developed thanks to a collaboration involving the Italian Air Force, Leonardo Company and Politecnico di Milano.

The module takes, as input, an orbiting objects catalogue and the measurements in the TDM format, and automatically processes them depending on the observation data reported, which can be either optical, or radar, or laser (the latter two are processed in the same way). The method execution varies based on whether the observation data correlates with a catalogued object, or does not. In the former case, the orbital state prediction is refined through measurements either according to sequential (if a covariance is associated to the prediction) or batch filters (if it is not present). The user can select the desired model to perform orbital propagation in the transformation functions of the filter, by exploiting either a Keplerian propagator, or a numerical high-fidelity propagator, or SGP4. In the last case, a fixed-point iteration loop based on a Non-linear Least Squares is used to convert the orbital state from inertial cartesian coordinates to SGP4 elements and back. Instead, in cases where there is no correlation, these filters are applied starting from an orbital state first guess computed through dedicated methodologies.

The performance of the software module has been assessed based on an extensive numerical validation, and real data applications are also provided. Overall, the implemented orbit determination procedures guarantee an accurate estimation, which is robust to measurements noise and which do not deteriorate in real case scenario.

In the future, alternative correlation metrics will be investigated which allow to relax the normal distribution assumption of the measurements. In this context, particular attention will be devoted to the clusters of satellites, which could deteriorate the correlation performance in terms of false positives or ambiguous correlation outcome, given the spatial proximity of the objects involved. More generally, ISOC Suite will be enriched with additional functionalities linked to Space Surveillance and Tracking applications.