A while ago I listed some of my works in progress. Last week I unpaused one of them (again). Namely, making a database and interface for interacting with all of my running, cycling and hiking .gpx and .fit files. It feels like quite a big job. So I am going to endeavour to break it into small(ish), manageable(ish) chunks.
constraints
- it won't be on the internet[1]
- Local is fine
- it wont't have the ability to auto-magically sync[2]
- Manual
will have to dois fine[3]
- Manual
- it won't neccessarily handle all of the data that my gps device captures
- I'm ok not knowing what my heart rate was at 19:33:10 (BST) on the 22nd August 2019[4]
functionality
- ingest my archive of several thousand
.gpx&.fitfiles - add new files as and when
- display an overview of a given ride
- search for tracks by date/time & by location
- display a heatmap sort of thing
- generate summary statistics and visualizations
- easily queryable
interface
A graphical interface is, I think, beyond my skillset. Instead I'm opting for a command-line interface (CLI). A text-based user interface (TUI) would be nice, but that too might be a stretch.
Aim low.
tools
pythonbecause I know how to use it- with help from
geopandas,shapely&movingpandas(maybe)
- with help from
duckdbbecause I want to learn how to use it- with it's
SPATIALextension
- with it's
uniplotbecause it looks like a good candidate for making nice plots in the terminal
The above will (& and some others, no doubt, at some point) will hande the functionality. And the below will help with the interface.
typerbecause it seems like a good option for making a CLI; it handily makes--helpdocumentation, and allows for fancy things like auto-completepoetryfor bundling it all up into a package, whilst also managing dependencies
Many of these things are new to me.
current status
