Name | tcxreader-fork JSON |
Version |
0.4.10
JSON |
| download |
home_page | https://github.com/Flavored4179/tcxreader |
Summary | tcxreader is a reader for Garmin’s TCX file format. It also works well with missing data! fork from https://github.com/alenrajsp/tcxreader |
upload_time | 2024-08-13 13:35:45 |
maintainer | None |
docs_url | None |
author | Alen Rajšp |
requires_python | >=3.6 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div width="200" style="background-color: white; width: 200px">
<img width="200" style="margin-bottom:-8px" src="https://raw.githubusercontent.com/alenrajsp/tcxreader/main/.github/logo/logo-white-background.png">
</div>
**tcxreader** is a reader for Garmin's TCX file format. It also works well with missing data!
---
[![PyPI Version](https://img.shields.io/pypi/v/tcxreader.svg)](https://pypi.python.org/pypi/tcxreader)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tcxreader.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/tcxreader.svg)
[![Downloads](https://pepy.tech/badge/tcxreader)](https://pepy.tech/project/tcxreader)
![GitHub repo size](https://img.shields.io/github/repo-size/alenrajsp/tcxreader?style=flat-square)
[![GitHub license](https://img.shields.io/github/license/alenrajsp/tcxreader.svg)](https://github.com/alenrajsp/tcxreader/blob/master/LICENSE)
![GitHub commit activity](https://img.shields.io/github/commit-activity/w/alenrajsp/tcxreader.svg)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/alenrajsp/tcxreader.svg)](http://isitmaintained.com/project/alenrajsp/tcxreader "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/alenrajsp/tcxreader.svg)](http://isitmaintained.com/project/alenrajsp/tcxreader "Percentage of issues still open")
[![All Contributors](https://img.shields.io/github/all-contributors/alenrajsp/tcxreader?color=ee8449&style=flat-square)](#contributors)
[![DOI](https://zenodo.org/badge/317671425.svg)](https://zenodo.org/doi/10.5281/zenodo.10940281)
## Objective
This is a simple TCX reader which can read Garmin TCX file extension files. The following data is currently parsed: longitude,
latitude, elevation, time, distance, hr_value, cadence, watts, TPX_speed (extension). The following statistics are
calculated for each exercise: calories, hr_avg, hr_max, hr_min, avg_speed, start_time, end_time, duration, cadence_avg,
cadence_max, ascent, descent, distance, altitude_max, altitude_min, altitude_avg, steps and **author data**.
GitHub requests appreciated.
[pypi](https://pypi.org/project/tcxreader/)
[github](https://github.com/alenrajsp/tcxreader)
## Features
Allows parsing / reading of TCX files.
## Installation
```
pip install tcxreader
```
## Example
An example on how to use the package is shown below.
```python
from tcxreader.tcxreader import TCXReader, TCXTrackPoint
tcx_reader = TCXReader()
file_location = 'example_data/cross-country-skiing_activity_1.tcx'
"""
Minor warning, the read method also has a default parameter of only_gps (tcx_readerread(self, fileLocation: str, only_gps: bool = True)) set to true. If set to True erases any Trackpoints at the start and end of the exercise without GPS data.
"""
data: TCXExercise = tcx_reader.read(file_location)
""" Example output:
data = {TCXExercise}
activity_type = {str} 'Other'
altitude_avg = {float} 2285.6744874553915
altitude_max = {float} 2337.60009765625
altitude_min = {float} 1257.5999755859375
ascent = {float} 1117.9996337890625
author = {TCXAuthor} [TCXAuthor]
avg_speed = {float} 8.534458975426906
cadence_avg = {NoneType} None
cadence_max = {NoneType} None
calories = {int} 532
descent = {float} 118.19970703125
distance = {float} 5692.01
duration = {float} 2401.0
end_time = {datetime} 2020-12-26 15:54:22
hr_avg = {float} 141.1954732510288
hr_max = {int} 172
hr_min = {int} 83
laps = {list: 2} [TCXLap]
lx_ext = {dict: 0} {}
max_speed = {float} 23.50810546875
start_time = {datetime} 2020-12-26 15:14:21
tpx_ext_stats = {dict: 2} {'Speed': {'min': 0.0, 'max': 6.1579999923706055, 'avg': 2.2930514418784482}, 'RunCadence': {'min': 0, 'max': 95, 'avg': 40.81069958847737}}
trackpoints = {list: 486} [TCXTrackpoint]
{TCXTrackPoint}
cadence = {NoneType} None
distance = {float} 7.329999923706055
elevation = {float} 2250.60009765625
hr_value = {int} 87
latitude = {float} 46.49582446552813
longitude = {float} 15.50408081151545
time = {datetime} 2020-12-26 15:14:28
tpx_ext = {dict: 2} {'Speed': 0.7459999918937683, 'RunCadence': 58}
"""
```
## Classes explanation
Below figure explains the classes of **tcxreader** and the data they contain.
### TCXReader()
User initializes the tcxreader by creating a **TCXReader** class instance. To read the data of a **TCX activity** the user must use
**TCXReader.read(*filename*)** method.
The output of **read()** is an instance of **TCXExercise** class.
### TCXExercise
Primary class that holds cumulative data of an exercise. TCXExercise contains **all** the **trackpoints** of an activity
(e.g. from all the laps merged).
### TCXLap
One TCX activity may contain multiple laps. In the TCX file they are visible by the **Lap** tag.
```xml
<Lap StartTime="2020-12-26T15:50:22.000Z">
...
</Lap>
```
TCXLap contains all the trackpoints of a lap.
### TCXTrackpoint
A point in an exercise. Almost always has **latitude, longitude, time**. Can also have *cadence, distance, elevation, hr_value, tpx_ext*.
The tpx_ext refers to individual extensions contained inside the trackpoint. An example of the Trackpoint (pre-parsing)
in the TCX file is shown below.
```xml
<Trackpoint>
<Time>2020-12-26T15:50:21.000Z</Time>
<Position>
<LatitudeDegrees>46.49732105433941</LatitudeDegrees>
<LongitudeDegrees>15.496849408373237</LongitudeDegrees>
</Position>
<AltitudeMeters>2277.39990234375</AltitudeMeters>
<DistanceMeters>5001.52978515625</DistanceMeters>
<HeartRateBpm>
<Value>148</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX>
<ns3:Speed>3.3589999675750732</ns3:Speed>
<ns3:RunCadence>61</ns3:RunCadence>
</ns3:TPX>
</Extensions>
</Trackpoint>
```
### tpx_ext
The data parsed from the **trackpoint TPX Extensions**. Example of data (pre-parsing) is shown below.
```xml
<Extensions>
<ns3:TPX>
<ns3:Speed>3.3589999675750732</ns3:Speed>
<ns3:RunCadence>61</ns3:RunCadence>
</ns3:TPX>
</Extensions>
```
Can occur **once (1x)** in every **trackpoint**.
### tpx_ext_stats
Contains **minimum**, **maximum** and **average** values of the recorded **tpx_ext** key.
### lx_ext
The data parsed from the **lap LX Extensions**. Example of data (pre-parsing) is shown below.
```xml
<Extensions>
<ns3:LX>
<ns3:AvgSpeed>1.0820000171661377</ns3:AvgSpeed>
<ns3:Steps>65</ns3:Steps>
</ns3:LX>
</Extensions>
```
Can occur **once (1x)** in every **lap**.
The tags which do not contain **Avg, Min, Max** in their name (e.g. steps) are
summed in the **TCXExercise** **lx_ext** dictionary.
All tags are recorded in the **TCXLap** **lx_ext** dictionary
### Schema of the data
<div width="100%" style="background-color: white; width: 100%">
<img width="100%" style="margin-bottom:-8px" src="https://raw.githubusercontent.com/alenrajsp/tcxreader/7c9af6dc88f9d83a8c6751b454f118220ecfd9a1/.github/images/data-explanation.svg">
</div>
## Missing data handling
Due to the nature of the TCX file format, some data may be missing. The **tcxreader** can handle this in two ways:
1) If data is missing at a TCX point it is set to **None**. (*default*)
- tcx_reader.read(file_location) (*default*)
- tcx_reader.read(file_location, null_value_handling=1) (*default*)
- tcx_reader.read(file_location, null_value_handling=NullValueHandling.NONE) (*default*)
2) If data is missing at one or more TCX points it is linearly interpolated.
- tcx_reader.read(file_location, null_value_handling=2)
- tcx_reader.read(file_location, null_value_handling=NullValueHandling.LINEAR_INTERPOLATION)
This behavior can be set in **TCXReader.read()** method by the **null_value_handling** parameter, where either **int** value or **NullValueHandling** enum can be passed.
## Datasets
Datasets available and used in the examples on the following links: [DATASET1](http://iztok-jr-fister.eu/static/publications/Sport5.zip), [DATASET2](http://iztok-jr-fister.eu/static/css/datasets/Sport.zip), [DATASET3](https://github.com/firefly-cpp/tcx-test-files).
## License
This package is distributed under the MIT License. This license can be found online
at [http://www.opensource.org/licenses/MIT](http://www.opensource.org/licenses/MIT).
## Related packages/frameworks
[1] [sport-activities-features: A minimalistic toolbox for extracting features from sports activity files written in Python](https://github.com/firefly-cpp/sport-activities-features)
[2] [AST-Monitor: A wearable Raspberry Pi computer for cyclists](https://github.com/firefly-cpp/AST-Monitor)
[3] [TCXReader.jl: Julia package designed for parsing TCX files](https://github.com/firefly-cpp/TCXReader.jl)
## Disclaimer
This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it
at your own risk!
## Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/alenrajsp"><img src="https://avatars.githubusercontent.com/u/27721714?v=4?s=100" width="100px;" alt="alenrajsp"/><br /><sub><b>alenrajsp</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/commits?author=alenrajsp" title="Code">💻</a> <a href="#maintenance-alenrajsp" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fortysix2ahead"><img src="https://avatars.githubusercontent.com/u/40423757?v=4?s=100" width="100px;" alt="fortysix2ahead"/><br /><sub><b>fortysix2ahead</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Afortysix2ahead" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.iztok-jr-fister.eu/"><img src="https://avatars.githubusercontent.com/u/1633361?v=4?s=100" width="100px;" alt="Iztok Fister Jr."/><br /><sub><b>Iztok Fister Jr.</b></sub></a><br /><a href="#data-firefly-cpp" title="Data">🔣</a> <a href="#mentoring-firefly-cpp" title="Mentoring">🧑🏫</a> <a href="#platform-firefly-cpp" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/alenrajsp/tcxreader/commits?author=firefly-cpp" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/johnleeming"><img src="https://avatars.githubusercontent.com/u/13801070?v=4?s=100" width="100px;" alt="johnleeming"/><br /><sub><b>johnleeming</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Ajohnleeming" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rpstar"><img src="https://avatars.githubusercontent.com/u/10442282?v=4?s=100" width="100px;" alt="rpstar"/><br /><sub><b>rpstar</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Arpstar" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://relatable.dev/"><img src="https://avatars.githubusercontent.com/u/1128313?v=4?s=100" width="100px;" alt="James Robinson"/><br /><sub><b>James Robinson</b></sub></a><br /><a href="#maintenance-jlrobins" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/johwiebe"><img src="https://avatars.githubusercontent.com/u/33023818?v=4?s=100" width="100px;" alt="johwiebe"/><br /><sub><b>johwiebe</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Ajohwiebe" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://martin-ueding.de/"><img src="https://avatars.githubusercontent.com/u/976924?v=4?s=100" width="100px;" alt="Martin Ueding"/><br /><sub><b>Martin Ueding</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Amartin-ueding" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/simonpickering"><img src="https://avatars.githubusercontent.com/u/1830341?v=4?s=100" width="100px;" alt="Simon Pickering"/><br /><sub><b>Simon Pickering</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Asimonpickering" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rwinklerwilkes"><img src="https://avatars.githubusercontent.com/u/2768609?v=4?s=100" width="100px;" alt="Rich Winkler"/><br /><sub><b>Rich Winkler</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/issues?q=author%3Arwinklerwilkes" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ToonElewaut"><img src="https://avatars.githubusercontent.com/u/12350289?v=4?s=100" width="100px;" alt="Toon Elewaut"/><br /><sub><b>Toon Elewaut</b></sub></a><br /><a href="https://github.com/alenrajsp/tcxreader/commits?author=ToonElewaut" title="Code">💻</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Raw data
{
"_id": null,
"home_page": "https://github.com/Flavored4179/tcxreader",
"name": "tcxreader-fork",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Alen Raj\u0161p",
"author_email": "alen.rajsp@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f1/8c/314f7abc73387318c69ce12f5c72595c2a691159a220eaf157fedc1858c7/tcxreader_fork-0.4.10.tar.gz",
"platform": null,
"description": "<div width=\"200\" style=\"background-color: white; width: 200px\">\n <img width=\"200\" style=\"margin-bottom:-8px\" src=\"https://raw.githubusercontent.com/alenrajsp/tcxreader/main/.github/logo/logo-white-background.png\">\n</div>\n\n**tcxreader** is a reader for Garmin's TCX file format. It also works well with missing data!\n\n---\n\n[![PyPI Version](https://img.shields.io/pypi/v/tcxreader.svg)](https://pypi.python.org/pypi/tcxreader)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tcxreader.svg)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/tcxreader.svg)\n[![Downloads](https://pepy.tech/badge/tcxreader)](https://pepy.tech/project/tcxreader)\n![GitHub repo size](https://img.shields.io/github/repo-size/alenrajsp/tcxreader?style=flat-square)\n[![GitHub license](https://img.shields.io/github/license/alenrajsp/tcxreader.svg)](https://github.com/alenrajsp/tcxreader/blob/master/LICENSE)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/w/alenrajsp/tcxreader.svg)\n[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/alenrajsp/tcxreader.svg)](http://isitmaintained.com/project/alenrajsp/tcxreader \"Average time to resolve an issue\")\n[![Percentage of issues still open](http://isitmaintained.com/badge/open/alenrajsp/tcxreader.svg)](http://isitmaintained.com/project/alenrajsp/tcxreader \"Percentage of issues still open\")\n[![All Contributors](https://img.shields.io/github/all-contributors/alenrajsp/tcxreader?color=ee8449&style=flat-square)](#contributors)\n[![DOI](https://zenodo.org/badge/317671425.svg)](https://zenodo.org/doi/10.5281/zenodo.10940281)\n\n## Objective\n\nThis is a simple TCX reader which can read Garmin TCX file extension files. The following data is currently parsed: longitude,\nlatitude, elevation, time, distance, hr_value, cadence, watts, TPX_speed (extension). The following statistics are\ncalculated for each exercise: calories, hr_avg, hr_max, hr_min, avg_speed, start_time, end_time, duration, cadence_avg,\ncadence_max, ascent, descent, distance, altitude_max, altitude_min, altitude_avg, steps and **author data**.\n\nGitHub requests appreciated.\n[pypi](https://pypi.org/project/tcxreader/)\n[github](https://github.com/alenrajsp/tcxreader)\n\n## Features\n\nAllows parsing / reading of TCX files.\n\n## Installation\n\n```\npip install tcxreader\n```\n\n## Example\n\nAn example on how to use the package is shown below.\n\n```python\nfrom tcxreader.tcxreader import TCXReader, TCXTrackPoint\n\ntcx_reader = TCXReader()\nfile_location = 'example_data/cross-country-skiing_activity_1.tcx'\n\n\"\"\"\nMinor warning, the read method also has a default parameter of only_gps (tcx_readerread(self, fileLocation: str, only_gps: bool = True)) set to true. If set to True erases any Trackpoints at the start and end of the exercise without GPS data.\n\"\"\"\n\ndata: TCXExercise = tcx_reader.read(file_location)\n\"\"\" Example output:\ndata = {TCXExercise}\n activity_type = {str} 'Other'\naltitude_avg = {float} 2285.6744874553915\naltitude_max = {float} 2337.60009765625\naltitude_min = {float} 1257.5999755859375\nascent = {float} 1117.9996337890625\nauthor = {TCXAuthor} [TCXAuthor]\navg_speed = {float} 8.534458975426906\ncadence_avg = {NoneType} None\ncadence_max = {NoneType} None\ncalories = {int} 532\ndescent = {float} 118.19970703125\ndistance = {float} 5692.01\nduration = {float} 2401.0\nend_time = {datetime} 2020-12-26 15:54:22\nhr_avg = {float} 141.1954732510288\nhr_max = {int} 172\nhr_min = {int} 83\nlaps = {list: 2} [TCXLap]\nlx_ext = {dict: 0} {}\nmax_speed = {float} 23.50810546875\nstart_time = {datetime} 2020-12-26 15:14:21\ntpx_ext_stats = {dict: 2} {'Speed': {'min': 0.0, 'max': 6.1579999923706055, 'avg': 2.2930514418784482}, 'RunCadence': {'min': 0, 'max': 95, 'avg': 40.81069958847737}}\ntrackpoints = {list: 486} [TCXTrackpoint]\n \n {TCXTrackPoint} \n cadence = {NoneType} None\n distance = {float} 7.329999923706055\n elevation = {float} 2250.60009765625\n hr_value = {int} 87\n latitude = {float} 46.49582446552813\n longitude = {float} 15.50408081151545\n time = {datetime} 2020-12-26 15:14:28\n tpx_ext = {dict: 2} {'Speed': 0.7459999918937683, 'RunCadence': 58}\n\"\"\"\n```\n## Classes explanation\n\nBelow figure explains the classes of **tcxreader** and the data they contain.\n\n### TCXReader()\nUser initializes the tcxreader by creating a **TCXReader** class instance. To read the data of a **TCX activity** the user must use\n**TCXReader.read(*filename*)** method. \nThe output of **read()** is an instance of **TCXExercise** class.\n\n### TCXExercise\nPrimary class that holds cumulative data of an exercise. TCXExercise contains **all** the **trackpoints** of an activity\n(e.g. from all the laps merged).\n\n### TCXLap\nOne TCX activity may contain multiple laps. In the TCX file they are visible by the **Lap** tag.\n```xml\n<Lap StartTime=\"2020-12-26T15:50:22.000Z\">\n...\n</Lap>\n```\nTCXLap contains all the trackpoints of a lap.\n\n### TCXTrackpoint\nA point in an exercise. Almost always has **latitude, longitude, time**. Can also have *cadence, distance, elevation, hr_value, tpx_ext*.\nThe tpx_ext refers to individual extensions contained inside the trackpoint. An example of the Trackpoint (pre-parsing) \nin the TCX file is shown below.\n\n```xml\n<Trackpoint>\n <Time>2020-12-26T15:50:21.000Z</Time>\n <Position>\n <LatitudeDegrees>46.49732105433941</LatitudeDegrees>\n <LongitudeDegrees>15.496849408373237</LongitudeDegrees>\n </Position>\n <AltitudeMeters>2277.39990234375</AltitudeMeters>\n <DistanceMeters>5001.52978515625</DistanceMeters>\n <HeartRateBpm>\n <Value>148</Value>\n </HeartRateBpm>\n <Extensions>\n <ns3:TPX>\n <ns3:Speed>3.3589999675750732</ns3:Speed>\n <ns3:RunCadence>61</ns3:RunCadence>\n </ns3:TPX>\n </Extensions>\n</Trackpoint>\n```\n\n### tpx_ext\nThe data parsed from the **trackpoint TPX Extensions**. Example of data (pre-parsing) is shown below.\n```xml\n<Extensions>\n <ns3:TPX>\n <ns3:Speed>3.3589999675750732</ns3:Speed>\n <ns3:RunCadence>61</ns3:RunCadence>\n </ns3:TPX>\n</Extensions>\n```\nCan occur **once (1x)** in every **trackpoint**.\n### tpx_ext_stats\nContains **minimum**, **maximum** and **average** values of the recorded **tpx_ext** key.\n\n### lx_ext\nThe data parsed from the **lap LX Extensions**. Example of data (pre-parsing) is shown below.\n```xml\n<Extensions>\n <ns3:LX>\n <ns3:AvgSpeed>1.0820000171661377</ns3:AvgSpeed>\n <ns3:Steps>65</ns3:Steps>\n </ns3:LX>\n</Extensions>\n```\nCan occur **once (1x)** in every **lap**. \n\nThe tags which do not contain **Avg, Min, Max** in their name (e.g. steps) are\nsummed in the **TCXExercise** **lx_ext** dictionary. \n\nAll tags are recorded in the **TCXLap** **lx_ext** dictionary\n\n\n### Schema of the data\n<div width=\"100%\" style=\"background-color: white; width: 100%\">\n <img width=\"100%\" style=\"margin-bottom:-8px\" src=\"https://raw.githubusercontent.com/alenrajsp/tcxreader/7c9af6dc88f9d83a8c6751b454f118220ecfd9a1/.github/images/data-explanation.svg\">\n</div>\n\n## Missing data handling\nDue to the nature of the TCX file format, some data may be missing. The **tcxreader** can handle this in two ways:\n1) If data is missing at a TCX point it is set to **None**. (*default*)\n - tcx_reader.read(file_location) (*default*)\n - tcx_reader.read(file_location, null_value_handling=1) (*default*)\n - tcx_reader.read(file_location, null_value_handling=NullValueHandling.NONE) (*default*)\n2) If data is missing at one or more TCX points it is linearly interpolated.\n - tcx_reader.read(file_location, null_value_handling=2)\n - tcx_reader.read(file_location, null_value_handling=NullValueHandling.LINEAR_INTERPOLATION)\n \nThis behavior can be set in **TCXReader.read()** method by the **null_value_handling** parameter, where either **int** value or **NullValueHandling** enum can be passed.\n\n## Datasets\n\nDatasets available and used in the examples on the following links: [DATASET1](http://iztok-jr-fister.eu/static/publications/Sport5.zip), [DATASET2](http://iztok-jr-fister.eu/static/css/datasets/Sport.zip), [DATASET3](https://github.com/firefly-cpp/tcx-test-files).\n\n## License\n\nThis package is distributed under the MIT License. This license can be found online\nat [http://www.opensource.org/licenses/MIT](http://www.opensource.org/licenses/MIT).\n\n## Related packages/frameworks\n\n[1] [sport-activities-features: A minimalistic toolbox for extracting features from sports activity files written in Python](https://github.com/firefly-cpp/sport-activities-features)\n\n[2] [AST-Monitor: A wearable Raspberry Pi computer for cyclists](https://github.com/firefly-cpp/AST-Monitor)\n\n[3] [TCXReader.jl: Julia package designed for parsing TCX files](https://github.com/firefly-cpp/TCXReader.jl)\n\n## Disclaimer\n\nThis framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it\nat your own risk!\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tbody>\n <tr>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/alenrajsp\"><img src=\"https://avatars.githubusercontent.com/u/27721714?v=4?s=100\" width=\"100px;\" alt=\"alenrajsp\"/><br /><sub><b>alenrajsp</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/commits?author=alenrajsp\" title=\"Code\">\ud83d\udcbb</a> <a href=\"#maintenance-alenrajsp\" title=\"Maintenance\">\ud83d\udea7</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/fortysix2ahead\"><img src=\"https://avatars.githubusercontent.com/u/40423757?v=4?s=100\" width=\"100px;\" alt=\"fortysix2ahead\"/><br /><sub><b>fortysix2ahead</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Afortysix2ahead\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.iztok-jr-fister.eu/\"><img src=\"https://avatars.githubusercontent.com/u/1633361?v=4?s=100\" width=\"100px;\" alt=\"Iztok Fister Jr.\"/><br /><sub><b>Iztok Fister Jr.</b></sub></a><br /><a href=\"#data-firefly-cpp\" title=\"Data\">\ud83d\udd23</a> <a href=\"#mentoring-firefly-cpp\" title=\"Mentoring\">\ud83e\uddd1\u200d\ud83c\udfeb</a> <a href=\"#platform-firefly-cpp\" title=\"Packaging/porting to new platform\">\ud83d\udce6</a> <a href=\"https://github.com/alenrajsp/tcxreader/commits?author=firefly-cpp\" title=\"Tests\">\u26a0\ufe0f</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/johnleeming\"><img src=\"https://avatars.githubusercontent.com/u/13801070?v=4?s=100\" width=\"100px;\" alt=\"johnleeming\"/><br /><sub><b>johnleeming</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Ajohnleeming\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rpstar\"><img src=\"https://avatars.githubusercontent.com/u/10442282?v=4?s=100\" width=\"100px;\" alt=\"rpstar\"/><br /><sub><b>rpstar</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Arpstar\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://relatable.dev/\"><img src=\"https://avatars.githubusercontent.com/u/1128313?v=4?s=100\" width=\"100px;\" alt=\"James Robinson\"/><br /><sub><b>James Robinson</b></sub></a><br /><a href=\"#maintenance-jlrobins\" title=\"Maintenance\">\ud83d\udea7</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/johwiebe\"><img src=\"https://avatars.githubusercontent.com/u/33023818?v=4?s=100\" width=\"100px;\" alt=\"johwiebe\"/><br /><sub><b>johwiebe</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Ajohwiebe\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://martin-ueding.de/\"><img src=\"https://avatars.githubusercontent.com/u/976924?v=4?s=100\" width=\"100px;\" alt=\"Martin Ueding\"/><br /><sub><b>Martin Ueding</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Amartin-ueding\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/simonpickering\"><img src=\"https://avatars.githubusercontent.com/u/1830341?v=4?s=100\" width=\"100px;\" alt=\"Simon Pickering\"/><br /><sub><b>Simon Pickering</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Asimonpickering\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rwinklerwilkes\"><img src=\"https://avatars.githubusercontent.com/u/2768609?v=4?s=100\" width=\"100px;\" alt=\"Rich Winkler\"/><br /><sub><b>Rich Winkler</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/issues?q=author%3Arwinklerwilkes\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ToonElewaut\"><img src=\"https://avatars.githubusercontent.com/u/12350289?v=4?s=100\" width=\"100px;\" alt=\"Toon Elewaut\"/><br /><sub><b>Toon Elewaut</b></sub></a><br /><a href=\"https://github.com/alenrajsp/tcxreader/commits?author=ToonElewaut\" title=\"Code\">\ud83d\udcbb</a></td>\n </tr>\n </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n",
"bugtrack_url": null,
"license": null,
"summary": "tcxreader is a reader for Garmin\u2019s TCX file format. It also works well with missing data! fork from https://github.com/alenrajsp/tcxreader",
"version": "0.4.10",
"project_urls": {
"Homepage": "https://github.com/Flavored4179/tcxreader"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d6479c47963d5dda2dd939b608e0b422104c59c5e1f7e580d05bf567031254f3",
"md5": "cda7660f258e0710f1a00d79da5cb924",
"sha256": "1e346b9d9f1e737fc49cdbb3eed76a0ff8d0fd293f88bebcdfdabff86d69ef1f"
},
"downloads": -1,
"filename": "tcxreader_fork-0.4.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cda7660f258e0710f1a00d79da5cb924",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 14107,
"upload_time": "2024-08-13T13:35:44",
"upload_time_iso_8601": "2024-08-13T13:35:44.333810Z",
"url": "https://files.pythonhosted.org/packages/d6/47/9c47963d5dda2dd939b608e0b422104c59c5e1f7e580d05bf567031254f3/tcxreader_fork-0.4.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f18c314f7abc73387318c69ce12f5c72595c2a691159a220eaf157fedc1858c7",
"md5": "ad1092af96c1121cd67b4dbff2111e5f",
"sha256": "cf96cad37ac4aaeec2e85f17d9f931924c4112f3f84b4bcbae19a577bfceaa0a"
},
"downloads": -1,
"filename": "tcxreader_fork-0.4.10.tar.gz",
"has_sig": false,
"md5_digest": "ad1092af96c1121cd67b4dbff2111e5f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 17066,
"upload_time": "2024-08-13T13:35:45",
"upload_time_iso_8601": "2024-08-13T13:35:45.996408Z",
"url": "https://files.pythonhosted.org/packages/f1/8c/314f7abc73387318c69ce12f5c72595c2a691159a220eaf157fedc1858c7/tcxreader_fork-0.4.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-13 13:35:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Flavored4179",
"github_project": "tcxreader",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tcxreader-fork"
}