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)