A CoachingMate analytical module to generate and deliver personalized feedback to coaches and athletes. Training sessions' descriptions could be merged with Garmin data to:
- Assess if athletes are training as they should (Are the athletes training as suggested?).
- Assess if athletes are training more or less than what they should (Are the athletes over-training or under-training?).
- Predict/anticipate athlete risk fatigue levels (to avoid injuries).
- Predict performance (We didn't focus on this task, but there's a place holder for future developers,
please see the
PerformanceModelBuilder
class indata_modeling.py
module. Also cleaned data and extracted features are available if needed).
Python 3.6
is preferred. Other Python versions should also work if there are no library conflicts between versions.
-
Open the project
monitoring-athletes-performance
with IDE. -
Use
the monitoring-athletes-performance/main
as the content root. -
Setup the Python Interpreter. A virtual environment is suggested.
-
Run the following command to install the required packages.
pip3 install -r requirements.txt
-
Put the spreadsheet data (eg.
Eduardo Oliveira.csv
) in thedata
directory. -
Put the folder (eg.
fit_eduardo_oliveira
) contains.fit
files in thedata
directory.Optional: What's more, our system supports you to simply convert
.fit
files in a separate module. Similarly, put the folder contains.fit
files in thedata
directory, for example athletefit_eduardo_oliveira
,fit_xu_chen
andfit_carly_hart
, in your Terminal go to themain
directory, and run the following commands. Folders contains converted .csv files will show up indata
directory.python3 fit_file_convert/process_all.py --subject-dir=../data --subject-name=csv_eduardo_oliveira --fit-source=../data/fit_eduardo_oliveira python3 fit_file_convert/process_all.py --subject-dir=../data --subject-name=csv_xu_chen --fit-source=../data/fit_xu_chen python3 fit_file_convert/process_all.py --subject-dir=../data --subject-name=csv_carly_hart --fit-source=../data/fit_carly_hart
Open the system built-in command-line tools or Terminal in a Python IDE, you can go to the main folder of the project, and run the following command.
python main.py --athletes-names xu_chen eduardo_oliveira --initialize-system=False --generate-pmc=True
The example above means you don't want to initialize the system (say it's your second time running this system), but you do want to generate the Performance Management Charts for Xu Chen and Eduardo Oliveira (say you have updated the fit files). Please refer to Additional Help for more options.
For the developers who will work further based on this system, we recommend changing options in main.py
for tests, and
here's an overview.
if __name__ == '__main__':
athletes_names = ['eduardo_oliveira', 'xu_chen', 'carly_hart']
internal_args = ['--athletes-names={}'.format(' '.join(athletes_names)),
'--initialize-system=False', '--clean-data=False', '--process-feature-engineering=False',
'--build-model=False', '--generate-pmc=True']
main(internal_args)
monitoring-athletes-performance
├── main
│ ├── main.py
| ├── system_initialize.py
│ ├── data_loader.py
| ├── data_cleaning.py
| ├── data_feature_engineering.py
| ├── data_merge.py
| ├── data_modeling.py
| ├── requirements.txt
│ |── config
│ | ├── data_file_names.cfg
│ | ├── activity_types.cfg
│ | ├── column_data_types.cfg
│ | └── athlete_personal_info.json
│ └── fit_file_convert
│ ├── convert_fit_to_csv.py
│ └── process_all.py
├── data
│ ├── Eduardo Oliveira.csv
│ ├── Xu Chen.csv
│ ├── Carly Hart.csv
| ├── fit_eduardo_oliveira
| ├── fit_xu_chen
| ├── fit_carly_hart
│ |── csv_eduardo_oliveira
│ | ├── fit_csv
│ | └── fit_files
│ |── csv_xu_chen
│ | ├── fit_csv
│ | └── fit_files
│ |── csv_carly_hart
│ | ├── fit_csv
│ | └── fit_files
│ |── cleaned_spreadsheet
│ | ├── Carly Hart.csv
│ | ├── Eduardo Oliveira.csv
│ | └── Xu Chen.csv
│ |── cleaned_additional
│ | ├── carly_hart
│ | ├── eduardo_oliveira
│ | └── xu_chen
│ └── merged_dataframes
|
├── log
├── models
├── plots
|
├── LICENSE
└── README.md
optional arguments:
-h, --help show this help message and exit
--initialize-system INITIALIZE_SYSTEM
whether initialize the system, default is True
--clean-data CLEAN_DATA
whether clean the data, default is True
--process-feature-engineering FEATURE_ENGINEERING
whether do feature engineering, default is True
--build-model BUILD_MODEL
whether process modeling, default is True
--generate-pmc GENERATE_PMC
whether generate PMC, default is True
--display-tss-in-pmc DISPLAY_TSS_IN_PMC
whether display TSS points in PMC, default is True
--athletes-names ATHLETES_NAME
the athletes' names split by spaces, this is a require field
- Lin Mi (983667)
- Tingli Qiu (990497)
- Spoorthi Suresh Avvanna (1037470)
- Chitra Naga Durga Sindhusha Veluguleti (1045391)
- Yuhan Zhao (1042775)
Data Science Project 2020 Group 13, The University of Melbourne