class Car(Model): name = CarModel() price = Price() placa = LicensePlate() def __repr__(self): return '<%s %s>' % (self.name, self.price)
def __init__(self, **kwargs): """ Initialize the game object kwargs -- the keywords arguments are given to the carModel """ model = CarModel(**kwargs) view = CarView(model) behaviour = CarBehaviour('human', None, model) super(Car, self).__init__(gameObjectModel=model, gameObjectBehaviour=behaviour, gameObjectView=view) logging.log(1, "Trace: Car.__init__(%s)" % kwargs)
def task_model_restore(items): model_count = 0 for item in items: mrange = ModelRange() mrange.name = item['name'] mrange.year_start = item['yearStart'] mrange.year_end = item['yearEnd'] mrange.notes = item['notes'] mrange.put() for model in item['carModels']: carmodel = CarModel(key_name=model['modelId']) carmodel.name = model['name'] carmodel.engine_code = model['engineCode'] carmodel.typeno = model['typeNo'] if model['imageUrl'] != None: carmodel.imageUrl = db.Link(model['imageUrl']) carmodel.year_from = model['yearFrom'] carmodel.year_to = model['yearTo'] carmodel.notes = model['notes'] carmodel.model_range = mrange carmodel.put() model_count = model_count + 1
def import_car_models(self, csv): ranges = ModelRange.all().fetch(100) imported = 0 lines = csv.split('\n') for line in lines: if len(line.strip()) == 0: print 'Skipping line', line continue model = CarModel() fields = line.strip().split(';') model.model_range = self.get_range(ranges, fields[0].strip()) model.name = fields[1].strip() model.engine_code = fields[2].strip() model.typeno = fields[3].strip() if fields[4].strip() != '': model.image_url = db.Link(fields[4].strip()) model.year_from = int(fields[5]) model.year_to = int(fields[6]) model.notes = fields[7].strip() model.put() imported = imported + 1 print imported, 'models imported'
from model import CarModel import matplotlib.pyplot as plt # Config n = 100 # Amount of model steps car_count = 20 # Amount of cars in model width = 100 # Road size acceleration = 1 speed_limit = 5 randomization = 0.05 vision_range = speed_limit * 3 all_speeds = [] all_tracked_agent_speeds = [] model = CarModel(car_count, width, acceleration, vision_range, randomization, speed_limit) for i in range(n): model.step() total = 0 tracked_agent_total = 0 for agent in model.schedule.agents: total += agent.speed if agent.unique_id == round(car_count / 2): tracked_agent_total += agent.speed all_speeds.append(total / model.num_agents) all_tracked_agent_speeds.append(tracked_agent_total) print('all_speeds:', all_speeds) plt.xlabel("Steps") plt.ylabel("Average speed")
results_delay = [] for num, cars in enumerate(traffic_occupations, start=0): print("Running: " + str(cars) + " cars..") results_speed.append([]) results_delay.append([]) settings = [] for x in speed_limits: settings.append([cars, 100, acceleration, 50, randomization, x]) for num_setting, setting in enumerate(settings, start=0): results_speed[num].append([]) results_delay[num].append([]) all_delay = [] all_speeds = [] model = CarModel(*setting) for i in range(n): model.step() # Store the results total = 0 for agent in model.schedule.agents: total += agent.speed ave_speed = total / model.num_agents all_delay.append(abs(setting[5] - ave_speed)) all_speeds.append(ave_speed) results_speed[num][num_setting] = np.mean(all_speeds) results_delay[num][num_setting] = np.mean(all_delay) def plot_line(x_data, y_data, y_label):