Ejemplo n.º 1
0
def format_legs(flight, legs):
    r = []

    for leg in legs:
        duration = leg.end_time - leg.start_time

        if duration.total_seconds() > 0:
            speed = leg.distance / duration.total_seconds()
            climb_percentage = leg.climb_duration.total_seconds(
            ) / duration.total_seconds() * 100
        else:
            speed = 0
            climb_percentage = 0

        if abs(leg.cruise_height) > 0 and leg.cruise_distance \
           and abs(leg.cruise_distance / leg.cruise_height) < 1000:
            glide_rate = format_decimal(float(leg.cruise_distance) /
                                        -leg.cruise_height,
                                        format='#.#')
        else:
            glide_rate = u'\u221e'  # infinity

        if leg.climb_duration.total_seconds() > 0:
            if leg.climb_height:
                climbrate = leg.climb_height / leg.climb_duration.total_seconds(
                )
            else:
                climbrate = 0

            climbrate_text = units.format_lift(climbrate)
        else:
            climbrate_text = u'-'

        r.append(
            dict(distance=units.format_distance(leg.distance, 1),
                 duration=duration,
                 speed=units.format_speed(speed),
                 climb_percentage=format_decimal(climb_percentage,
                                                 format='#.#'),
                 climbrate=climbrate_text,
                 glide_rate=glide_rate,
                 start_time_of_day=to_seconds_of_day(flight.takeoff_time,
                                                     leg.start_time)))

    return r
Ejemplo n.º 2
0
def format_legs(flight, legs):
    r = []

    for leg in legs:
        duration = leg.end_time - leg.start_time

        if duration.total_seconds() > 0:
            speed = leg.distance / duration.total_seconds()
            climb_percentage = leg.climb_duration.total_seconds() / duration.total_seconds() * 100
        else:
            speed = 0
            climb_percentage = 0

        if abs(leg.cruise_height) > 0 and leg.cruise_distance \
           and abs(leg.cruise_distance / leg.cruise_height) < 1000:
            glide_rate = format_decimal(float(leg.cruise_distance) / -leg.cruise_height, format='#.#')
        else:
            glide_rate = u'\u221e'  # infinity

        if leg.climb_duration.total_seconds() > 0:
            if leg.climb_height:
                climbrate = leg.climb_height / leg.climb_duration.total_seconds()
            else:
                climbrate = 0

            climbrate_text = units.format_lift(climbrate)
        else:
            climbrate_text = u'-'

        r.append(dict(distance=units.format_distance(leg.distance, 1),
                      duration=duration,
                      speed=units.format_speed(speed),
                      climb_percentage=format_decimal(climb_percentage, format='#.#'),
                      climbrate=climbrate_text,
                      glide_rate=glide_rate,
                      start_time_of_day=to_seconds_of_day(flight.takeoff_time, leg.start_time)))

    return r
Ejemplo n.º 3
0
 def seconds_of_day(self):
     return to_seconds_of_day(self.flight.takeoff_time, self.start_time)
Ejemplo n.º 4
0
 def seconds_of_day(self):
     return to_seconds_of_day(self.flight.takeoff_time, self.start_time)