geo-activity-playground 0.38.0__tar.gz → 0.38.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/PKG-INFO +6 -6
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/enrichment.py +2 -2
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/day.html.j2 +1 -1
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/show.html.j2 +3 -3
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/eddington_blueprint.py +4 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/equipment_blueprint.py +21 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/metadata-extraction.html.j2 +1 -1
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/summary_blueprint.py +10 -3
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/pyproject.toml +6 -6
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/LICENSE +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/__main__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/activities.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/config.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/coordinates.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/heart_rate.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/meta_search.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/paths.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/privacy_zones.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/raster_map.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/similarity.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/summary_stats.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/tasks.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_meta_search.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_summary_stats.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_tiles.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_time_conversion.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/tiles.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/time_conversion.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/grid_file.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/tile_visits.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/video.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/heatmap_video.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/activity_parsers.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/csv_parser.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/directory.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/strava_api.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/strava_checkout.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_csv_parser.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_directory.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_strava_api.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/edit.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/lines.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/name.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/app.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/auth_blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/authenticator.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/templates/calendar/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/templates/calendar/month.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/entry_controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/templates/explorer/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/__init__.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/heatmap_controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/templates/heatmap/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/plot_util.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/search_blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/search_util.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/controller.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/admin-password.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/color-schemes.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/equipment-offsets.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/heart-rate.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/kind-renames.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/kinds-without-achievements.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/privacy-zones.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/segmentation.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/sharepic.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/strava.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/square_planner_blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/Leaflet.fullscreen.min.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/MarkerCluster.Default.css +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/MarkerCluster.css +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/android-chrome-192x192.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/android-chrome-512x512.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/apple-touch-icon.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap-dark-mode.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap.bundle.min.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap.min.css +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/browserconfig.xml +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-16x16.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-32x32.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-48x48.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon.ico +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon.svg +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/fullscreen.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/fullscreen@2x.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.css +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.fullscreen.css +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.markercluster.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/mstile-150x150.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/site.webmanifest +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/table-sort.min.js +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega-embed@6 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega-lite@4 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega@5 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/web-app-manifest-192x192.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/web-app-manifest-512x512.png +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/auth/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/eddington/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/equipment/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/home.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/page.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/search/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/search_form.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/square_planner/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/summary/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/upload/index.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/upload/reload.html.j2 +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/tile_blueprint.py +0 -0
- {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/upload_blueprint.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: geo-activity-playground
|
3
|
-
Version: 0.38.
|
3
|
+
Version: 0.38.2
|
4
4
|
Summary: Analysis of geo data activities like rides, runs or hikes.
|
5
5
|
License: MIT
|
6
6
|
Author: Martin Ueding
|
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.11
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
14
14
|
Requires-Dist: Pillow (>=11.0.0,<12.0.0)
|
15
|
-
Requires-Dist: altair (>=5.
|
15
|
+
Requires-Dist: altair (>=5.5.0,<6.0.0)
|
16
16
|
Requires-Dist: appdirs (>=1.4.4,<2.0.0)
|
17
17
|
Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
|
18
18
|
Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
|
@@ -21,10 +21,10 @@ Requires-Dist: flask (>=3.0.0,<4.0.0)
|
|
21
21
|
Requires-Dist: geojson (>=3.0.1,<4.0.0)
|
22
22
|
Requires-Dist: gpxpy (>=1.5.0,<2.0.0)
|
23
23
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
24
|
-
Requires-Dist: matplotlib (>=3.
|
25
|
-
Requires-Dist: numpy (>=2.
|
26
|
-
Requires-Dist: pandas (>=2.2,<3.0)
|
27
|
-
Requires-Dist: pyarrow (>=
|
24
|
+
Requires-Dist: matplotlib (>=3.10.1,<4.0.0)
|
25
|
+
Requires-Dist: numpy (>=2.2.3,<3.0.0)
|
26
|
+
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
27
|
+
Requires-Dist: pyarrow (>=19.0.1,<20.0.0)
|
28
28
|
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
29
29
|
Requires-Dist: requests (>=2.28.1,<3.0.0)
|
30
30
|
Requires-Dist: shapely (>=2.0.5,<3.0.0)
|
@@ -119,8 +119,8 @@ def _get_metadata_from_timeseries(timeseries: pd.DataFrame) -> ActivityMeta:
|
|
119
119
|
metadata["end_latitude"] = timeseries["latitude"].iloc[-1]
|
120
120
|
metadata["start_longitude"] = timeseries["longitude"].iloc[0]
|
121
121
|
metadata["end_longitude"] = timeseries["longitude"].iloc[-1]
|
122
|
-
|
123
|
-
|
122
|
+
if "elevation_gain_cum" in timeseries.columns:
|
123
|
+
metadata["elevation_gain"] = timeseries["elevation_gain_cum"].iloc[-1]
|
124
124
|
|
125
125
|
return metadata
|
126
126
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
</div>
|
9
9
|
|
10
10
|
<div class="row mb-3">
|
11
|
-
<div class="col-4">
|
11
|
+
<div class="col-sm-12 col-md-4">
|
12
12
|
<dl>
|
13
13
|
<dt>Name</dt>
|
14
14
|
<dd>{{ activity["name"] }}</dd>
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
<a href="{{ url_for('.edit', id=activity['id']) }}" class="btn btn-secondary btn-small">Edit metadata</a>
|
56
56
|
</div>
|
57
|
-
<div class="col-8">
|
57
|
+
<div class="col-sm-12 col-md-8">
|
58
58
|
<div id="activity-map" style="height: 500px;" class="mb-3"></div>
|
59
59
|
<script>
|
60
60
|
var map = L.map('activity-map', {
|
@@ -161,7 +161,7 @@
|
|
161
161
|
|
162
162
|
<h2>Share picture</h2>
|
163
163
|
|
164
|
-
<p><img src="{{ url_for('.sharepic', id=activity.id) }}" /></p>
|
164
|
+
<p><img class="img-fluid" src="{{ url_for('.sharepic', id=activity.id) }}" /></p>
|
165
165
|
|
166
166
|
<p>Not happy with the displayed data? <a href="{{ url_for('settings.sharepic') }}">Change share picture
|
167
167
|
settings</a>.</p>
|
@@ -186,5 +186,9 @@ def _get_eddington_number_history(meta: pd.DataFrame) -> dict:
|
|
186
186
|
.encode(
|
187
187
|
alt.X("date", title="Date"),
|
188
188
|
alt.Y("eddington_number", title="Eddington number"),
|
189
|
+
[
|
190
|
+
alt.Tooltip("date", title="Date"),
|
191
|
+
alt.Tooltip("eddington_number", title="Eddington number"),
|
192
|
+
],
|
189
193
|
)
|
190
194
|
).to_json(format="vega")
|
@@ -41,6 +41,14 @@ def make_equipment_blueprint(
|
|
41
41
|
.encode(
|
42
42
|
alt.X("time", title="Date"),
|
43
43
|
alt.Y("total_distance_km", title="Cumulative distance / km"),
|
44
|
+
tooltip=[
|
45
|
+
alt.Tooltip("time:T", title="Date"),
|
46
|
+
alt.Tooltip(
|
47
|
+
"total_distance_km:Q",
|
48
|
+
title="Cumulative distance / km",
|
49
|
+
format=".0f",
|
50
|
+
),
|
51
|
+
],
|
44
52
|
)
|
45
53
|
.interactive()
|
46
54
|
.to_json(format="vega")
|
@@ -61,6 +69,13 @@ def make_equipment_blueprint(
|
|
61
69
|
scale=make_kind_scale(repository.meta, config),
|
62
70
|
title="Kind",
|
63
71
|
),
|
72
|
+
tooltip=[
|
73
|
+
alt.Tooltip("year(start):O", title="Year"),
|
74
|
+
alt.Tooltip(
|
75
|
+
"sum(distance_km):Q", title="Distance / km", format=".0f"
|
76
|
+
),
|
77
|
+
alt.Tooltip("kind:N", title="Kind"),
|
78
|
+
],
|
64
79
|
)
|
65
80
|
.to_json(format="vega")
|
66
81
|
)
|
@@ -78,6 +93,12 @@ def make_equipment_blueprint(
|
|
78
93
|
title="Kind",
|
79
94
|
),
|
80
95
|
alt.Y("sum(distance_km)", title="Distance / km"),
|
96
|
+
tooltip=[
|
97
|
+
alt.Tooltip("kind:N", title="Kind"),
|
98
|
+
alt.Tooltip(
|
99
|
+
"sum(distance_km):Q", title="Distance / km", format=".0f"
|
100
|
+
),
|
101
|
+
],
|
81
102
|
)
|
82
103
|
.to_json(format="vega")
|
83
104
|
)
|
@@ -42,7 +42,7 @@
|
|
42
42
|
</div>
|
43
43
|
|
44
44
|
<p>Have a look at the documentation
|
45
|
-
<a href="https://martin-ueding.github.io/geo-activity-playground/
|
45
|
+
<a href="https://martin-ueding.github.io/geo-activity-playground/advanced-metadata-extraction">Advanced Metadata Extraction</a>
|
46
46
|
for explanations and examples.</p>
|
47
47
|
</div>
|
48
48
|
</div>
|
@@ -163,6 +163,13 @@ def plot_monthly_distance(meta: pd.DataFrame, kind_scale: alt.Scale) -> str:
|
|
163
163
|
alt.Y("sum(distance_km)", title="Distance / km"),
|
164
164
|
alt.Color("kind", scale=kind_scale, title="Kind"),
|
165
165
|
alt.Column("year(start):O", title="Year"),
|
166
|
+
[
|
167
|
+
alt.Tooltip("yearmonthdate(start)", title="Date"),
|
168
|
+
alt.Tooltip(
|
169
|
+
"sum(distance_km)", format=".1f", title="Total distance / km"
|
170
|
+
),
|
171
|
+
alt.Tooltip("count(distance_km)", title="Number of activities"),
|
172
|
+
],
|
166
173
|
)
|
167
174
|
.resolve_axis(x="independent")
|
168
175
|
.to_json(format="vega")
|
@@ -180,7 +187,7 @@ def plot_yearly_distance(year_kind_total: pd.DataFrame, kind_scale: alt.Scale) -
|
|
180
187
|
[
|
181
188
|
alt.Tooltip("year:O", title="Year"),
|
182
189
|
alt.Tooltip("kind", title="Kind"),
|
183
|
-
alt.Tooltip("distance_km", title="Distance / km"),
|
190
|
+
alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
|
184
191
|
],
|
185
192
|
)
|
186
193
|
.to_json(format="vega")
|
@@ -210,7 +217,7 @@ def plot_year_cumulative(df: pd.DataFrame) -> str:
|
|
210
217
|
[
|
211
218
|
alt.Tooltip("week", title="Week"),
|
212
219
|
alt.Tooltip("iso_year:N", title="Year"),
|
213
|
-
alt.Tooltip("distance_km", title="Distance / km"),
|
220
|
+
alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
|
214
221
|
],
|
215
222
|
)
|
216
223
|
.interactive()
|
@@ -267,7 +274,7 @@ def plot_weekly_distance(df: pd.DataFrame, kind_scale: alt.Scale) -> str:
|
|
267
274
|
[
|
268
275
|
alt.Tooltip("year_week", title="Year and Week"),
|
269
276
|
alt.Tooltip("kind", title="Kind"),
|
270
|
-
alt.Tooltip("distance_km", title="Distance / km"),
|
277
|
+
alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
|
271
278
|
],
|
272
279
|
)
|
273
280
|
.to_json(format="vega")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "geo-activity-playground"
|
3
|
-
version = "0.38.
|
3
|
+
version = "0.38.2"
|
4
4
|
description = "Analysis of geo data activities like rides, runs or hikes."
|
5
5
|
authors = ["Martin Ueding <mu@martin-ueding.de>"]
|
6
6
|
license = "MIT"
|
@@ -11,7 +11,7 @@ geo-activity-playground = "geo_activity_playground.__main__:main"
|
|
11
11
|
[tool.poetry.dependencies]
|
12
12
|
python = "^3.10,<3.14"
|
13
13
|
|
14
|
-
altair = "^5.
|
14
|
+
altair = "^5.5.0"
|
15
15
|
appdirs = "^1.4.4"
|
16
16
|
charset-normalizer = "^3.3.2"
|
17
17
|
coloredlogs = "^15.0.1"
|
@@ -20,11 +20,11 @@ flask = "^3.0.0"
|
|
20
20
|
geojson = "^3.0.1"
|
21
21
|
gpxpy = "^1.5.0"
|
22
22
|
jinja2 = "^3.1.2"
|
23
|
-
matplotlib = "^3.
|
24
|
-
numpy = "^2.
|
25
|
-
pandas = "^2.2"
|
23
|
+
matplotlib = "^3.10.1"
|
24
|
+
numpy = "^2.2.3"
|
25
|
+
pandas = "^2.2.3"
|
26
26
|
Pillow = "^11.0.0"
|
27
|
-
pyarrow = "^
|
27
|
+
pyarrow = "^19.0.1"
|
28
28
|
python-dateutil = "^2.8.2"
|
29
29
|
requests = "^2.28.1"
|
30
30
|
shapely = "^2.0.5"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|