Aircraft trajectories can often be interpreted in terms of two fundamental path types: orthodromies (great-circle routes, representing the shortest path on the globe) and loxodromies (constant track-angle paths). While great circles typically define the reality of intercontinental flight planning, operational constraints, such as waypoint routing and air traffic control instructions, mean that actual trajectories are composed of multiple segments, not always conforming neatly to one type or the other. Recognizing which segments correspond to orthodromies or loxodromies can provide semantic meaning to flight data, transforming raw positional information into interpretable patterns of pilot intent or controller intervention.
We present a method to automatically identify these trajectory segments without any prior knowledge about waypoints. The approach leverages map projections: with the Mercator projection, by construction, loxodromies appear as straight lines, while orthodromies do so in gnomonic projections. By detecting straight-line portions in these transformed trajectories, we can classify corresponding segments of the original flight path. This may enable the identification of even short segments, offering insights into flight planning and deconfliction manoeuvres—for example, detecting when an aircraft temporarily deviates from its planned orthodromic route under controller instruction. Using an open trajectories dataset where 13% of the total duration is labeled as deconfliction maneuvers, the identified loxodromies have a duration of 2% of the total duration while 39% of these 2% can be matched with deconfliction maneuvers, higher than the 13% prior.
Automatic Dependent Surveillance-Broadcast (ADS-B) is basically a system where aircraft broadcast their positions approximately each second, and can be received by ground stations and other aircraft equipped with ADS-B receivers. The development of crowd-sourced networks of receivers such as the OpenSky Network [Schäfer et al. 2014] has popularized the analysis of ADS-N trajectory among the research communities and even a larger audience. Post-analysis of ADS-B trajectory data often raises a number of questions about what occurs to a flight along its trajectory. Typical questions that arise are: Is the aircraft climbing, descending, or flying at a constant flight level? Is it turning, or flying straight towards a navaid? Is it following its flight plan, or is it deviated by an air traffic controller so as to avoid a meteorological event or another aircraft? Answers to these questions are not readily available in raw, unlabelled ADS-B data.
Previous works have studied how to detect flight phases [Sun
et al. 2016; Kuzmenko et al. 2022; Zhang et al. 2021],
turns [Sun et al.
2019], holding patterns [Olive et al. 2025],
deconfliction actions [Olive and Basora 2020],
and more patterns [Olive et al. 2020] in
ADS-B trajectories. Using additional data from the AIP
(Aeronautical Information Publication), [Lee and Lee 2023]
identifies the route being followed by the aircraft. In previous
works [Gaume
et al. 2023; Gaume et al. 2024], lateral deviations were
extracted from ADS-B and flight plan data in order to detect
deconfliction events. These two papers rely on the method
aligned_on_navpoint in the traffic library, which
requires flight plan data or at least a set of existing
beacons/navaids.
In this paper, we propose a method to identify orthodromy and loxodromy segments in ADS-B trajectories without any use of flight plan data nor beacons/navaids data. When applicable, this approach can detect when an aircraft follows a fixed heading (loxodromy) or when it follows a geodesic route (orthodromy) towards a navaid, without the help of any additional flight plan data.
The rest of this paper is organized as follows. Section 2 describes the proposed method, and gives an illustration on a well-chosen example. In section 3, we describe the dataset used for a larger experiment, as well as a baseline method and the metrics used for comparison. Section 4 provides some results, and section 5 concludes the paper.
Our method relies on two projections of the latitude and longitude positional data in an space: the gnomonic projection that transforms great circles into straight lines in the projected space, and the Mercator projection, in which any course at constant bearing is a straight segment. Due to the properties of our two projections, trajectory segments exhibiting a constant track angle in a gnomonic (resp. Mercator) projection are likely orthodromic (resp. loxodromic) segments. The final decision is based on the maximum distances between the actual trajectory, the orthodromy, and the loxodromy.
After projection (gnomonic or Mercator), each considered trajectory is smoothed and the track angle is computed for each point. The trajectory segments having a constant track angle (see Figure 1) are then extracted by applying two successive filters to the smoothed trajectory.
The first filter uses a maximum error threshold to detect time intervals during which the track angle remains approximately constant. This filter selects all the segments such that is inferior to . Only the maximal valid segments are considered i.e. valid segments that are not included in any other valid segment. In this paper, the function generating such segments is named . It uses a sliding window and its worst case complexity is where is the number of points inside the array containing the successive track angles of the trajectory. The threshold in this filter is supposed to account for small variations around a constant track angle value. However, in some cases, this filter might select trajectory segments where the track angle is slowly increasing (or decreasing) while staying within the bounds defined by this threshold. Also, even for segments that are truly of constant track angle, there may remain a few points at the extremities that actually belong to the end or the beginning of a turn.
In order to filter out all these cases, we fit a linear model to the track angle measurements in each temporal segment selected by the first filter, and then consider both the deviation from the linear model at the extremities of the segment and the slope of the fitted line. The points at the extremities of the segment are recursively removed when the gap with the linear model is beyond a threshold . This recursive process stops when both extremities have values closer than from the linear model. The resulting segment (if any) is then identified as being of constant track angle if the slope of the fitted line is strictly smaller than a chosen threshold .
The function IsConstant implementing this second
filter is described at the beginning of Algorithm [alg:1].
The above two-step filtering process might end up with many segments satisfying the various threshold conditions. The filtering procedure prevents from selecting segments included in other, larger segments. However, it does not prevent from extracting overlapping segments.
In order to extract the largest possible non-overlapping segments, we prioritize segments by their lengths and prune overlapping segments according to an Intersection over Union (IoU) threshold. This Intersection over Union metric is described in SubSection 3.3.2. The algorithm first sorts all segments, then iteratively selects the longest segment and discards others that overlap beyond the allowed threshold . This ensures a non-redundant set of segments.
The Table 1 summarizes the thresholds and their values of the presented method in this paper, see Algorithm [alg:1] and Algorithm [alg:iou]. They were found using a grid search to maximize a matching criteria as described in Sub-Section 4.1.1.
The extraction process described above is summarized in the pseudo-codes Algorithm [alg:1] and Algorithm [alg:iou].
| threshold parameter | [] | [] | [] | [-] |
|---|---|---|---|---|
| value | 0.5 | 0.1 | 0.001 | 0.1 |
(i,j) None
add to
append to
Before discussing the criteria for discriminating between orthodromy and loxodromy, let us remind that there are cases when this is impossible. When an aircraft flies towards the North or towards the South, it follows both an orthodromy (a meridian) and a loxodromy (constant track angle or degrees) and there is no way to assign the trajectory exclusively to one category. The same problem occurs for flights following the equator.
However, in most cases, the orthodromy and loxodromy on the globe are distinct trajectories. Likewise, the farther from the equator and the more in a general East-West or West-East direction, the more distinct they are. Finally, the longer the trajectory segment, the easier it is to discriminate between orthodromy and loxodromy. To account for these limitations and identify when we cannot discriminate between orthodromy and loxodromy, the maximum distance between the two curves is computed. If this distance is large enough (larger than a threshold ), the curves are deemed discriminable. When this is the case, we still need to evaluate how close the actual trajectory is to the two curves in order to assign it to the corresponding category.
Formally, a trajectory segment is confirmed as an orthodromy if
and
,
and
,
where
is a factor smaller than
that guarantees that the trajectory is sufficiently close from one
of the two curves while being far enough from the other. The logic
is similar for the loxodromy. For the example in Figure 1, and all the results in this
paper, we chose
and
.
The obtained functions IsOrhtodromyOnly and
IsLoxodromyOnly are described in Algorithm [alg:discr].
generating loxodromy connecting point to point of generating orthodromy connecting point to point of generating loxodromy connecting point to point of generating orthodromy connecting point to point of
Figures 1 and 2 illustrate the method on a selected example. Table 2 shows the pairwise maximum distances between the actual, loxodromic, and orthodromic trajectories for the segments identified in Figure 1. The segment just before the loxodromy segment was discarded and does not appear in Table 2 because it did not meet our distance criteria. The loxodromy is most likely a "turn left" deconfliction manoeuvre instructed by an air traffic controller, with a heading that resulted in a constant track angle (see Figure 2).
| identified | segment number | duration [s] | ortho-loxo [m] | adsb-loxo [m] | ortho-adsb [m] |
|---|---|---|---|---|---|
| loxodromy | 1 | 157 | 34.70 | 13.72 | 42.63 |
| orthodromy | 1 | 304 | 114.82 | 107.64 | 13.68 |
| orthodromy | 2 | 507 | 375.17 | 383.71 | 31.60 |
| orthodromy | 4 | 387 | 207.00 | 199.88 | 27.34 |
On this example, we see that it is possible to identify and discriminate loxodromy and orthodromy segments that are fairly short (a few minutes in Table 2). A more comprehensive study is required to explore the limits of this method regarding the possibility to isolate constant track angle segments in noisy data, and the ability to discriminate between loxodromy and orthodromy for trajectories close to a meridian direction.
To our knowledge, there is no dataset that contains the ground
truth on whether the aircraft flies an orthodromy or a loxodromy.
However, we can compare the method presented in this paper with a
baseline method of the Python traffic library, on a
dataset of traffic samples. The baseline used for comparison is
the method aligned_on_navpoint of the
library traffic. It identifies orthodromic segments
only, by testing the alignment to the orthodromic routes leading
to candidate navaids. This method requires knowing the set of
navaids that the flight might align to.
In order to have a good chance to actually observe both orthodromic and loxodromic segments in aircraft trajectories that are usually made mostly of orthodromic segments, we shall consider traffic samples where lateral deconfliction actions were taken.
Many of the deconfliction instructions issued to pilots by air traffic controllers are "turn left or right" lateral maneuvers enforcing a relative heading change (e.g. "turn left degrees") or an absolute one (e.g. "turn left, heading degrees). The new trajectory resulting from such a heading change is a loxodromy.
The data set used in this section is the catalogue of
deconfliction cases extracted in [Gaume et al. 2025], using a
data-driven heuristic method. This dataset contains traffic
samples where some flights are tagged by the heuristic as being
deviated due to a conflict resolution. Each sample contains the
deviated aircraft and the surrounding traffic, as well as
additional information concerning the ATC sector geometry and the
flight plans of the involved aircraft. These flight plans are the
last ones filled before flight, and they contain the waypoints of
the planned route of each aircraft. In the following results,
these waypoints are used as candidates for alignment by the
baseline method aligned_on_navpoint to detect
orthodromic trajectory segments.
The dataset of deconfliction cases in [Gaume et al. 2025] considers only lateral deviations occurring at a constant altitude, above and that last at least . To be able to compare our method to the baseline on the maneuvered aircraft identified in this dataset, a similar filter is applied to the trajectory segments identified by both methods. We select from the dataset of deconfliction cases a subset from the AIRAC cycle 2207, with 3,816 deviated trajectories where the lateral deviation lasts at least .
The method aligned_on_navpoint of the Python
library traffic takes a trajectory as
input an returns the list of trajectory segments that are aligned
to a waypoint of the flight plan. An aircraft is said to be
aligned to a given waypoint if its track angle is close to the one
required to follow an orthodromic (great-circle) trajectory toward
this waypoint. A threshold of
is used for our experiments. This threshold is consistent with the
threshold for
of the method presented in the paper. Two segments may have a
non-empty intersection: at a given time, the aircraft may be
aligned on two waypoints simultaneously. To avoid this, we apply
the method to the return list of segments.
The output of both the baseline and the proposed method are sets of temporal segments. The baseline produces segments tagged as orthodromy, whereas our method generates two sets: one tagged as orthodromy and the other as loxodromy. Comparing two sets of interval segments is not straightforward. We use a metric used in object detection in Machine Learning: the intersection over Union (IoU), it looks for exact match between the predicted segment and the ground truth segments. In Section 4.3, we compare the predicted segments to deconfliction segments. Each deconfliction segment may contain several heading change, and hence several loxodromy/orthodromy. As a consequence when evaluating the predicted segments we look for inclusion in the deconfliction segments, leading us to use the Intersection over Length (IoL) metric.
A common metric used to evaluate the performance of object detection and segmentation models is the Intersection over Union (IoU). Given a predicted region and the corresponding ground-truth region , the IoU is defined as the ratio between the area of overlap and the area of union:
where denotes the area of intersection between the predicted and ground-truth regions, and denotes the area of their union. The IoU value ranges from 0 to 1, where indicates perfect alignment and indicates no overlap.
In practice, a prediction is often considered a correct detection if its IoU with the ground truth exceeds a predefined threshold (e.g., 0.5 or 0.75). This makes IoU a crucial evaluation criterion in benchmarks for object detection and semantic segmentation.
In order to quantify how well a specific trajectory segment identified by a method matches one of the segments in the set returned by the other method, we define the following metric:
Note that the roles of the sets being compared with the
MaxIoU metric are not symmetric. In Eq. [eq:maxiou], the set
is considered as the ground truth and we are trying to assess how
close a segment
predicted by another method is from this ground truth. In the
following of this paper, when comparing two methods
and
(our method and the baseline, typically), we can assume either one
or the other to be the ground truth. We can plot the distribution
of
to assess how the individual segments of
returned by method
match the segments
found by method
.
In this case
is considered as the ground truth. We can also plot the
distribution of
if we consider
as the ground truth. In the following we shall plot both
distributions (see Figure 6 for
example).
The metrics based on the the intersection over union (IoU) are not well suited to test if a segment is included in another segment . To quantify the inclusion, we define the Intersection over Length (IoL) metric:
The metric quantifies the proportion of included in .
Finally, we define the following metric that quantifies the maximum inclusion of a segment in any of the segments of set of intervals
Let us denote respectively and the sets of orthodromic and loxodromic segments identified by our method, and the set of orthodromic segments identified by the baseline method. In this section, we study segments with a duration superior to .
Let us first compare our method with the baseline on the detection of orthodromies only.
The algorithm presented in this paper has four parameters to be tuned described in Section 2.1 (, , and ). As stated in Sub-Section 3.2, choosing is consistent with the parameters of the baseline algorithm. This leaves us with only three parameters to tune. To tune these parameters, the orthodromies set given by the baseline algorithm, described in Sub-Section 3.2, will be used as ground truth. To quantify how much a set of segments is included in an other , we define the metric below: The value will be if any segment in can be found in , whereas this value will be if each segment in has an empty intersection with all segments in . As can be seen, this metric is asymmetric, and using a grid search, the selected parameters are the ones generating a set of orthodromies that maximizes the criteria below: The baseline and our algorithm can both contains false positive and false negative. In order to avoid adjusting parameters over noise, we use only segments with a duration superior to 120s that are empirically more reliable segments. As can be seen in Figure 3, this criteria seems to be in local maxima when using , and . These will be the values used in this study.
The set contains 10191 segments whereas contains 8706 segments. Our method seems to detect more orthodromies than the baseline method. This might come from the fact that the baseline method considers only waypoints from the flight plan to test for alignment. Consequently the trajectory of an aircraft flying toward a navaid that is not in its flight plan will not be identified as an orthodromy by the baseline method.
The distribution of the maximum distance between the orthodromy and the trajectory on the identified segments is plotted on Figure 4. The maximum distance obtained with the method presented in this paper is smaller, suggesting a better segment delimitation than the baseline method.
The distribution of the duration of the orthodromies is plotted on Figure 5. The baseline method identifies more very short segments than the projection method developped in this paper. Conversely, the projection method identifies more segments in the 3-10 minutes range.
Figure 6 plots the histograms of values (see section 3.3 for a definition of this metric) when comparing the two segments sets and obtained with the baseline method and our method, respectively. The histogram at the top of Fig. 6 shows how the individual segments obtained with the baseline method match the set of segments (here considered as the ground truth) obtained with our method. In the histogram at the bottom, the perspective is reversed (the baseline segments are considered as the ground truth) and the histogram shows how the segments obtained with our method match the set obtained with the baseline. In both histograms, the transparent bars show the values obtained when considering all segments in and , whereas the plain bars account only for the segments with a duration superior to .
Looking at the transparent bars in the histograms of Fig. 6, we can observe a peak at on the right of each histogram, indicating a number of approximately perfect matches between the predictions of both trajectories. However, we also observe a non-negligible peak at on the left, indicating that each method detects orthodromic segments that were not detected by the other. When looking at segments with a duration superior to (plain bars in Fig. 6) we can see that this discrepancy is drastically reduced, suggesting that both methods detect mostly the same orthodromic segments in that case.
Let us now consider the set of loxodromic trajectory segments found by our method. There is no baseline method to compare with, for the loxodromy detection. However, we can search for matches with to see when trajectories are tagged both as loxodromies and orthodromies.
As stated in section 2.2, some overlaps are expected between the loxodromies in and the orthodromies in . Considering the latitudes at which our traffic samples are located (Bordeaux ATC center in France) these overlaps are mostly expected for aircraft flying either toward the North or the South, following a meridian.
The proportion of theoretically indistinguishable orthodromy and loxodromy may vary according: 1) the latitude of the airspace, 2) the noisiness of the data, and 3) the track angle of the considered flight. In our experiments, the considered sector is located at a latitude of approximately . This latitude is intermediate within the European airspace, being neither the closest to the equator nor the most northerly. The data used are real ADS-B data which are somewhat noisy data, we did not quantify this noise nor tried to lower or increase it as it is not a simple thing to do. Lastly, concerning the track angle, the Figure 7 plots the average at different track angles for and . This allows to quantify how much orthodromies overlaps with at least one loxodromy. This overlap is almost complete with a around for track angles in the North-South part . This overlap falls drastically to a below when considering track angles in the East-West part . The overlap is even lower when considering long segment with a duration superior to . All this suggests that in this East-West track angle interval, the identified orthodromy and loxodromy segments do not overlap, they are mostly distinct parts of the trajectories and hence orthodromies and loxodromies are distinguishable inside this track angle interval, in the considered sector’s latitude.
As expected, many loxodromic segments oriented in a direction close to a meridian are also identified as orthodromic, and we have much less overlaps between loxodromies and orthodromies for aicraft flying East or West.
Applying the rules described in Algorithm [alg:discr] in SubSection 2.2, we obtain two other sets of segments noted containing 741 segments and containing 4822 segments. This rule successfully separates loxodromies and orthodromies when comparing these sets using the metric (Figure 8).
The dataset in [Gaume et al. 2025] contains deviations that are tagged as deconfliction manoeuvrers by a data-driven heuristic method. Each lateral deconfliction manoeuvrer is associated with a temporal segment. Let us note this set of segments. The duration of these conflict segments amounts to 15 days, 7:57:49 among the 114 days 12:53:34 total flights duration, so a ratio of 13%.
To investigate whether the pure loxodromy in can be matched with a deconfliction maneuver in , we look at the metric. As the deconfliction temporal segment does not necessarily contain only a loxodromy, we prefer this inclusion metric to the metric that measures exact matching between segments. The metric value is if the pure loxodromy is fully included in one deconfliction temporal segment, this value reduces if one part of the pure loxodromy is not included, it can reach the value 0 if the pure loxodromy have no intersection at all with any deconfliction temporal segments.
The bottom histogram in Figure 9 shows the values for the loxodromies, with a logarithmic scale, measuring their inclusion in the segments of the deconfliction maneuvers’ set. The total duration of these pure loxodromies is 3 days, 2:48:33, and the duration of these loxodromies inside the deconfliction maneuvers amounts to 1 day, 5:24:50, so a ratio of 39%, which is greater that the prior ratio 13%. As a sanity check we have plotted a similar figure for the pure orthodromies (top histogram in Figure 9). The total duration of these pure orthodromies is 43 days, 23:14:47, and the duration of these orthodromies inside the deconfliction maneuvers amounts to 22:58:24, so a ratio of 2%, which is way lower than the prior ratio 13%. We can see that only a small proportion of the pure orthodromies is included in a deconfliction maneuver.
This paper presented a geometric method for identifying orthodromic and loxodromic segments within ADS-B trajectory data, based solely on projection properties and without reliance on flight plan information. By combining gnomonic and Mercator projections with an algorithm for detecting constant track-angle segments, the approach provides a data-driven means to interpret the structure of real-world flight trajectories.
The results demonstrate that orthodromic segments detected through this projection-based approach are consistent with those obtained from a baseline method relying on waypoint alignment, while the additional identification of loxodromic segments offers new insight into controller-induced heading maneuvers. Using an open trajectories dataset where 13% of the total duration is labeled as deconfliction maneuvers, the identified pure loxodromies have a duration of 2% of the total duration while 39% of these 2% can be matched with deconfliction maneuvers, higher than the 13% prior. Contrastively, the pure orthodromies identified amounts to 38% of total duration while only 2% of these 38% can be matched with deconfliction maneuvers.
Future work will investigate the robustness of the method under varying noise conditions, its integration with flight plan reconstruction techniques, and its application to large-scale datasets to better characterize navigation practices and air traffic management behavior across different airspaces. Overall, the proposed framework contributes to enriching the semantic interpretation of ADS-B data and paves the way for automated detection of tactical flight patterns.
Conceptualization (R.A), Methodology (R.A), Software (R.A, K.G, X.O), Validation (R.A, X.O, D.G), Formal analysis (all), Investigation (all), Data Curation (R.A, K.G), Writing – Original Draft (R.A, D.G), Writing – Review & Editing (D.G, X.O, N.D), Visualization (X.O)
All the data is available at a link that will be here eventually.
All the figures and algorithms for this paper are available in the repository https://github.com/richardalligier/identifyingortholoxo.