Skip to content

Calculate CdA (Coefficient of Drag) and crr (tire rolling resistance) based on field testing data in the form of Garmin or compatible .FIT files.

License

Notifications You must be signed in to change notification settings

mariuspopovici/mycda.app

Repository files navigation

MyCdA.app

MyCdA.app lets you use data collected using a power meter, speed sensor and a cycling computer and estimate your drag coefficient (CdA) and /or rolling resistance (crr). Compare data across different runs in order to determine if an equipment or position change is beneficial or not.

Demo

Click here for a working demo.

Features

  • Upload and process Garmin .FIT and .CSV files
  • Analyze power, speed and elevation data using an interactive chart and activity map
  • View statistics by entire activity or for individual laps
  • Detect loops in activity GPS track.
  • Analyze CdA and crr for by lap or manual selection from chart. Identify loops and use loop start / end markings to align Virtual Elevation profile.
  • View virtual elevation chart, visually adjust CdA and crr and analyze results
  • Include air speed in VE calculations (through CSV import)
  • Support for drivetrain / friction loss adjustments.
  • Record notes and equipment changes for specific segments
  • Calculate air density by manual input or automatically based on current GPS location altitude adjusted
  • Save CdA/crr analysis segments and view / edit later
  • Designate segments as baseline segments
  • Compare segments to baseline showing % CdA, Watts Saved and Seconds/40k
  • Calculate Mean, Std. Dev and CV across all segments

Screenshot Tour

Landing Page

Landing page

Login Screen

Login screen

Activities Screen

Activities List

Activity Details Screen

Home / Activity Details with Segment Stats

CdA Screen

CdA Analysis

CdA Screen

CdA Analysis Loop Detection

CdA Screen

CdA Analysis Loop Detection Settings

Activities Screen

CdA Analysis Air Density Calculator.

TODO

  • Segment splitting. This feature will allow to split loops into out and back segments and average individual splits CdA. This should allow analysis for courses where braking cannot be avoided or out and back time trial course etc.

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# deploy to Firebase project (create and initialize a new Firebase project)
firebase deploy

For a detailed explanation on how things work, check out the guide and docs for vue-loader.

Configuration

In order to use the location based weather data pull you need to configure your app instance to connect to the OpenWeatherMap API. To do so follow these simple steps:

  • Sample application configuration files are provided in the config folder. Rename sample.dev.env.js to dev.env.js and sample.prod.env.js to prod.env.js.
  • Sign up for a free OpenWeatherMap account at https://openweathermap.org/api
  • Once your account is set up, go into API Keys and copy your API key.
  • Configure MyCdA.app by editing the config/prov.env.js file and inserting the API key copied in the previous text into the placeholder.
  • Sign up for a free Google Firebase account at https://firebase.google.com/
  • From the Firebase console, enable Email/Password authentication from the Authentication, Sign-in method tab.
  • Obtain your firebase project keys and insert them in the env.js configuration file
  • Obtain a Google Maps API key and insert key into the configuration file.
module.exports = merge(prodEnv, {
  NODE_ENV: `"development"`,
  OW_API_KEY: `"your open weather API key here"`,
  FB_API_KEY: `"Firebase API key here"`,
  FB_AUTH_DOMAIN: `"Firebase auth domain"`,
  FB_DATABASE_URL: `"Firebase database url"`,
  FB_PROJECT_ID: `"Firebase app name"`,
  FB_STORAGE_BUCKET: `"Firebase storage bucket"`,
  FB_MSG_SENDER_ID: `"Firebase sender id"`,
  GOOGLE_MAPS_API_KEY: `"Google Maps API key"`
});

History

Visit the Community page for a list of build release notes.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT '

About

Calculate CdA (Coefficient of Drag) and crr (tire rolling resistance) based on field testing data in the form of Garmin or compatible .FIT files.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published