def read_projectile_trajectories(csv_file="Dataset.csv"): projectiles = [] with open(csv_file, 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=',') projectile = Projectile() first_iteration = True for row in reader: time, along_x, along_y = int(row[0]), float(row[1]), float(row[2]) if not(first_iteration) and time == 0: projectiles.append(projectile) projectile = Projectile() projectile.add_trajectory_point(time, along_x, along_y) continue projectile.add_trajectory_point(time, along_x, along_y) first_iteration = False if projectile.trajectory_points_count() != 0: projectiles.append(projectile) return projectiles
projectiles = read_projectile_trajectories() base_features, label_x, label_y = build_training_sets(projectiles) projectile_tracker = ProjectileTracker() # Build a model on how a projectile behaves. projectile_tracker.fit(base_features, label_x, label_y) # Create the test projectile. test_projectile = Projectile() test_thorow_vx = 1.0 * cos(pi / 4.0) test_thorow_vy = 1.0 * sin(pi / 4.0) # print "Test Projectile(thrown in 45 degree angle at velocity 10 m/s):" for i in xrange(101): base_feat = [[test_thorow_vx, test_thorow_vy, i]] prediction = projectile_tracker.predict(base_feat) pred_x = prediction[0][0] pred_y = prediction[0][1] if i != 0 and pred_y < 0: break test_projectile.add_trajectory_point(i, pred_x, pred_y) print ', '.join([str(elm) for elm in [i, pred_x, pred_y]]) # test_projectile.plot_trajectory()