def __init__(self): TrafficArrays.__init__(self) # Standard self.steepness for descent self.steepness = 3000. * ft / (10. * nm) # From here, define object arrays with RegisterElementParameters(self): # FMS directions self.trk = np.array([]) self.spd = np.array([]) self.tas = np.array([]) self.alt = np.array([]) self.vs = np.array([]) # VNAV variables self.dist2vs = np.array([]) # distance from coming waypoint to TOD self.swvnavvs = np.array([]) # whether to use given VS or not self.vnavvs = np.array([]) # vertical speed in VNAV # LNAV variables self.qdr2wp = np.array( [] ) # Direction to waypoint from the last time passing was checked # to avoid 180 turns due to updated qdr shortly before passing wp # Traffic navigation information self.orig = [] # Four letter code of origin airport self.dest = [] # Four letter code of destination airport # Route objects self.route = []
def __init__(self): TrafficArrays.__init__(self) # Standard self.steepness for descent self.steepness = 3000. * ft / (10. * nm) # From here, define object arrays with RegisterElementParameters(self): # FMS directions self.trk = np.array([]) self.spd = np.array([]) self.tas = np.array([]) self.alt = np.array([]) self.vs = np.array([]) # VNAV variables self.dist2vs = np.array([]) # distance from coming waypoint to TOD self.swvnavvs = np.array([]) # whether to use given VS or not self.vnavvs = np.array([]) # vertical speed in VNAV # Traffic navigation information self.orig = [] # Four letter code of origin airport self.dest = [] # Four letter code of destination airport # Route objects self.route = []
def __init__(self): TrafficArrays.__init__(self) with RegisterElementParameters(self): self.lat = np.array([]) # [deg] Active WP latitude self.lon = np.array([]) # [deg] Active WP longitude self.nextaltco = np.array( []) # [m] Altitude to arrive at after distance xtoalt self.xtoalt = np.array( []) # [m] Distance to next altitude constraint self.nextspd = np.array( []) # [CAS[m/s]/Mach] save speed from next wp for next leg self.spd = np.array( [] ) # [CAS[m/s]/Mach]Active WP speed (constraint or calculated) self.spdcon = np.array( []) # [CAS[m/s]/Mach]Active WP speed constraint self.vs = np.array([]) # [m/s] Active vertical speed to use self.turndist = np.array( []) # [m] Distance when to turn to next waypoint self.flyby = np.array( []) # Flyby switch, when False, flyover (turndist=0.0) self.torta = np.array( []) # [s] NExt req Time of Arrival (RTA) (-999. = None) self.xtorta = np.array([]) # [m] distance ot next RTA self.next_qdr = np.array([]) # [deg] track angle of next leg
def __init__(self): TrafficArrays.__init__(self) # [m] Horizontal separation minimum for detection self.rpz = bs.settings.asas_pzr * nm # [m] Vertical separation minimum for detection self.hpz = bs.settings.asas_pzh * ft # [s] lookahead time self.dtlookahead = bs.settings.asas_dtlookahead self.dtnolook = 0.0 # Conflicts and LoS detected in the current timestep (used for resolving) self.confpairs = list() self.lospairs = list() self.qdr = np.array([]) self.dist = np.array([]) self.dcpa = np.array([]) self.tcpa = np.array([]) self.tLOS = np.array([]) # Unique conflicts and LoS in the current timestep (a, b) = (b, a) self.confpairs_unique = set() self.lospairs_unique = set() # All conflicts and LoS since simt=0 self.confpairs_all = list() self.lospairs_all = list() # Per-aircraft conflict data with RegisterElementParameters(self): self.inconf = np.array([], dtype=bool) # In-conflict flag self.tcpamax = np.array([]) # Maximum time to CPA for aircraft in conflict
def __init__(self): TrafficArrays.__init__(self) # From here, define object arrays with RegisterElementParameters(self): # Most recent broadcast data self.lastupdate = np.array([]) self.lat = np.array([]) self.lon = np.array([]) self.alt = np.array([]) self.trk = np.array([]) self.tas = np.array([]) self.gs = np.array([]) self.vs = np.array([]) self.setnoise(False)
def __init__(self): TrafficArrays.__init__(self) with RegisterElementParameters(self): self.lat = np.array([]) # [deg] Active WP latitude self.lon = np.array([]) # [deg] Active WP longitude self.nextaltco = np.array( []) # [m] Altitude to arrive at after distance xtoalt self.xtoalt = np.array( []) # [m] Distance to next altitude constraint self.nextspd = np.array( []) # [CAS[m/s]/Mach] save speed from next wp for next leg self.spd = np.array( [] ) # [CAS[m/s]/Mach]Active WP speed (constraint or calculated) self.spdcon = np.array( []) # [CAS[m/s]/Mach]Active WP speed constraint self.vs = np.array([]) # [m/s] Active vertical speed to use self.turndist = np.array( []) # [m] Distance when to turn to next waypoint self.flyby = np.array( []) # Flyby switch, when False, flyover (turndist=0.0) self.flyturn = np.array( [] ) # Flyturn switch, when False, when Fkase, use flyby/flyover self.turnrad = np.array( []) # Flyturn turn radius (<0 => not specified) self.turnspd = np.array( [] ) # [m/s, CAS] Flyturn turn speed for next turn (<=0 => not specified) self.oldturnspd = np.array( [] ) # [TAS, m/s] Flyturn turn speed for previous turn (<=0 => not specified) self.turnfromlastwp = np.array( [] ) # Currently in flyturn-mode from last waypoint (old turn, beginning of leg) self.turntonextwp = np.array( [] ) # Currently in flyturn-mode to next waypoint (new flyturn mode, end of leg) self.torta = np.array( []) # [s] NExt req Time of Arrival (RTA) (-999. = None) self.xtorta = np.array([]) # [m] distance ot next RTA self.next_qdr = np.array([]) # [deg] track angle of next leg
def __init__(self): TrafficArrays.__init__(self) # [-] switch to activate priority rules for conflict resolution self.swprio = False # switch priority on/off self.priocode = '' # select priority mode self.resopairs = set() # Resolved conflicts that are still before CPA # Resolution factors: # set < 1 to maneuver only a fraction of the resolution # set > 1 to add a margin to separation values self.resofach = bs.settings.asas_mar self.resofacv = bs.settings.asas_mar with RegisterElementParameters(self): self.resooffac = np.array([], dtype=np.bool) self.noresoac = np.array([], dtype=np.bool) # whether the autopilot follows ASAS or not self.active = np.array([], dtype=bool) self.trk = np.array([]) # heading provided by the ASAS [deg] self.tas = np.array([]) # speed provided by the ASAS (eas) [m/s] self.alt = np.array([]) # alt provided by the ASAS [m] self.vs = np.array([]) # vspeed provided by the ASAS [m/s]
def __init__(self): super(Traffic, self).__init__() # Traffic is the toplevel trafficarrays object TrafficArrays.SetRoot(self) self.ntraf = 0 self.cond = Condition() # Conditional commands list self.wind = WindSim() self.turbulence = Turbulence() self.translvl = 5000. * ft # [m] Default transition level with RegisterElementParameters(self): # Aircraft Info self.id = [] # identifier (string) self.type = [] # aircaft type (string) # Positions self.lat = np.array([]) # latitude [deg] self.lon = np.array([]) # longitude [deg] self.distflown = np.array([]) # distance travelled [m] self.alt = np.array([]) # altitude [m] self.hdg = np.array([]) # traffic heading [deg] self.trk = np.array([]) # track angle [deg] # Velocities self.tas = np.array([]) # true airspeed [m/s] self.gs = np.array([]) # ground speed [m/s] self.gsnorth = np.array([]) # ground speed [m/s] self.gseast = np.array([]) # ground speed [m/s] self.cas = np.array([]) # calibrated airspeed [m/s] self.M = np.array([]) # mach number self.vs = np.array([]) # vertical speed [m/s] # Atmosphere self.p = np.array([]) # air pressure [N/m2] self.rho = np.array([]) # air density [kg/m3] self.Temp = np.array([]) # air temperature [K] self.dtemp = np.array([]) # delta t for non-ISA conditions # Wind speeds self.windnorth = np.array( []) # wind speed north component a/c pos [m/s] self.windeast = np.array( []) # wind speed east component a/c pos [m/s] # Traffic autopilot settings self.selspd = np.array([]) # selected spd(CAS or Mach) [m/s or -] self.aptas = np.array([]) # just for initializing self.selalt = np.array([]) # selected alt[m] self.selvs = np.array([]) # selected vertical speed [m/s] # Whether to perform LNAV and VNAV self.swlnav = np.array([], dtype=np.bool) self.swvnav = np.array([], dtype=np.bool) self.swvnavspd = np.array([], dtype=np.bool) # Flight Models self.asas = ASAS() self.ap = Autopilot() self.pilot = Pilot() self.adsb = ADSB() self.trails = Trails() self.actwp = ActiveWaypoint() self.perf = Perf() # Group Logic self.groups = TrafficGroups() # Traffic performance data self.apvsdef = np.array( []) # [m/s]default vertical speed of autopilot self.aphi = np.array([]) # [rad] bank angle setting of autopilot self.ax = np.array( []) # [m/s2] absolute value of longitudinal accelleration self.bank = np.array([]) # nominal bank angle, [radian] self.swhdgsel = np.array( [], dtype=np.bool) # determines whether aircraft is turning # limit settings self.limspd = np.array([]) # limit speed self.limspd_flag = np.array( [], dtype=np.bool ) # flag for limit spd - we have to test for max and min self.limalt = np.array([]) # limit altitude self.limalt_flag = np.array( []) # A need to limit altitude has been detected self.limvs = np.array( []) # limit vertical speed due to thrust limitation self.limvs_flag = np.array([]) # A need to limit V/S detected # Display information on label self.label = [] # Text and bitmap of traffic label # Miscallaneous self.coslat = np.array([]) # Cosine of latitude for computations self.eps = np.array([]) # Small nonzero numbers # Default bank angles per flight phase self.bphase = np.deg2rad(np.array([15, 35, 35, 35, 15, 45])) self.reset()
def __init__(self): super(Traffic, self).__init__() # Traffic is the toplevel trafficarrays object TrafficArrays.SetRoot(self) self.ntraf = 0 self.cond = Condition() # Conditional commands list self.wind = WindSim() self.turbulence = Turbulence() self.translvl = 5000.*ft # [m] Default transition level # Define the periodic loggers # ToDo: explain what these line sdo in comments (type of logs?) datalog.definePeriodicLogger('SNAPLOG', 'SNAPLOG logfile.', settings.snapdt) datalog.definePeriodicLogger('INSTLOG', 'INSTLOG logfile.', settings.instdt) datalog.definePeriodicLogger('SKYLOG', 'SKYLOG logfile.', settings.skydt) with RegisterElementParameters(self): # Register the following parameters for logging with datalog.registerLogParameters('SNAPLOG', self): # Aircraft Info self.id = [] # identifier (string) self.type = [] # aircaft type (string) # Positions self.lat = np.array([]) # latitude [deg] self.lon = np.array([]) # longitude [deg] self.alt = np.array([]) # altitude [m] self.hdg = np.array([]) # traffic heading [deg] self.trk = np.array([]) # track angle [deg] # Velocities self.tas = np.array([]) # true airspeed [m/s] self.gs = np.array([]) # ground speed [m/s] self.gsnorth = np.array([]) # ground speed [m/s] self.gseast = np.array([]) # ground speed [m/s] self.cas = np.array([]) # calibrated airspeed [m/s] self.M = np.array([]) # mach number self.vs = np.array([]) # vertical speed [m/s] #Creation time self.cretime = np.array([]) #Creation time [s] #time in conflict self.timeinconf = np.array([]) #Time in conflict [s] (this value is updated in area) # Atmosphere self.p = np.array([]) # air pressure [N/m2] self.rho = np.array([]) # air density [kg/m3] self.Temp = np.array([]) # air temperature [K] self.dtemp = np.array([]) # delta t for non-ISA conditions # Traffic autopilot settings self.selspd = np.array([]) # selected spd(CAS or Mach) [m/s or -] self.aptas = np.array([]) # just for initializing self.selalt = np.array([]) # selected alt[m] self.selvs = np.array([]) # selected vertical speed [m/s] # Whether to perform LNAV and VNAV self.swlnav = np.array([], dtype=np.bool) self.swvnav = np.array([], dtype=np.bool) # Flight Models self.asas = ASAS() self.ap = Autopilot() self.pilot = Pilot() self.adsb = ADSB() self.trails = Trails() self.actwp = ActiveWaypoint() self.perf = Perf() # Traffic performance data self.apvsdef = np.array([]) # [m/s]default vertical speed of autopilot self.aphi = np.array([]) # [rad] bank angle setting of autopilot self.ax = np.array([]) # [m/s2] absolute value of longitudinal accelleration self.bank = np.array([]) # nominal bank angle, [radian] self.swhdgsel = np.array([], dtype=np.bool) # determines whether aircraft is turning # Crossover altitude self.abco = np.array([]) self.belco = np.array([]) # limit settings self.limspd = np.array([]) # limit speed self.limspd_flag = np.array([], dtype=np.bool) # flag for limit spd - we have to test for max and min self.limalt = np.array([]) # limit altitude self.limalt_flag = np.array([]) # A need to limit altitude has been detected self.limvs = np.array([]) # limit vertical speed due to thrust limitation self.limvs_flag = np.array([]) # A need to limit V/S detected # Display information on label self.label = [] # Text and bitmap of traffic label # Miscallaneous self.coslat = np.array([]) # Cosine of latitude for computations self.eps = np.array([]) # Small nonzero numbers # Default bank angles per flight phase self.bphase = np.deg2rad(np.array([15, 35, 35, 35, 15, 45])) self.reset()