ArrivalTime.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python
  2. from datetime import datetime, timedelta
  3. from aman.types.ArrivalRoute import ArrivalRoute
  4. class ArrivalTime:
  5. def __init__(self, **kargs):
  6. self.Star = None
  7. self.MaximumTimeToGain = None
  8. self.FlightTimeUntilIaf = None
  9. self.FlightTimeUntilTouchdown = None
  10. self.InitialArrivalTime = None
  11. self.EarliestArrivalTime = None
  12. for key, value in kargs.items():
  13. if 'ttg' == key:
  14. if True == isinstance(value, timedelta):
  15. self.MaximumTimeToGain = value
  16. elif True == isinstance(value, (int, float)):
  17. self.MaximumTimeToGain = timedelta(seconds = float(value))
  18. else:
  19. raise Exception('Invalid type for ttg')
  20. elif 'star' == key:
  21. if True == isinstance(value, ArrivalRoute):
  22. self.Star = value
  23. else:
  24. raise Exception('Invalid type for star')
  25. elif 'ita' == key:
  26. if True == isinstance(value, datetime):
  27. self.InitialArrivalTime = value
  28. else:
  29. raise Exception('Invalid type for ita')
  30. elif 'earliest' == key:
  31. if True == isinstance(value, datetime):
  32. self.EarliestArrivalTime = value
  33. else:
  34. raise Exception('Invalid type for earliest')
  35. elif 'touchdown' == key:
  36. if True == isinstance(value, timedelta):
  37. self.FlightTimeUntilTouchdown = value
  38. else:
  39. raise Exception('Invalid type for touchdown')
  40. elif 'entry' == key:
  41. if True == isinstance(value, timedelta):
  42. self.FlightTimeUntilIaf = value
  43. else:
  44. raise Exception('Invalid type for entry')
  45. else:
  46. raise Exception('Unknown key: ' + key)