浏览代码

add the flight time until the IAF

Sven Czarnian 3 年之前
父节点
当前提交
ba34ff97a9
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      aman/sys/aco/Node.py

+ 5 - 2
aman/sys/aco/Node.py

@@ -77,6 +77,7 @@ class Node:
         currentPosition = [ self.Inbound.Report.dynamics.altitude, self.Inbound.Report.dynamics.groundSpeed ]
         distanceToWaypoint = self.PredictedDistanceToIAF
         flightTimeSeconds = 0
+        flightTimeOnStarSeconds = 0
         nextWaypointIndex = 0
         flownDistance = 0.0
         arrivalRoute = [ ArrivalWaypoint(waypoint = star.Route[0], trackmiles = distanceToWaypoint) ]
@@ -120,6 +121,8 @@ class Node:
                 currentIAS = newIAS
 
             flightTimeSeconds += 10
+            if flownDistance >= self.PredictedDistanceToIAF:
+                flightTimeOnStarSeconds += 10
             if flownDistance >= trackmiles:
                 self.updateArrivalWaypoint(arrivalRoute, flightTimeSeconds, currentPosition[0], currentIAS, currentPosition[1])
                 break
@@ -143,7 +146,7 @@ class Node:
 
                     arrivalRoute.append(ArrivalWaypoint(waypoint = star.Route[nextWaypointIndex], trackmiles = arrivalRoute[-1].Trackmiles + distanceToWaypoint))
 
-        return timedelta(seconds = flightTimeSeconds), trackmiles, arrivalRoute
+        return timedelta(seconds = flightTimeSeconds), trackmiles, arrivalRoute, timedelta(seconds = flightTimeOnStarSeconds)
 
     def __init__(self, inbound : Inbound, referenceTime : datetime, weatherModel : WeatherModel,
                  navData : SctEseFormat, sequencingConfig : AirportSequencing):
@@ -179,7 +182,7 @@ class Node:
             star = Node.findArrivalRoute(self.Inbound.Report.initialApproachFix, identifier.Runway, navData)
 
             if None != star:
-                flightTime, trackmiles, arrivalRoute = self.arrivalEstimation(identifier.Runway, star, weatherModel)
+                flightTime, trackmiles, arrivalRoute, flightTimeOnStar = self.arrivalEstimation(identifier.Runway, star, weatherModel)
 
                 # calculate average speed gain
                 avgSpeed = trackmiles / (flightTime.total_seconds() / 3600.0)