Sha256: 9c7561fff16f371197100ccd38dc5493347ab8d8177bfd9e3ef302b90649214b
Contents?: true
Size: 877 Bytes
Versions: 1
Compression:
Stored size: 877 Bytes
Contents
# Inspired by the work CTM Davies' research, as discussed by the Strava # blog: http://engineering.strava.com/improving-grade-adjusted-pace/ module Stressfactor class GradeAdjustedPaceStrategy < PaceStrategy attr_accessor :interval def self.calculate_for_interval(interval) observed_pace = interval.time(units: :minutes) / interval.distance interval.grade > 0 ? incline_pace(interval, observed_pace) : decline_pace(interval, observed_pace) end def self.decline_pace(interval, observed_pace) coefficient_per_grade_point = 0.01815 grade = interval.grade observed_pace / (1 - (coefficient_per_grade_point * grade)) end def self.incline_pace(interval, observed_pace) coefficient_per_grade_point = 0.033 grade = interval.grade observed_pace / (1 + (coefficient_per_grade_point * grade)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stressfactor-0.0.1 | lib/stressfactor/grade_adjusted_pace_strategy.rb |