Class: Strava::Models::StreamSet

Inherits:
Response show all
Defined in:
lib/strava/models/stream_set.rb

Overview

Represents a collection of activity streams from the Strava API.

A StreamSet is returned when requesting activity or segment effort streams and contains multiple synchronized time-series data streams. Each stream contains data points that correspond to the same moments in time or distance.

Examples:

Fetching and analyzing multiple streams

streams = client.activity_streams(1234567890,
  keys: 'time,distance,heartrate,watts',
  key_by_type: true
)

# Access individual streams
time_data = streams.time.data           # Array of elapsed seconds
hr_data = streams.heartrate.data        # Array of heart rate values
power_data = streams.watts.data         # Array of power values

# Calculate average power for time above threshold HR
threshold_hr = 160
time_data.each_with_index do |time, i|
  if hr_data[i] > threshold_hr
    puts "At #{time}s: HR=#{hr_data[i]}, Power=#{power_data[i]}W"
  end
end

See Also:

Instance Method Summary collapse

Instance Method Details

#altitudeStream?

Returns Altitude stream - elevation in meters.

Returns:

  • (Stream, nil)

    Altitude stream - elevation in meters



47
# File 'lib/strava/models/stream_set.rb', line 47

property 'altitude', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#cadenceStream?

Returns Cadence stream - RPM for cycling, steps per minute for running.

Returns:

  • (Stream, nil)

    Cadence stream - RPM for cycling, steps per minute for running



56
# File 'lib/strava/models/stream_set.rb', line 56

property 'cadence', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#distanceStream?

Returns Distance stream - meters from activity start.

Returns:

  • (Stream, nil)

    Distance stream - meters from activity start



41
# File 'lib/strava/models/stream_set.rb', line 41

property 'distance', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#grade_smoothStream?

Returns Smoothed grade stream - grade as percentage.

Returns:

  • (Stream, nil)

    Smoothed grade stream - grade as percentage



68
# File 'lib/strava/models/stream_set.rb', line 68

property 'grade_smooth', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#heartrateStream?

Returns Heart rate stream - beats per minute.

Returns:

  • (Stream, nil)

    Heart rate stream - beats per minute



53
# File 'lib/strava/models/stream_set.rb', line 53

property 'heartrate', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#latlngStream?

Returns GPS coordinate stream - array of [latitude, longitude] pairs.

Returns:

  • (Stream, nil)

    GPS coordinate stream - array of [latitude, longitude] pairs



44
# File 'lib/strava/models/stream_set.rb', line 44

property 'latlng', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#movingStream?

Returns Moving stream - boolean indicating whether athlete is moving.

Returns:

  • (Stream, nil)

    Moving stream - boolean indicating whether athlete is moving



65
# File 'lib/strava/models/stream_set.rb', line 65

property 'moving', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#tempStream?

Returns Temperature stream - degrees celsius.

Returns:

  • (Stream, nil)

    Temperature stream - degrees celsius



62
# File 'lib/strava/models/stream_set.rb', line 62

property 'temp', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#timeStream?

Returns Time stream - elapsed seconds from activity start.

Returns:

  • (Stream, nil)

    Time stream - elapsed seconds from activity start



38
# File 'lib/strava/models/stream_set.rb', line 38

property 'time', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#velocity_smoothStream?

Returns Smoothed velocity stream - speed in meters per second.

Returns:

  • (Stream, nil)

    Smoothed velocity stream - speed in meters per second



50
# File 'lib/strava/models/stream_set.rb', line 50

property 'velocity_smooth', transform_with: ->(v) { Strava::Models::Stream.new(v) }

#wattsStream?

Returns Power stream - watts.

Returns:

  • (Stream, nil)

    Power stream - watts



59
# File 'lib/strava/models/stream_set.rb', line 59

property 'watts', transform_with: ->(v) { Strava::Models::Stream.new(v) }