def __init__(self, lab_name, link_id, link_info, guests, guest_checker): """ :param lab_name: Laboratory this link belongs to :param link_id: Id of this link :param link_info: Information to create this link (settings and endpoints) :param guests: List of guests of the laboratory :param guest_checker: GuestChecker instance """ Link.__init__(self, link_id, link_info, guests, guest_checker, lab_name + "_l" + str(link_id))
def __init__(self, linkID, unode, dnode, params): Link.__init__(self, linkID, unode, dnode, params) # create a list of cells self.cells = list() # freeflowtime is equiv to length/delx*delt #self.freeFlowTime = int((self.params['length']/(self.params['ffs'] / 3600.0) + self.params['timeStep'] - 1) / self.params['timeStep']) # timeStep is used as a parameter since it affects cell size self.numCells = math.ceil(self.params['length'] / (self.params['ffs'] * (1.0 / 3600) * self.params['timeStep'])) for c in range(self.numCells): newCell = Cell( self.params['qcap'], self.params['jamDen'] * self.params['length'] / self.numCells, self.params['bws'] / self.params['ffs'], self.params['timeStep'], self.params['ffs']) self.cells.append(newCell)
def __init__(self, timestep, freeFlowSpeed, backwardWaveSpeed, jamDensity, length, downstreamCapacity, upstreamCapacity=DEFAULT, ID=None): # Create a generic link... Link.__init__(self, timestep, freeFlowSpeed, backwardWaveSpeed, jamDensity, length, downstreamCapacity, ID) # ... then allow spatial queues to have different upstream and downstream capacities self.downstreamCapacity = self.capacity if (upstreamCapacity == DEFAULT): self.upstreamCapacity = self.downstreamCapacity else: self.upstreamCapacity = upstreamCapacity / HOURS * timestep
def __init__(self, timestep, freeFlowSpeed, backwardWaveSpeed, jamDensity, length, capacity, ID=None): Link.__init__(self, timestep, freeFlowSpeed, backwardWaveSpeed, jamDensity, length, capacity, ID) # Create a cell for each timestep needed to traverse the link self.cells = list() # set proportion of cars p = 0 # set vehicle lengths (in feet) and driver reaction time (in seconds) busLength = 40 carLength = 15.75 reactionTime = 1.25 # override backward wave speed, jam density, and capacity given derived equations self.backwardWaveSpeed = ((p * carLength + (1 - p) * busLength) / reactionTime) self.jamDensity = 1 / ( (self.freeFlowSpeed * reactionTime + p * carLength + (1 - p) * busLength)) self.capacity = self.freeFlowSpeed / ( self.freeFlowSpeed * reactionTime + p * carLength + (1 - p) * busLength) # show link properties that were changed print("Link: ", self.ID) print("capacity (veh/s): ", self.capacity) print("jamDensity (veh/ft): ", self.jamDensity) print("backwardWaveSpeed (ft/s): ", self.backwardWaveSpeed) print("----------------") for c in range(self.freeFlowTime): newCell = Cell(self.capacity, self.jamDensity * self.length / self.freeFlowTime, self.backwardWaveSpeed / self.freeFlowSpeed) self.cells.append(newCell)
def __init__(self, identity, left, right, rate, delay, size): Link.__init__(self, identity, left, right, rate, delay, size)
def __init__(self, name, nodes): Link.__init__(self, name, nodes)