Class: TCXRead
- Inherits:
-
Object
- Object
- TCXRead
- Defined in:
- lib/tcxread.rb
Overview
The ‘TCXRead` class processes and analyzes data from a TCX (Training Center XML) file. It extracts key metrics such as distance, time, calories, ascent/descent, altitude, heart rate, power (watts), cadence, and speed from the activities recorded in the TCX file.
Reference (see also):
-
Jr. Fister, L. Lukač, A. Rajšp, I. Fister, L. Pečnik, and D. Fister,
“A minimalistic toolbox for extracting features from sport activity files,” 2021 IEEE 25th International Conference on Intelligent Engineering Systems (INES), 2021, pp. 121-126, doi: 10.1109/INES52918.2021.9512927.
Instance Attribute Summary collapse
-
#average_cadence_all ⇒ Float
readonly
The average cadence in RPM.
-
#average_cadence_biking ⇒ Float
readonly
The average cadence for the whole activity in RPM.
-
#average_heart_rate ⇒ Float
readonly
The average heart rate in beats per minute.
-
#average_speed_all ⇒ Float
readonly
The average speed for the whole activity in meters per second.
-
#average_speed_moving ⇒ Object
readonly
Returns the value of attribute average_speed_moving.
-
#average_watts ⇒ String, Float
readonly
The average power output in watts, or ‘NA’ if unavailable.
-
#max_altitude ⇒ Float
readonly
The maximum altitude reached in meters.
-
#max_watts ⇒ String, Float
readonly
The maximum power output in watts, or ‘NA’ if unavailable.
-
#total_ascent ⇒ Float
readonly
The total ascent in meters.
-
#total_calories ⇒ Integer
readonly
The total calories burned.
-
#total_descent ⇒ Float
readonly
The total descent in meters.
-
#total_distance_meters ⇒ Float
readonly
The total distance covered in meters.
-
#total_time_seconds ⇒ Float
readonly
The total time of activities in seconds.
Class Method Summary collapse
-
.load_file(file_or_path) ⇒ Object
Returns a TCXRead object from a File or file path.
-
.parse(data) ⇒ Object
Returns a TCXRead object from raw TCX data.
Instance Method Summary collapse
-
#initialize(file_path_or_xml) ⇒ TCXRead
constructor
Initializes the TCXRead object and parses the TCX file.
Constructor Details
#initialize(file_path_or_xml) ⇒ TCXRead
Initializes the TCXRead object and parses the TCX file.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/tcxread.rb', line 47 def initialize(file_path_or_xml) @doc = file_path_or_xml.is_a?(Nokogiri::XML::Document) ? file_path_or_xml : Nokogiri::XML(File.open(file_path_or_xml)) @doc.root.add_namespace_definition('ns3', 'http://www.garmin.com/xmlschemas/ActivityExtension/v2') @total_distance_meters = 0 @total_time_seconds = 0 @total_calories = 0 @total_ascent = 0 @total_descent = 0 @max_altitude = 0 @average_heart_rate = 0 @max_watts = 'NA' @average_watts = 'NA' @average_cadence_all = 0 @average_cadence_biking = 0 @average_speed_all = 0 @average_speed_moving = 0 parse end |
Instance Attribute Details
#average_cadence_all ⇒ Float (readonly)
Returns The average cadence in RPM.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#average_cadence_biking ⇒ Float (readonly)
Returns The average cadence for the whole activity in RPM.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#average_heart_rate ⇒ Float (readonly)
Returns The average heart rate in beats per minute.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#average_speed_all ⇒ Float (readonly)
Returns The average speed for the whole activity in meters per second.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#average_speed_moving ⇒ Object (readonly)
Returns the value of attribute average_speed_moving.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#average_watts ⇒ String, Float (readonly)
Returns The average power output in watts, or ‘NA’ if unavailable.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#max_altitude ⇒ Float (readonly)
Returns The maximum altitude reached in meters.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#max_watts ⇒ String, Float (readonly)
Returns The maximum power output in watts, or ‘NA’ if unavailable.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#total_ascent ⇒ Float (readonly)
Returns The total ascent in meters.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#total_calories ⇒ Integer (readonly)
Returns The total calories burned.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#total_descent ⇒ Float (readonly)
Returns The total descent in meters.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |
#total_distance_meters ⇒ Float (readonly)
Returns The total distance covered in meters.
40 41 42 |
# File 'lib/tcxread.rb', line 40 def total_distance_meters @total_distance_meters end |
#total_time_seconds ⇒ Float (readonly)
Returns The total time of activities in seconds.
40 41 42 43 |
# File 'lib/tcxread.rb', line 40 attr_reader :total_distance_meters, :total_time_seconds, :total_calories, :total_ascent, :total_descent, :max_altitude, :average_heart_rate, :max_watts, :average_watts, :average_cadence_all, :average_cadence_biking, :average_speed_all, :average_speed_moving |