Skip to content

Commit 17be59f

Browse files
committed
putting examples on trajectories module
1 parent 64e4acc commit 17be59f

File tree

1 file changed

+98
-10
lines changed

1 file changed

+98
-10
lines changed

pymove/utils/trajectories.py

Lines changed: 98 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,17 @@ def read_csv(
7070
MoveDataFrameAbstract subclass
7171
Trajectory data
7272
73+
Examples
74+
--------
75+
>>> from pymove.utils.trajectories import read_csv
76+
>>> move_df = read_csv('...geolife_sample.csv')
77+
>>> move_df.head()
78+
lat lon datetime id
79+
0 39.984094 116.319236 2008-10-23 05:53:05 1
80+
1 39.984198 116.319322 2008-10-23 05:53:06 1
81+
2 39.984224 116.319402 2008-10-23 05:53:11 1
82+
3 39.984211 116.319389 2008-10-23 05:53:16 1
83+
4 39.984217 116.319422 2008-10-23 05:53:21 1
7384
"""
7485
data = _read_csv(
7586
filepath_or_buffer,
@@ -95,6 +106,12 @@ def invert_dict(d: Dict) -> Dict:
95106
dict
96107
inverted dict
97108
109+
Examples
110+
--------
111+
>>> from pymove.utils.trajectories import invert_dict
112+
>>> traj_dict = {'lat':39.984094, 'lon':116.319236}
113+
>>> invert_dict(traj_dict)
114+
{39.984094: 'lat', 116.319236: 'lon'} <class 'dict'>
98115
"""
99116
return {v: k for k, v in d.items()}
100117

@@ -125,10 +142,10 @@ def flatten_dict(
125142
126143
Examples
127144
--------
128-
>>> d = { 'a': 1, 'b': { 'c': 2, 'd': 3}}
129-
>>> flatten_dict(d)
130-
{ 'a': 1, 'b_c': 2, 'b_d': 3 }
131-
145+
>>> from pymove.utils.trajectories import flatten_dict
146+
>>> traj_dict = {'lat':39.984094, 'lon':116.319236}
147+
>>> flatten_dict(traj_dict, 'x')
148+
{'x_lat': 39.984094, 'x_lon': 116.319236} <class 'dict'>
132149
"""
133150
if not isinstance(d, dict):
134151
return {parent_key: d}
@@ -164,12 +181,28 @@ def flatten_columns(data: DataFrame, columns: List) -> DataFrame:
164181
165182
Examples
166183
--------
167-
>>> d = {'a': 1, 'b': {'c': 2, 'd': 3}}
168-
>>>> data = pd.DataFrame({'col1': [1], 'col2': [d]})
169-
>>>> flatten_columns(data, ['col2'])
170-
col1 col2_b_d col2_a col2_b_c
171-
0 1 3 1 2
172-
184+
>>> from pymove.utils.trajectories import flatten_columns
185+
>>> move_df
186+
lat lon datetime id dict_column
187+
0 39.984094 116.319236 2008-10-23 05:53:05 1 {'a': 1}
188+
1 39.984198 116.319322 2008-10-23 05:53:06 1 {'b': 2}
189+
2 39.984224 116.319402 2008-10-23 05:53:11 1 {'c': 3}
190+
3 39.984211 116.319389 2008-10-23 05:53:16 1 {'d': 4}
191+
4 39.984217 116.319422 2008-10-23 05:53:21 1 {'e': 5}
192+
>>> flatten_columns(moveDf, columns = 'dict_column')
193+
lat lon datetime id
194+
0 39.984094 116.319236 2008-10-23 05:53:05 1
195+
1 39.984198 116.319322 2008-10-23 05:53:06 1
196+
2 39.984224 116.319402 2008-10-23 05:53:11 1
197+
3 39.984211 116.319389 2008-10-23 05:53:16 1
198+
4 39.984217 116.319422 2008-10-23 05:53:21 1
199+
200+
dict_column_b dict_column_d dict_column_e dict_column_a dict_column_c
201+
0 NaN NaN NaN 1.0 NaN
202+
1 2.0 NaN NaN NaN NaN
203+
2 NaN NaN NaN NaN 3.0
204+
3 NaN 4.0 NaN NaN NaN
205+
4 NaN NaN 5.0 NaN NaN
173206
"""
174207
data = data.copy()
175208
if not isinstance(columns, list):
@@ -218,6 +251,16 @@ def shift(
218251
----------
219252
https://stackoverflow.com/questions/30399534/shift-elements-in-a-numpy-array
220253
254+
Examples
255+
--------
256+
>>> from pymove.utils.trajectories import shift
257+
>>> array = [1,2,3,4,5,6,7]
258+
>>> print(shift(array, 1), type(shift(array, 1)))
259+
[0 1 2 3 4 5 6] <class 'numpy.ndarray'>
260+
>>> print(shift(array, 2), type(shift(array, 2)))
261+
[0 0 1 2 3 4 5] <class 'numpy.ndarray'>
262+
>>> print(shift(array, 3), type(shift(array, 3)))
263+
[0 0 0 1 2 3 4] <class 'numpy.ndarray'>
221264
"""
222265
result = np.empty_like(arr)
223266
if fill_value is None:
@@ -254,6 +297,18 @@ def fill_list_with_new_values(original_list: List, new_list_values: List):
254297
new_list_values : list.
255298
The list from which elements will be copied
256299
300+
Returns
301+
-------
302+
The original list with the content of a secondary list
303+
304+
Example
305+
-------
306+
>>> from pymove.utils.trajectories import fill_list_with_new_values
307+
>>> original_list = [4,3,2,1,0]
308+
>>> new_list = [9,8,7,6,5]
309+
>>> fill_list_with_new_values(original_list, new_list)
310+
>>> print(original_list, type(original_list))
311+
['oveD'] <class 'numpy.ndarray'>[9, 8, 7, 6, 5] <class 'list'>
257312
"""
258313
n = len(new_list_values)
259314
original_list[:n] = new_list_values
@@ -272,6 +327,16 @@ def object_for_array(object_: Text) -> ndarray:
272327
-------
273328
array
274329
object converted to a list
330+
331+
Examples
332+
--------
333+
>>> from pymove.utils.trajectories import object_for_array
334+
>>> print(object_for_array('lat'), type(object_for_array('lat')))
335+
['a'] <class 'numpy.ndarray'>
336+
>>> print(object_for_array('move'), type(object_for_array('move')))
337+
['ov'] <class 'numpy.ndarray'>
338+
>>> print(object_for_array('moveDf'), type(object_for_array('moveDf')))
339+
['oveD'] <class 'numpy.ndarray'>
275340
"""
276341
if object_ is None:
277342
return object_
@@ -295,6 +360,29 @@ def column_to_array(data: DataFrame, column: Text):
295360
296361
column : str
297362
Label of data referring to the column for conversion
363+
364+
Returns
365+
-------
366+
dataframe
367+
Dataframe with the new column...
368+
369+
Example
370+
-------
371+
>>> from pymove.utils.trajectories import column_to_array
372+
>>> move_df
373+
lat lon datetime id list_column
374+
0 39.984094 116.319236 2008-10-23 05:53:05 1 [1,2]
375+
1 39.984198 116.319322 2008-10-23 05:53:06 1 [3,4]
376+
2 39.984224 116.319402 2008-10-23 05:53:11 1 [5,6]
377+
3 39.984211 116.319389 2008-10-23 05:53:16 1 [7,8]
378+
4 39.984217 116.319422 2008-10-23 05:53:21 1 [9,10]
379+
>>> column_to_array(moveDf, column = 'list_column')
380+
lat lon datetime id list_column
381+
0 39.984094 116.319236 2008-10-23 05:53:05 1 [1.0,2.0]
382+
1 39.984198 116.319322 2008-10-23 05:53:06 1 [3.0,4.0]
383+
2 39.984224 116.319402 2008-10-23 05:53:11 1 [5.0,6.0]
384+
3 39.984211 116.319389 2008-10-23 05:53:16 1 [7.0,8.0]
385+
4 39.984217 116.319422 2008-10-23 05:53:21 1 [9.0,10.0]
298386
"""
299387
data = data.copy()
300388
if column not in data:

0 commit comments

Comments
 (0)