Skip to content

Commit d9e5591

Browse files
authored
Update to 0.20
including necessary dependency pins
1 parent 11fcee8 commit d9e5591

22 files changed

+252
-192
lines changed

1-tutorials/1-getting-started.ipynb

+2-2
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@
345345
],
346346
"metadata": {
347347
"kernelspec": {
348-
"display_name": "Python 3 (ipykernel)",
348+
"display_name": "mpd-ex",
349349
"language": "python",
350350
"name": "python3"
351351
},
@@ -359,7 +359,7 @@
359359
"name": "python",
360360
"nbconvert_exporter": "python",
361361
"pygments_lexer": "ipython3",
362-
"version": "3.10.14"
362+
"version": "3.10.15"
363363
}
364364
},
365365
"nbformat": 4,

1-tutorials/10-smoothing-trajectories.ipynb

+39-22
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"\n",
1818
"[Documentation](https://movingpandas.readthedocs.io/en/main/api/trajectorysmoother.html)\n",
1919
"\n",
20-
"A closely related type of operation is [trajectory generalization which is coverd in a separate notebook](./7-generalizing-trajectories.ipynb). "
20+
"A closely related type of operation is [trajectory generalization which is covered in a separate notebook](./7-generalizing-trajectories.ipynb). "
2121
]
2222
},
2323
{
@@ -30,7 +30,7 @@
3030
"import geopandas as gpd\n",
3131
"import movingpandas as mpd\n",
3232
"import shapely as shp\n",
33-
"import hvplot.pandas \n",
33+
"import hvplot.pandas\n",
3434
"import matplotlib.pyplot as plt\n",
3535
"\n",
3636
"from geopandas import GeoDataFrame, read_file\n",
@@ -39,11 +39,18 @@
3939
"from holoviews import opts, dim\n",
4040
"\n",
4141
"import warnings\n",
42-
"warnings.filterwarnings('ignore')\n",
4342
"\n",
44-
"plot_defaults = {'linewidth':5, 'capstyle':'round', 'figsize':(9,3), 'legend':True}\n",
45-
"opts.defaults(opts.Overlay(active_tools=['wheel_zoom']))\n",
46-
"hvplot_defaults = {'tiles':'CartoLight', 'frame_height':320, 'frame_width':320, 'cmap':'Viridis', 'colorbar':True}\n",
43+
"warnings.filterwarnings(\"ignore\")\n",
44+
"\n",
45+
"plot_defaults = {\"linewidth\": 5, \"capstyle\": \"round\", \"figsize\": (9, 3), \"legend\": True}\n",
46+
"opts.defaults(opts.Overlay(active_tools=[\"wheel_zoom\"]))\n",
47+
"hvplot_defaults = {\n",
48+
" \"tiles\": \"CartoLight\",\n",
49+
" \"frame_height\": 320,\n",
50+
" \"frame_width\": 320,\n",
51+
" \"cmap\": \"Viridis\",\n",
52+
" \"colorbar\": True,\n",
53+
"}\n",
4754
"\n",
4855
"mpd.show_versions()"
4956
]
@@ -54,8 +61,8 @@
5461
"metadata": {},
5562
"outputs": [],
5663
"source": [
57-
"gdf = read_file('../data/geolife_small.gpkg')\n",
58-
"tc = mpd.TrajectoryCollection(gdf, 'trajectory_id', t='t')"
64+
"gdf = read_file(\"../data/geolife_small.gpkg\")\n",
65+
"tc = mpd.TrajectoryCollection(gdf, \"trajectory_id\", t=\"t\")"
5966
]
6067
},
6168
{
@@ -94,7 +101,9 @@
94101
"metadata": {},
95102
"outputs": [],
96103
"source": [
97-
"smooth = mpd.KalmanSmootherCV(split).smooth(process_noise_std=0.1, measurement_noise_std=10)\n",
104+
"smooth = mpd.KalmanSmootherCV(split).smooth(\n",
105+
" process_noise_std=0.1, measurement_noise_std=10\n",
106+
")\n",
98107
"print(smooth)"
99108
]
100109
},
@@ -104,9 +113,11 @@
104113
"metadata": {},
105114
"outputs": [],
106115
"source": [
107-
"kwargs = {**hvplot_defaults, 'line_width':4}\n",
108-
"(split.hvplot(title='Original Trajectories', **kwargs) + \n",
109-
" smooth.hvplot(title='Smooth Trajectories', **kwargs))"
116+
"kwargs = {**hvplot_defaults, \"line_width\": 4}\n",
117+
"(\n",
118+
" split.hvplot(title=\"Original Trajectories\", **kwargs)\n",
119+
" + smooth.hvplot(title=\"Smooth Trajectories\", **kwargs)\n",
120+
")"
110121
]
111122
},
112123
{
@@ -115,10 +126,12 @@
115126
"metadata": {},
116127
"outputs": [],
117128
"source": [
118-
"kwargs = {**hvplot_defaults, 'c':'speed', 'line_width':7, 'clim':(0,20)}\n",
129+
"kwargs = {**hvplot_defaults, \"c\": \"speed\", \"line_width\": 7, \"clim\": (0, 20)}\n",
119130
"smooth.add_speed()\n",
120-
"(split.trajectories[2].hvplot(title='Original Trajectory', **kwargs) + \n",
121-
" smooth.trajectories[2].hvplot(title='Smooth Trajectory', **kwargs))"
131+
"(\n",
132+
" split.trajectories[2].hvplot(title=\"Original Trajectory\", **kwargs)\n",
133+
" + smooth.trajectories[2].hvplot(title=\"Smooth Trajectory\", **kwargs)\n",
134+
")"
122135
]
123136
},
124137
{
@@ -140,11 +153,15 @@
140153
"cleaned = traj.copy()\n",
141154
"cleaned = mpd.OutlierCleaner(cleaned).clean(alpha=2)\n",
142155
"\n",
143-
"smoothed = mpd.KalmanSmootherCV(cleaned).smooth(process_noise_std=0.1, measurement_noise_std=10)\n",
144-
" \n",
145-
"(traj.hvplot(title='Original Trajectory', **kwargs) + \n",
146-
" cleaned.hvplot(title='Cleaned Trajectory', **kwargs) + \n",
147-
" smoothed.hvplot(title='Cleaned & Smoothed Trajectory', **kwargs))"
156+
"smoothed = mpd.KalmanSmootherCV(cleaned).smooth(\n",
157+
" process_noise_std=0.1, measurement_noise_std=10\n",
158+
")\n",
159+
"\n",
160+
"(\n",
161+
" traj.hvplot(title=\"Original Trajectory\", **kwargs)\n",
162+
" + cleaned.hvplot(title=\"Cleaned Trajectory\", **kwargs)\n",
163+
" + smoothed.hvplot(title=\"Cleaned & Smoothed Trajectory\", **kwargs)\n",
164+
")"
148165
]
149166
},
150167
{
@@ -157,7 +174,7 @@
157174
],
158175
"metadata": {
159176
"kernelspec": {
160-
"display_name": "Python 3 (ipykernel)",
177+
"display_name": "mpd-ex",
161178
"language": "python",
162179
"name": "python3"
163180
},
@@ -171,7 +188,7 @@
171188
"name": "python",
172189
"nbconvert_exporter": "python",
173190
"pygments_lexer": "ipython3",
174-
"version": "3.10.14"
191+
"version": "3.10.15"
175192
}
176193
},
177194
"nbformat": 4,

1-tutorials/11-measuring-distances.ipynb

+43-30
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"import geopandas as gpd\n",
3131
"import movingpandas as mpd\n",
3232
"import shapely as shp\n",
33-
"import hvplot.pandas \n",
33+
"import hvplot.pandas\n",
3434
"import matplotlib.pyplot as plt\n",
3535
"\n",
3636
"from geopandas import GeoDataFrame, read_file\n",
@@ -39,11 +39,18 @@
3939
"from holoviews import opts, dim\n",
4040
"\n",
4141
"import warnings\n",
42-
"warnings.filterwarnings('ignore')\n",
4342
"\n",
44-
"plot_defaults = {'linewidth':5, 'capstyle':'round', 'figsize':(9,3), 'legend':True}\n",
45-
"opts.defaults(opts.Overlay(active_tools=['wheel_zoom']))\n",
46-
"hvplot_defaults = {'tiles':'CartoLight', 'frame_height':320, 'frame_width':320, 'cmap':'Viridis', 'colorbar':True}\n",
43+
"warnings.filterwarnings(\"ignore\")\n",
44+
"\n",
45+
"plot_defaults = {\"linewidth\": 5, \"capstyle\": \"round\", \"figsize\": (9, 3), \"legend\": True}\n",
46+
"opts.defaults(opts.Overlay(active_tools=[\"wheel_zoom\"]))\n",
47+
"hvplot_defaults = {\n",
48+
" \"tiles\": \"CartoLight\",\n",
49+
" \"frame_height\": 320,\n",
50+
" \"frame_width\": 320,\n",
51+
" \"cmap\": \"Viridis\",\n",
52+
" \"colorbar\": True,\n",
53+
"}\n",
4754
"\n",
4855
"mpd.show_versions()"
4956
]
@@ -62,12 +69,14 @@
6269
"metadata": {},
6370
"outputs": [],
6471
"source": [
65-
"df = pd.DataFrame([\n",
66-
" {'geometry':Point(0,0), 't':datetime(2018,1,1,12,0,0)},\n",
67-
" {'geometry':Point(6,0), 't':datetime(2018,1,1,12,6,0)},\n",
68-
" {'geometry':Point(6,6), 't':datetime(2018,1,1,12,10,0)},\n",
69-
" {'geometry':Point(9,9), 't':datetime(2018,1,1,12,15,0)}\n",
70-
"]).set_index('t')\n",
72+
"df = pd.DataFrame(\n",
73+
" [\n",
74+
" {\"geometry\": Point(0, 0), \"t\": datetime(2018, 1, 1, 12, 0, 0)},\n",
75+
" {\"geometry\": Point(6, 0), \"t\": datetime(2018, 1, 1, 12, 6, 0)},\n",
76+
" {\"geometry\": Point(6, 6), \"t\": datetime(2018, 1, 1, 12, 10, 0)},\n",
77+
" {\"geometry\": Point(9, 9), \"t\": datetime(2018, 1, 1, 12, 15, 0)},\n",
78+
" ]\n",
79+
").set_index(\"t\")\n",
7180
"geo_df = GeoDataFrame(df, crs=31256)\n",
7281
"toy_traj = mpd.Trajectory(geo_df, 1)\n",
7382
"toy_traj.df"
@@ -79,18 +88,20 @@
7988
"metadata": {},
8089
"outputs": [],
8190
"source": [
82-
"df = pd.DataFrame([\n",
83-
" {'geometry':Point(3,3), 't':datetime(2018,1,1,12,0,0)},\n",
84-
" {'geometry':Point(3,9), 't':datetime(2018,1,1,12,6,0)},\n",
85-
" {'geometry':Point(2,9), 't':datetime(2018,1,1,12,10,0)},\n",
86-
" {'geometry':Point(0,7), 't':datetime(2018,1,1,12,15,0)}\n",
87-
"]).set_index('t')\n",
91+
"df = pd.DataFrame(\n",
92+
" [\n",
93+
" {\"geometry\": Point(3, 3), \"t\": datetime(2018, 1, 1, 12, 0, 0)},\n",
94+
" {\"geometry\": Point(3, 9), \"t\": datetime(2018, 1, 1, 12, 6, 0)},\n",
95+
" {\"geometry\": Point(2, 9), \"t\": datetime(2018, 1, 1, 12, 10, 0)},\n",
96+
" {\"geometry\": Point(0, 7), \"t\": datetime(2018, 1, 1, 12, 15, 0)},\n",
97+
" ]\n",
98+
").set_index(\"t\")\n",
8899
"geo_df = GeoDataFrame(df, crs=31256)\n",
89100
"toy_traj2 = mpd.Trajectory(geo_df, 1)\n",
90101
"toy_traj2.df\n",
91102
"\n",
92103
"ax = toy_traj.plot()\n",
93-
"toy_traj2.plot(ax=ax, color='red')"
104+
"toy_traj2.plot(ax=ax, color=\"red\")"
94105
]
95106
},
96107
{
@@ -99,8 +110,8 @@
99110
"metadata": {},
100111
"outputs": [],
101112
"source": [
102-
"print(f'Distance: {toy_traj.distance(toy_traj2)} meters')\n",
103-
"print(f'Hausdorff distance: {toy_traj.hausdorff_distance(toy_traj2):.2f} meters')"
113+
"print(f\"Distance: {toy_traj.distance(toy_traj2)} meters\")\n",
114+
"print(f\"Hausdorff distance: {toy_traj.hausdorff_distance(toy_traj2):.2f} meters\")"
104115
]
105116
},
106117
{
@@ -112,7 +123,9 @@
112123
"outputs": [],
113124
"source": [
114125
"print(f'Distance: {toy_traj.distance(toy_traj2, units=\"cm\")} cm')\n",
115-
"print(f'Hausdorff distance: {toy_traj.hausdorff_distance(toy_traj2, units=\"km\"):.6f} km')"
126+
"print(\n",
127+
" f'Hausdorff distance: {toy_traj.hausdorff_distance(toy_traj2, units=\"km\"):.6f} km'\n",
128+
")"
116129
]
117130
},
118131
{
@@ -130,11 +143,11 @@
130143
"outputs": [],
131144
"source": [
132145
"pt = Point(1, 5)\n",
133-
"line = LineString([(3,3), (3,9)])\n",
146+
"line = LineString([(3, 3), (3, 9)])\n",
134147
"\n",
135148
"ax = toy_traj.plot()\n",
136-
"gpd.GeoSeries(pt).plot(ax=ax, color='red')\n",
137-
"gpd.GeoSeries(line).plot(ax=ax, color='red')"
149+
"gpd.GeoSeries(pt).plot(ax=ax, color=\"red\")\n",
150+
"gpd.GeoSeries(line).plot(ax=ax, color=\"red\")"
138151
]
139152
},
140153
{
@@ -143,8 +156,8 @@
143156
"metadata": {},
144157
"outputs": [],
145158
"source": [
146-
"print(f'Distance: {toy_traj.distance(pt)}')\n",
147-
"print(f'Hausdorff distance: {toy_traj.hausdorff_distance(pt):.2f}')"
159+
"print(f\"Distance: {toy_traj.distance(pt)}\")\n",
160+
"print(f\"Hausdorff distance: {toy_traj.hausdorff_distance(pt):.2f}\")"
148161
]
149162
},
150163
{
@@ -153,8 +166,8 @@
153166
"metadata": {},
154167
"outputs": [],
155168
"source": [
156-
"print(f'Distance: {toy_traj.distance(line)}')\n",
157-
"print(f'Hausdorff distance: {toy_traj.hausdorff_distance(line)}')"
169+
"print(f\"Distance: {toy_traj.distance(line)}\")\n",
170+
"print(f\"Hausdorff distance: {toy_traj.hausdorff_distance(line)}\")"
158171
]
159172
},
160173
{
@@ -177,7 +190,7 @@
177190
],
178191
"metadata": {
179192
"kernelspec": {
180-
"display_name": "Python 3 (ipykernel)",
193+
"display_name": "mpd-ex",
181194
"language": "python",
182195
"name": "python3"
183196
},
@@ -191,7 +204,7 @@
191204
"name": "python",
192205
"nbconvert_exporter": "python",
193206
"pygments_lexer": "ipython3",
194-
"version": "3.10.14"
207+
"version": "3.10.15"
195208
}
196209
},
197210
"nbformat": 4,

0 commit comments

Comments
 (0)