add the flight time until the IAF

This commit is contained in:
Sven Czarnian
2021-12-14 11:25:02 +01:00
parent a85bcac1e8
commit ba34ff97a9

View File

@@ -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)