Inbound.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env python
  2. import pytz
  3. from datetime import datetime
  4. from aman.com import AircraftReport_pb2
  5. from aman.sys.WeatherModel import WeatherModel
  6. from aman.types.PerformanceData import PerformanceData
  7. class Inbound:
  8. def __init__(self, report : AircraftReport_pb2.AircraftReport, performanceData : PerformanceData):
  9. self.Report = report
  10. self.Callsign = report.aircraft.callsign
  11. self.CurrentPosition = report.position
  12. self.ReportTime = datetime.strptime(report.reportTime + '+0000', '%Y%m%d%H%M%S%z').replace(tzinfo = pytz.UTC)
  13. self.InitialArrivalTime = None
  14. self.PlannedArrivalTime = None
  15. self.PlannedRunway = None
  16. self.PlannedStar = None
  17. self.PlannedArrivalRoute = None
  18. self.PlannedTrackmiles = None
  19. self.FixedSequence = False
  20. self.WTC = None
  21. # analyze the WTC
  22. wtc = report.aircraft.wtc.upper()
  23. if 'L' == wtc or 'M' == wtc or 'H' == wtc or 'J' == wtc:
  24. self.WTC = wtc
  25. # search performance data -> fallback to A320
  26. if self.Report.aircraft.type in performanceData.Aircrafts:
  27. self.PerformanceData = performanceData.Aircrafts[self.Report.aircraft.type]
  28. if None == self.PerformanceData:
  29. self.PerformanceData = performanceData.Aircrafts['A320']