def test_add_heading_latlon(self):
     df = pd.DataFrame([
         {'geometry': Point(0, 0), 't': datetime(2018, 1, 1, 12, 0, 0)},
         {'geometry': Point(10, 10), 't': datetime(2018, 1, 1, 12, 10, 0)}
         ]).set_index('t')
     geo_df = GeoDataFrame(df, crs={'init': '4326'})
     traj = Trajectory(1, geo_df)
     traj.add_direction()
     result = traj.df[DIRECTION_COL_NAME].tolist()
     expected_result = [44.561451413257714, 44.561451413257714]
     self.assertAlmostEqual(expected_result[0], result[0], 5)
def prepare_trajectories(data_path, trajectory_id, regions_df):
    df = read_file(data_path)
    df['t'] = pd.to_datetime(df['t'])
    df = df.set_index('t')
    pts_with_region = sjoin(df, regions_df, how="inner", op='intersects')
    trajectory_list = []
    for traj_id, rows in pts_with_region.groupby([trajectory_id]):
        trajectory = Trajectory(traj_id, rows)
        trajectory.add_direction()
        trajectory.add_speed()
        trajectory_list.append(trajectory)
    return trajectory_list
 def test_add_heading(self):
     df = pd.DataFrame([
         {'geometry': Point(0, 0), 't': datetime(2018, 1, 1, 12, 0, 0)},
         {'geometry': Point(6, 0), 't': datetime(2018, 1, 1, 12, 10, 0)},
         {'geometry': Point(6, -6), 't': datetime(2018, 1, 1, 12, 20, 0)},
         {'geometry': Point(-6, -6), 't': datetime(2018, 1, 1, 12, 30, 0)}
         ]).set_index('t')
     geo_df = GeoDataFrame(df, crs={'init': '31256'})
     traj = Trajectory(1, geo_df)
     traj.add_direction()
     result = traj.df[DIRECTION_COL_NAME].tolist()
     expected_result = [90.0, 90.0, 180.0, 270]
     self.assertEqual(expected_result, result)