Kaynağa Gözat

extend the arrival candidates

Sven Czarnian 3 yıl önce
ebeveyn
işleme
9cd46dc4cc
1 değiştirilmiş dosya ile 8 ekleme ve 6 silme
  1. 8 6
      aman/types/Inbound.py

+ 8 - 6
aman/types/Inbound.py

@@ -61,15 +61,17 @@ class Inbound:
                 flightTime, flightTimeUntilIaf, trackmiles, arrivalRoute = self.arrivalEstimation(identifier.Runway, star, weatherModel)
 
                 avgSpeed = trackmiles / (float(flightTime.seconds) / 3600.0)
-                ttg = flightTime - timedelta(minutes = (trackmiles / (avgSpeed * 1.1)) * 60)
-                ttl = timedelta(minutes = (trackmiles / (avgSpeed * 0.9)) * 60) - flightTime
+                # the closer we get to the IAF the less time delta can be achieved by short cuts, delay vectors or speeds
+                ratio = min(2.0, max(0.0, self.Report.distanceToIAF / (trackmiles - self.Report.distanceToIAF)))
+                possibleTimeDelta = (trackmiles / (avgSpeed * 0.9)) * 60
+                timeDelta = timedelta(minutes = (possibleTimeDelta - flightTime.total_seconds() / 60) * ratio)
                 ita = self.ReportTime + flightTime
-                earliest = ita - ttg
-                latest = ita + ttl
+                earliest = ita - timeDelta
+                latest = ita + timeDelta
 
-                self.ArrivalCandidates[identifier.Runway.Name] = ArrivalData(ttg = ttg, star = star, ita = ita, earliest = earliest,
+                self.ArrivalCandidates[identifier.Runway.Name] = ArrivalData(ttg = timeDelta, star = star, ita = ita, earliest = earliest,
                                                                              entry = flightTimeUntilIaf, touchdown = flightTime,
-                                                                             ttl = ttl, latest = latest)
+                                                                             ttl = timeDelta, latest = latest, route = arrivalRoute, trackmiles = trackmiles)
 
         # calculate the first values for later plannings
         for candidate in self.ArrivalCandidates: