This repository contains a comprehensive application for evaluating climbers' physical performance and predicting their IRCRA (International Rock Climbing Research Association) levels. The toolkit integrates force sensor and NIRS (Near-Infrared Spectroscopy) data acquisition, test evaluation, and machine learning-based performance prediction.
- Overview
- Features
- System Architecture
- Installation
- Usage
- Database Structure
- Machine Learning Models
- Contributing
- License
This application is developed as part of a research project to assess climbers' physical capabilities and predict their climbing performance potential. The system provides a comprehensive suite of tools for researchers to:
- Manage climber profiles and demographic information
- Conduct standardized force and physiological tests
- Visualize and analyze test results in real-time
- Generate detailed reports and export data
- Train and utilize machine learning models for performance prediction
- Multi-level user authentication system
- Role-based access control (admin vs. researcher)
- User profile management
- Registration and management of climber profiles
- Storage of demographic, experience, and physical data
- Tracking of multiple climbers per researcher
- Support for various test protocols (MVC, endurance, etc.)
- Real-time data acquisition from force sensors and NIRS devices
- Test session management and organization
- Force curve analysis and metric extraction
- NIRS data processing for muscle oxygenation assessment
- Computation of key performance indicators
- Interactive data visualization of test results
- Comparison tools for performance tracking
- Detailed repetition-level analysis
- IRCRA grade prediction using machine learning models
- Feature extraction and dimensionality reduction
- Model training interface for researchers
- PDF report generation for test sessions
- Data export in multiple formats (CSV, XLSX, HDF5)
- Statistical analysis and aggregation
The application is structured in a modular fashion with several key components:
- Authentication Module: Manages user accounts and session control
- Climber Management Module: Handles climber profiles and information
- Test Administration Module: Controls test configuration and execution
- Data Acquisition Module: Manages sensor data collection and processing
- Results Module: Provides analysis and visualization of test data
- Statistics Module: Implements machine learning models and predictions
- Database Layer: Maintains structured storage of all application data
- Python 3.11 or higher
- SQLite database engine
- Required Python packages (listed in requirements.txt)
- Clone the repository:
git clone https://github.com/yourusername/climbing-performance-toolkit.git
cd climbing-performance-toolkit- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Initialize the database:
python main.py --init-dbLaunch the application with:
python main.pyThen log in with your administrator credentials.
- Register Climbers: Add participant information through the Research Members interface
- Conduct Tests: Use the Test Page to configure and execute climbing tests
- View Results: Access the Results Page to analyze test data and visualize performance
- Generate Reports: Export data or create PDF reports from the Results interface
- Train Models: Use the Statistics Page to train and evaluate prediction models
- Predict Performance: Apply trained models to predict climber IRCRA grades
The application uses SQLite databases organized into three main components:
- Login Database: Stores user authentication information and research profiles
- Climber Database: Contains climber demographic and experience information
- Tests Database: Stores test configurations, results, and computed metrics
The application employs several machine learning approaches for performance prediction:
- : For dimensionality reduction of high-dimensional test data Principal Component Analysis (PCA)
- : For IRCRA grade prediction based on test performance Support Vector Regression (SVR)
- Linear Regression: For simplified performance modeling and comparison
Models are trained on existing data and can be continuously improved as more test data is collected.
Contributions to this project are welcome. Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details. Note: This application is designed for research purposes. Always follow ethical guidelines when collecting and analyzing human subject data.