Skip to content

Commit

Permalink
implement split by daybreak
Browse files Browse the repository at this point in the history
  • Loading branch information
anitagraser committed Jan 14, 2019
1 parent 8d3dc3b commit dbec24a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
19 changes: 17 additions & 2 deletions tests/test_trajectory.py
Expand Up @@ -232,15 +232,30 @@ def test_get_length_euclidiean(self):
def test_get_direction(self):
df = pd.DataFrame([
{'geometry':Point(0,0), 't':datetime(2018,1,1,12,0,0)},
{'geometry':Point(-6,10), 't':datetime(2018,1,1,12,0,0)},
{'geometry':Point(6,6), 't':datetime(2018,1,1,12,0,1)}
{'geometry':Point(-6,10), 't':datetime(2018,1,1,12,0,1)},
{'geometry':Point(6,6), 't':datetime(2018,1,1,12,0,2)}
]).set_index('t')
geo_df = GeoDataFrame(df, crs={'init': '31256'})
traj = Trajectory(1,geo_df)
result = traj.get_direction()
expected_result = 45
self.assertAlmostEqual(result, expected_result, 1)

def test_split_by_daybreak(self):
df = pd.DataFrame([
{'geometry':Point(0,0), 't':datetime(2018,1,1,12,0,0)},
{'geometry':Point(-6,10), 't':datetime(2018,1,1,12,1,0)},
{'geometry':Point(6,6), 't':datetime(2018,1,3,12,0,1)},
{'geometry':Point(6,16), 't':datetime(2018,1,3,12,5,1)}
]).set_index('t')
geo_df = GeoDataFrame(df, crs={'init': '31256'})
traj = Trajectory(1,geo_df)
split = traj.split('daybreak')
result = len(split)
expected_result = 2
self.assertEqual(result, expected_result)



if __name__ == '__main__':
unittest.main()
Expand Down
12 changes: 12 additions & 0 deletions trajectory.py
Expand Up @@ -206,3 +206,15 @@ def clip(self, polygon):

def intersection(self, feature):
return overlay.intersection(self, feature)

def split(self, mode='daybreak'):
result = []
if mode == 'daybreak':
dfs = [group[1] for group in self.df.groupby(self.df.index.day)]
for i, df in enumerate(dfs):
result.append(Trajectory('{}_{}'.format(self.id, i), df))
else:
raise ValueError('Invalid split mode {}. Must be one of [daybreak]'.format(mode))
return result


0 comments on commit dbec24a

Please sign in to comment.