Model In One Minute
The tool estimates a daily A/n-classification metric by sampling active drone positions from a normalized Dn traffic map,
grouping nearby drones into blue disks, calculating local free area per drone, and applying a proposed binary DAA rule.
U-plans are evaluated separately as planned routes with speed, altitude, departure time, and geofence-band checks.
Dn map
Geofences
Traffic snapshots
Blue disks
A/n
DAA rule
Estimated rate/TLS
Sources
The papers support the traffic-map, conflict-graph, separation-radius, and route-risk concepts. Project hypotheses,
numerical approximations, and configurable defaults are identified separately.
| Product description |
Working specification: maps, geofences, grids, vertical separation, U-plans, randomized flights, DAA as black box, and ALS/TLS comparison. |
| LiU probabilistic map paper |
Research paper, Sections II-III: probabilistic drone map, sampled traffic snapshots, conflict graphs, connected components, and the Norrkoping case. |
| ATM Seminar 2019 paper |
Research paper: Norrkoping traffic case, drones represented as disks, and a safety-radius sweep from r = 50 m to r = 300 m. |
| QRA first-party risk paper |
Research paper, Sections 2-4: route-GUI inspiration, probabilistic demand map, Norrkoping case, and an NMAC example with 2r = 152 m. |
| AST notes |
Informal working notes supporting discussion of geofences, obstacle congestion, altitude layers, and parameter sweeps; not a normative source. |
Current Defaults
| Daily operations | 3,000. Scenario default, not source-fixed. |
| Average flight duration | 15 min. Scenario default. |
| Simulated days | 80. Monte Carlo runtime/default tradeoff. |
| TLS target | 1e-7 NMAC/fh. Source-inspired safety target range from product/AST material. |
| Vertical separation | 30 m. Configurable U-plan separation default. |
| U-plan defaults | 12 m/s, 120 m altitude, departure minute 0, and 6 generated routes. Scenario settings, not source-fixed. |
| Default edge search radius | 180 m per geofence. A local baseline of roughly one to two cell widths in this grid; sensitivity setting, not source-fixed. |
| Default receiver cells | 4 per blocked cell. Keeps redistribution local without assigning all mass to one cell; sensitivity setting, not source-fixed. |
Traffic Field: Dn Overlay
Dn is the relative traffic weight stored in the GeoJSON file. The colored overlay shows where sampled active drones are more or less likely to appear.
It is not a direct real-time probability that a drone is currently there.
pi = Dni / Σj Dnj
Here pi is the probability of selecting grid cell i for one active-drone position in one five-minute snapshot. It is not
a probability for an exact point or for an entire day. After selecting a cell, the position is sampled inside that cell. High Dn cells
are therefore sampled more often.
The displayed map is a bounded analysis scenario, not the full reachable world. Transparent or uniform-looking areas are retained exactly as represented
by the loaded grid; the tool does not invent synthetic Dn outside or between source cells.
The overlay displays the current adapted Dn weights. Its colours are contrast-enhanced and clipped near the high end, so colour
differences are relative rather than a linear probability scale. Satellite imagery is an ArcGIS World Imagery backdrop and does not
enter any calculation.
Source: LiU probabilistic traffic map, QRA demand-map approach, and the local GeoJSON Dn field. Display scaling is an implementation choice.
Geofences
A geofence is a polygon that blocks traffic in the horizontal Dn map. A cell is blocked when its centre lies inside the polygon.
Its probability mass is moved to nearby unblocked edge-cell candidates.
adaptedWeightinside = 0
blockedMass = Σ blocked baseWeight
movedMass = blockedMass − unassignedMass
sharej = (1 / dj) / Σk(1 / dk)
For each blocked cell, the nearest configured number of candidates receive mass using inverse-distance weights. The altitude band,
for example 0-3000 m, is used for U-plan crossing checks. The density-based Dn simulation itself is still horizontal.
| Geofences | Number of currently defined geofence polygons. |
| Altitude levels | Number of distinct minimum-maximum altitude bands used by the geofences. |
| Analyzed clear area | The bounded map scenario area outside the horizontal geofence union, estimated on a 100 × 100 sample grid. It is not the total geographic area in which a drone could fly. |
| Analyzed area / active drone | Analyzed clear area divided by average active drones. This is a global map reference, not local A/n. |
| Moved Dn mass | Normalized Dn probability mass removed from blocked cells and successfully redistributed. |
| Edge search radius | For each geofence, the maximum distance from its polygon edge where cells may receive moved Dn mass. |
| Receiver cells | For each blocked cell, how many nearest edge cells receive its moved Dn mass. |
| Geofence area | Planar polygon-area estimate for the individual geofence. |
| Blocked cells | Dn cells whose centres lie inside the geofence. Overlapping cells are assigned to the first matching geofence. |
| Receiver edge cells | Unblocked candidate cells whose centres are within the selected search radius of a geofence edge. |
| No receiver cells | The blocked mass is reported as unassigned and the density evaluation is marked Insufficient. The tool does not silently move it somewhere else. |
RWY5K is a bundled local geometry preset for scenario work; the cited material does not establish it as an authoritative airspace restriction.
Source: Product description for geofences/height restrictions; QRA and AST notes motivate boundary congestion. The exact edge-push algorithm and its parameters are project sensitivity choices.
U-plans
A U-plan is one planned drone route. It does not replace the Dn background simulation; it is evaluated as a separate planned route layer.
In the current implementation, one U-plan represents one drone mission.
| Speed | Route speed in m/s. Used to convert route distance into travel time. |
| Altitude | Route altitude in metres. Used against geofence altitude bands and pairwise route conflicts. |
| Departure | Start time in minutes from the beginning of the day. |
| Random route count | Number of Dn-sampled routes to generate. |
routeDistance = Σlegs ‖xi+1 − xi‖
duration = routeDistance / speed
Generated U-plans sample start and end points from adapted Dn, add 1-3 bend waypoints, vary speed/altitude/departure, and reject active geofence-band crossings when possible.
They do not avoid other generated U-plans until rerouting is requested. After creation, each U-plan row has a Route settings dropdown
where speed, altitude, and departure can be adjusted for that route.
The route row reports whether it is manual or Dn-generated, number of legs, first-leg heading, total distance, calculated duration,
altitude, speed, and geofence-band crossings. Together with the global U-plan conflict output, this supports strategic route feasibility:
can the mission avoid restrictions and remain separated from other planned missions at the same time? It does not contribute to the
background level-of-safety KPI.
Reroute uses a strategic grid planner. It keeps the original start/end points, searches for new intermediate waypoints with A*, blocks active geofence bands,
and rejects route segments that are too close to other U-plans at the same time. If geometry alone is not enough, it tests small altitude and departure shifts.
A start point inside an active geofence band is reported as an error because rerouting cannot both preserve that start and produce a fully valid route.
Reroute all processes plans sequentially, so its result is heuristic and can depend on route order.
blocked if routeSegment ∩ activeGeofenceBand ≠ ∅
routeConflict if horizontalDistance(t) ≤ 2r and verticalDistance ≤ verticalSeparation
τCPA = clamp(−p0 · vrel / ‖vrel‖², 0, Δt)
dCPA = ‖p0 + vrelτCPA‖
Pairwise route conflicts use a continuous closest-point-of-approach calculation on every overlapping constant-speed route-leg interval.
If the relative velocity is zero, their separation remains constant during that interval.
The output counts merged conflict intervals; the same pair may count more than once if it separates and later conflicts again.
This checks the time between displayed samples as well, so a fast crossing cannot pass unnoticed between two time steps.
Source: Product description for U-plans, randomized flights, and {course, distance, height} route legs; QRA route-GUI inspiration. CPA and A* routing are project implementation choices.
Scenario Model
The scenario converts daily demand into simultaneous traffic exposure and flight hours. Each simulated day contains independent five-minute
traffic snapshots. The 95% Monte Carlo interval describes sampling uncertainty between those simulated days; it does not cover uncertainty in
Dn, the A/n hypothesis, real operations, or DAA performance.
activeDrones = dailyOperations · averageFlightMinutes / 1440
flightHoursPerDay = dailyOperations · averageFlightMinutes / 60
With the defaults, 3,000 daily operations and 15 minutes per operation give 31.25 expected active drones in each of 288 snapshots per day.
The actual snapshot count is Poisson-sampled around 31.25. Positions are then sampled independently from Dn. The background simulation
contains no origin, destination, line segment, speed, heading, or persistent drone identity between snapshots; it is not the same as
generating hundreds of random U-plans.
Scenario sampling is deterministically seeded so every DAA preset is evaluated against the same sampled traffic. Recalculating
an unchanged in-memory scenario produces the same result.
| Daily operations | Number of drone operations represented during one simulated day. Together with duration, this controls expected simultaneous traffic. |
| Average flight duration | Mean airborne time per operation. It is used both for average active drones and accumulated flight hours. |
| Simulated days | Number of independent Monte Carlo days. More days reduce sampling uncertainty but increase runtime. |
| TLS target event rate | Maximum target NMAC rate per operational flight hour. It is a comparison target, not produced by the simulation. |
| Vertical separation | Maximum vertical distance used by U-plan pairwise conflict detection. It does not change the horizontal Dn snapshots. |
| Selected DAA radius | The selected preset's radius r. It controls the source-backed 2r encounter test and the proposed πr² A/n threshold. |
| Operational flight hours/day | Total flight hours accumulated by all operations in one day. |
| Average active drones | Expected number of drones airborne at a random moment. |
| Selected DAA threshold | The current hypothesis boundary πr². A blue disk is NMAC-classified when its local A/n is below this value. |
| TLS as safety level | Inverse of TLS. For 1e-7, this is 1.00e+7 flight hours per NMAC. |
selectedDaaThreshold = πr²
tlsSafetyLevel = 1 / TLS
Source: Product description for ALS/TLS per operational flight hour. Numeric scenario defaults are configurable.
DAA Models
Each current preset is represented only by one conflict radius r; these are radius sensitivity points, not complete ATM, QRA, or supplier
DAA implementations. The source-backed geometric baseline is that two drone safety disks conflict when their centres are at most 2r apart.
Larger r therefore creates more potential connected groups. The selected radius can be edited; the Basis label records the preset's origin.
| ATM low | r = 50 m, from ATM parameter sweep. |
| QRA NMAC | r = 76 m, derived from QRA 2r = 152 m. |
| ATM high | r = 300 m, from ATM parameter sweep. |
Source for r and the 2r overlap test: ATM Seminar 2019 paper and QRA first-party risk paper. These papers do not establish the A/n threshold below.
Blue Disks and A/n
A blue disk is a local group of drones connected by pairwise horizontal distance. If drone A is close to B, and B is close to C,
all three belong to the same blue disk even if A and C are not directly close.
connected if distance(i, j) ≤ 2r
Rblue = r + maxi ‖xi − x̄‖
A/n = localClearArea / dronesInBlueDisk
The current blue disk is a circular implementation envelope centred on the component mean x̄; it is not a minimum enclosing circle.
localClearArea is the estimated area inside that envelope that is not inside geofences. The tool estimates this with 72 deterministic area samples.
The canvas boundary is not treated as a wall: a blue disk may extend outside the displayed map without losing area. Only geofences reduce
localClearArea.
Grouping is transitive: if A connects to B and B connects to C, all three form one component. This resembles the Java prototype's
recursive enclosing-disk idea, but the geometry is not identical. The Java code merges disks recursively; this tool first finds the complete
connected component and then uses the mean-centred envelope above. Radii are therefore not simply added as 3r, 5r, and so on.
Source-backed concept: LiU conflict graph/connected components and ATM overlapping safety disks. Mean-centred envelope and 72-point area estimate: project implementation choices.
Binary DAA Rule
The current DAA rule is an explicit research hypothesis and is replaceable. It classifies each blue disk as either NMAC-classified or not classified.
NMAC = 1 ⇔ A/n < πr²
NMAC = 0 ⇔ A/n ≥ πr²
Concrete example without geofences, with r = 50 m and two drones separated by distance d. Their mean-centred blue-disk radius is
Rblue = r + d/2. At d = 20 m, Rblue = 60 m and A/n = π · 60²/2 ≈ 5,655 m², which is below
the 7,854 m² threshold: NMAC = 1. At d = 100 m, the drones are still connected exactly at 2r, but Rblue = 100 m and
A/n = π · 100²/2 ≈ 15,708 m²: NMAC = 0. A geofence cutting either disk reduces A and can move the same geometry toward NMAC = 1.
The πr² boundary is not a validated DAA law. It operationalizes the project idea of mapping r and local A/n to a binary result so that the prototype can be tested.
It does not model real sensor range, field of view, latency, nuisance alerts, or avoidance manoeuvres.
Source: Product description for black-box DAA and parameterized capability. Exact πr² threshold: project research hypothesis, not paper-derived.
Output and Safety KPIs
| Mean NMAC-classified blue-disk observations/day | Average number of connected components, across all five-minute snapshots in a simulated day, where the rule returns NMAC = 1. One component counts once per snapshot whether it contains two drones or many. It is not a crash count, and the UI does not report the component's drone count. Because snapshots are independent, the tool also cannot identify a persistent or unique encounter across time. |
| Level-of-safety KPI | Estimated NMAC classifications per 10,000 operations. |
| Estimated A/n-classified event rate | Mean classifications/day divided by operational flight hours/day. |
| Estimated classified-event interval | Inverse estimated rate: flight hours per classified blue disk. |
| TLS evidence check | Pass if the 95% upper rate is at or below TLS; Fail if the 95% lower rate is above TLS; otherwise Insufficient. |
| NMAC share of blue disks | Fraction of detected blue disks classified as NMAC. |
| Probability of at least one classification | Fraction of simulated days containing at least one NMAC-classified blue-disk observation. |
| Blue disks/day | Mean number of connected components containing at least two drones, summed across the day's snapshots. |
| Mean local A/n | Arithmetic mean of local A/n over all observed blue disks for the selected model. |
| Shared traffic/day | The configured daily operations used for every DAA preset, allowing a like-for-like radius comparison. |
LoS KPI = meanNMACPerDay / dailyOperations · 10000
estimatedRate = meanClassificationsPerDay / flightHoursPerDay
estimatedEventInterval = 1 / estimatedRate
Pass ⇔ CI95%, upper ≤ TLS
Fail ⇔ CI95%, lower > TLS
Positive-event intervals use between-day variation with a Poisson variance floor. With zero observed classifications, the one-sided 95% Poisson upper bound is
−ln(0.05) divided by simulated flight hours. These are uncertainty diagnostics for the simulator, not certification evidence.
s²effective = max(sampleVariance, dailyMean)
CI95% = estimatedRate ± 1.96 · √(s²effective / simulatedDays) / flightHoursPerDay
At TLS = 1e-7, a zero-event run needs at least −ln(0.05)/1e-7 ≈ 29.96 million simulated flight hours before it can show Pass at 95% confidence.
The default scenario provides 80 · 750 = 60,000 flight hours, so even zero classifications would be Insufficient rather than Pass. A clearly high
observed rate can still produce Fail.
Source: Product description for ALS/TLS. Confidence handling uses standard Monte Carlo sampling uncertainty and the exact zero-count Poisson upper bound.
Charts
| A/n research-hypothesis decision map |
2D view of the proposed binary rule. X is A/n, Y is r. Dark means not classified; red means NMAC-classified. At r = 50 m, A/n = 6,000 m² lies on the red side of the 7,854 m² boundary, while A/n = 10,000 m² lies on the dark side. Yellow/cyan bubbles summarize observed A/n bins at the selected r, bubble size is frequency, and the ring is mean A/n. The ring is not a TLS verdict and does not imply that every observation has the same classification. |
| A/n research-hypothesis surface |
Rotatable 3D view of the same rule. X is A/n, Y is r, Z is classification 0 or 1: the 6,000 m² example is raised to Z = 1, while the 10,000 m² example remains at Z = 0. Its A/n axis zooms to the selected model's observed range, while labels retain the true values. A highlighted slice and binned bubbles show observations at the selected r without moving or adding artificial radius values. It explains the hypothesis and is not a DAA performance surface. |
Source: Visual design inspired by the supplied sharp 0/1 boundary reference; calculation is the project research hypothesis.
Import and Export
Export JSON stores the scenario inputs, DAA radii, geofence geometry and settings, U-plan geometry and settings, satellite and Dn-overlay choices, and calculated outputs.
Import JSON validates the stored inputs, restores them, and recalculates outputs against the local Dn dataset and current tool version. Stored result values
are not trusted as current results. The current format is schema version 1 and references, rather than embeds, the local GeoJSON dataset.
Implementation feature for reproducible scenarios; not a mathematical model assumption.
Known Limits
- The Dn simulation is horizontal; altitude is currently used for U-plans and geofence-band checks only.
- Independent snapshots do not represent persistent drone identities or unique encounters across time.
- U-plans are evaluated separately from the main level-of-safety KPI.
- Strategic U-plan rerouting is implemented, but dynamic collision-avoidance manoeuvres and return-to-normal are not.
- The edge-push model, blue-disk envelope, local area sampling, and πr² rule are research approximations rather than validated DAA behaviour.
- No real SAAB DAA implementation is modeled yet.
- The 95% intervals quantify Monte Carlo uncertainty only; they do not account for model-form uncertainty or validate the A/n hypothesis.