geo-track-analyzer


Namegeo-track-analyzer JSON
Version 1.6.0 PyPI version JSON
download
home_pageNone
SummaryAnalyze geospacial data tracks
upload_time2024-11-06 18:45:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2024 Korbinian Schweiger Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords fit gpx visualization analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Testing](https://github.com/kschweiger/track_analyzer/actions/workflows/test.yml/badge.svg)](https://github.com/kschweiger/track_analyzer/actions/workflows/test.yml)
[![Build Documentation](https://github.com/kschweiger/track_analyzer/actions/workflows/doc.yml/badge.svg)](https://github.com/kschweiger/track_analyzer/actions/workflows/doc.yml)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/geo-track-analyzer)
![PyPI - License](https://img.shields.io/pypi/l/geo-track-analyzer)
![PyPI - Version](https://img.shields.io/pypi/v/geo-track-analyzer)


# Track analyzer

The focus of this package lies on analyzing and visualizing tracks of cycling or similar activities. Depending on the usecase settings like `stopped_speed_threshold` or `max_speed_percentile` may not be appropriate.

Installing the package with **cli** extra, I.e. using `pip install geo-track-analyzer[cli]`, add utility tools. See the [documentation](https://kschweiger.github.io/track_analyzer/cli/) for details.

## From files

Tracks my be initialized from ``.gpx`` and ``.fit`` files using the ``GPXFileTrack`` and ``FITTrack`` object, respectively.


## Programmatically

You can instanciate tracks programmatically inside your code using the `PyTrack` class.

```python
PyTrack(
        points: list[tuple[float, float]] = ...,
        elevations: None | list[float] = ...,
        times: None | list[datetime] = ...,
        heartrate: None | list[int] = None,
        cadence: None | list[int] = None,
        power: None | list[int] = None,
    )
```
## Extracting track data

The data of the track can be extracted into a pandas DataFrame object with the columns:

* **latitude**: Track point latitude value
* **longitude**: Track point longitude value
* **elevation**: Track point elevation value
* **speed**: Speed in m/s calculated relative to previous point. Requires time to be present in track.
* **distance**: Distance in m relative to previous point
* **heartrate**: Heartrate in bpm (if present in input)
* **cadence**: Cadence in rmp(if present in input)
* **power**: Power in W (if present in input)
* **time**: Time in seconds relative to previous point. Time must be present in track.
* **cum_time**: Cummulated time of the track/segment in seconds.  Requires time to be present in track.
* **cum_time_moving**: Cummulated moving time of the track/segment in seconds.  Requires time to be present in track.
* **cum_distance**: Cummulated distance in track/segement in meters.
* **cum_distance_moving**:  Cummulated moving distance in track/segement in meters.
* **cum_distance_stopped**:  Cummulated stopped distance in track/segement in meters.
* **moving**: Bool flag specifing if the `stopped_speed_threshold` was exceeded for the point.

Because some values are relative to previous points, the first point in the segment is not represented in this dataframe.

----------------

Furthermore an summary of the segments and tracks can be generated in the form of a `SegmentOverview` containing:

* Time in seconds (moving and totoal)
* Distance in meters and km (moving and totoal)
* Maximum and average velocity in m/s and km/h
* Maximum and minimum elevation in meters
* Uphill and downhill elevation in meters

## Visualizing the track

Visualizations of a track can be generated via the `plot` method and the ``kind`` parameter. See [documentation](https://kschweiger.github.io/track_analyzer/visualizations/) for further details and examples how to use the visualizations.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "geo-track-analyzer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "fit, gpx, visualization, analysis",
    "author": null,
    "author_email": "Korbinian Schweiger <korbinian.schweiger@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/b7/20/9b3c1ac362bdd6cadf0418c0dee5bab34804ccd38f7fc2df68aba33f2a77/geo_track_analyzer-1.6.0.tar.gz",
    "platform": null,
    "description": "[![Testing](https://github.com/kschweiger/track_analyzer/actions/workflows/test.yml/badge.svg)](https://github.com/kschweiger/track_analyzer/actions/workflows/test.yml)\n[![Build Documentation](https://github.com/kschweiger/track_analyzer/actions/workflows/doc.yml/badge.svg)](https://github.com/kschweiger/track_analyzer/actions/workflows/doc.yml)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/geo-track-analyzer)\n![PyPI - License](https://img.shields.io/pypi/l/geo-track-analyzer)\n![PyPI - Version](https://img.shields.io/pypi/v/geo-track-analyzer)\n\n\n# Track analyzer\n\nThe focus of this package lies on analyzing and visualizing tracks of cycling or similar activities. Depending on the usecase settings like `stopped_speed_threshold` or `max_speed_percentile` may not be appropriate.\n\nInstalling the package with **cli** extra, I.e. using `pip install geo-track-analyzer[cli]`, add utility tools. See the [documentation](https://kschweiger.github.io/track_analyzer/cli/) for details.\n\n## From files\n\nTracks my be initialized from ``.gpx`` and ``.fit`` files using the ``GPXFileTrack`` and ``FITTrack`` object, respectively.\n\n\n## Programmatically\n\nYou can instanciate tracks programmatically inside your code using the `PyTrack` class.\n\n```python\nPyTrack(\n        points: list[tuple[float, float]] = ...,\n        elevations: None | list[float] = ...,\n        times: None | list[datetime] = ...,\n        heartrate: None | list[int] = None,\n        cadence: None | list[int] = None,\n        power: None | list[int] = None,\n    )\n```\n## Extracting track data\n\nThe data of the track can be extracted into a pandas DataFrame object with the columns:\n\n* **latitude**: Track point latitude value\n* **longitude**: Track point longitude value\n* **elevation**: Track point elevation value\n* **speed**: Speed in m/s calculated relative to previous point. Requires time to be present in track.\n* **distance**: Distance in m relative to previous point\n* **heartrate**: Heartrate in bpm (if present in input)\n* **cadence**: Cadence in rmp(if present in input)\n* **power**: Power in W (if present in input)\n* **time**: Time in seconds relative to previous point. Time must be present in track.\n* **cum_time**: Cummulated time of the track/segment in seconds.  Requires time to be present in track.\n* **cum_time_moving**: Cummulated moving time of the track/segment in seconds.  Requires time to be present in track.\n* **cum_distance**: Cummulated distance in track/segement in meters.\n* **cum_distance_moving**:  Cummulated moving distance in track/segement in meters.\n* **cum_distance_stopped**:  Cummulated stopped distance in track/segement in meters.\n* **moving**: Bool flag specifing if the `stopped_speed_threshold` was exceeded for the point.\n\nBecause some values are relative to previous points, the first point in the segment is not represented in this dataframe.\n\n----------------\n\nFurthermore an summary of the segments and tracks can be generated in the form of a `SegmentOverview` containing:\n\n* Time in seconds (moving and totoal)\n* Distance in meters and km (moving and totoal)\n* Maximum and average velocity in m/s and km/h\n* Maximum and minimum elevation in meters\n* Uphill and downhill elevation in meters\n\n## Visualizing the track\n\nVisualizations of a track can be generated via the `plot` method and the ``kind`` parameter. See [documentation](https://kschweiger.github.io/track_analyzer/visualizations/) for further details and examples how to use the visualizations.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 Korbinian Schweiger  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Analyze geospacial data tracks",
    "version": "1.6.0",
    "project_urls": {
        "Documentation": "https://kschweiger.github.io/track_analyzer/",
        "Home": "https://github.com/kschweiger/track_analyzer",
        "Source": "https://github.com/kschweiger/track_analyzer"
    },
    "split_keywords": [
        "fit",
        " gpx",
        " visualization",
        " analysis"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8c7f1739409857854ce6a73f8c31cf9d9c335b1ed7c8b121854920a9eb4079e",
                "md5": "386090a2c1074effcf6a17a8231ddbd6",
                "sha256": "6fc2c95849a766dd817b25c8cefd114b05cb11a176f8f6700114a83c98d8d0e1"
            },
            "downloads": -1,
            "filename": "geo_track_analyzer-1.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "386090a2c1074effcf6a17a8231ddbd6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 153011,
            "upload_time": "2024-11-06T18:45:55",
            "upload_time_iso_8601": "2024-11-06T18:45:55.647869Z",
            "url": "https://files.pythonhosted.org/packages/e8/c7/f1739409857854ce6a73f8c31cf9d9c335b1ed7c8b121854920a9eb4079e/geo_track_analyzer-1.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7209b3c1ac362bdd6cadf0418c0dee5bab34804ccd38f7fc2df68aba33f2a77",
                "md5": "21f7bd318d447989009ffc21352114b2",
                "sha256": "bbb6ea8c442eaa4bd0ffb4e6fb9a5092f48b9b60422425d1918dc72968a299f2"
            },
            "downloads": -1,
            "filename": "geo_track_analyzer-1.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "21f7bd318d447989009ffc21352114b2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 144728,
            "upload_time": "2024-11-06T18:45:57",
            "upload_time_iso_8601": "2024-11-06T18:45:57.858161Z",
            "url": "https://files.pythonhosted.org/packages/b7/20/9b3c1ac362bdd6cadf0418c0dee5bab34804ccd38f7fc2df68aba33f2a77/geo_track_analyzer-1.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-06 18:45:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kschweiger",
    "github_project": "track_analyzer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "geo-track-analyzer"
}
        
Elapsed time: 0.77087s