//takes the change in distance as hypotenuse and the change is altitude as the opposite and SOH finds the gradient of each individual data point public static void Generate_Gradient_Step_List() { double sin_agent, gradient_rads, gradient_return; //lists of differences between each step Altitude.Generate_Altitude_Step_List(Altitude.alt_data); Distance.Generate_Distance_Step_List(Distance.distance_data); for (int i = 0; i < Decoders.data_count - 1; i++) { //find the RHS of SOH sin_agent = altitude_step[i] / distance_step[i]; //elimininating 0/0 errors if (double.IsNaN(sin_agent)) { sin_agent = 0; } //reverse the thingy gradient_rads = Math.Asin(sin_agent); //convert back from radians gradient_return = gradient_rads * (180 / Math.PI); //add gradient (angle) to the gradient list above if (!double.IsNaN(gradient_return)) { gradient_data.Add(gradient_return); } } }
// generates the maximum values found in each data field public static void Create_Max_Values() { //creating max values Power.Find_Max_Power(Power.power_data); Cadence.Find_Max_Cadence(Cadence.cadence_data); Speed.Find_Max_Speed(Speed.speed_data); Altitude.Find_Max_Altitude(Altitude.alt_data); Distance.Find_Total_Ride_Distance(Distance.distance_data); Time.Find_Total_Ride_Time(Time.time_data); }
public static void Generate_Climb_Metrics() { //climb and drop data Altitude.Find_Altitude_Climbed(Altitude.alt_data); Altitude.Find_Altitude_Dropped(Altitude.alt_data); }