本文整理汇总了Python中auvsi_suas.models.uas_telemetry.UasTelemetry.rates方法的典型用法代码示例。如果您正苦于以下问题:Python UasTelemetry.rates方法的具体用法?Python UasTelemetry.rates怎么用?Python UasTelemetry.rates使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类auvsi_suas.models.uas_telemetry.UasTelemetry
的用法示例。
在下文中一共展示了UasTelemetry.rates方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_ignore_start_end
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_ignore_start_end(self):
"""When start and end are None, only times between logs are compared."""
delta = datetime.timedelta(seconds=1)
logs = self.create_logs(self.user1, delta=delta)
period = TimePeriod(None, None)
rates = UasTelemetry.rates(self.user1, [period])
self.assertSequenceEqual((1, 1), rates)
示例2: test_constant_rate
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_constant_rate(self):
"""Rates computed correctly."""
delta = datetime.timedelta(seconds=1)
logs = self.create_logs(self.user1, delta=delta)
period = self.consistent_period(logs, delta)
rates = UasTelemetry.rates(self.user1, [period])
self.assertSequenceEqual((1, 1), rates)
示例3: test_no_data
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_no_data(self):
log = UasTelemetry.last_for_user(self.user1)
self.assertEqual(None, log)
logs = UasTelemetry.by_user(self.user1)
self.assertEqual(len(logs), 0)
logs = UasTelemetry.by_time_period(self.user1, [])
self.assertSequenceEqual([], logs)
log_rates = UasTelemetry.rates(self.user1, [])
self.assertTupleEqual(log_rates, (None, None))
示例4: test_provided_logs
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_provided_logs(self):
"""Rates computed with provided logs."""
delta = datetime.timedelta(seconds=1)
used_logs = self.create_logs(self.user1, delta=delta)
unused_logs = self.create_logs(self.user1, delta=delta)
period = self.consistent_period(used_logs, delta)
rates = UasTelemetry.rates(self.user1,
[period],
time_period_logs=[used_logs])
self.assertSequenceEqual((1, 1), rates)
示例5: test_multiple_periods
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_multiple_periods(self):
"""Multiple periods are combined without introducing errors."""
delta = datetime.timedelta(seconds=1)
logs = [
self.create_logs(self.user1,
start=self.year2000,
delta=delta),
self.create_logs(self.user1,
start=self.year2001,
delta=delta),
]
periods = [self.consistent_period(l, delta) for l in logs]
rates = UasTelemetry.rates(self.user1, periods)
self.assertSequenceEqual((1, 1), rates)
示例6: test_different_deltas
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def test_different_deltas(self):
"""Sets of logs are combined for overall rates."""
delta = datetime.timedelta(seconds=1)
logs = [
self.create_logs(self.user1,
num=1000,
start=self.year2000,
delta=delta),
self.create_logs(self.user1,
num=1000,
start=self.year2001,
delta=delta / 2),
]
periods = [self.consistent_period(l, delta) for l in logs]
rates = UasTelemetry.rates(self.user1, periods)
self.assertAlmostEqual(1.0, rates[0]) # max
self.assertAlmostEqual(0.75, rates[1], delta=0.001) # avg
示例7: generate_feedback
# 需要导入模块: from auvsi_suas.models.uas_telemetry import UasTelemetry [as 别名]
# 或者: from auvsi_suas.models.uas_telemetry.UasTelemetry import rates [as 别名]
def generate_feedback(mission_config, user, team_eval):
"""Generates mission feedback for the given team and mission.
Args:
mission_config: The mission to evaluate the team against.
user: The team user object for which to evaluate and provide feedback.
team_eval: The team evaluation to fill.
"""
feedback = team_eval.feedback
# Calculate the total mission clock time.
missions = MissionClockEvent.missions(user)
mission_clock_time = datetime.timedelta(seconds=0)
for mission in missions:
duration = mission.duration()
if duration is None:
team_eval.warnings.append('Infinite mission clock.')
else:
mission_clock_time += duration
feedback.mission_clock_time_sec = mission_clock_time.total_seconds()
# Calculate total time in air.
flight_periods = TakeoffOrLandingEvent.flights(user)
if flight_periods:
flight_time = reduce(lambda x, y: x + y, [p.duration()
for p in flight_periods])
feedback.flight_time_sec = flight_time.total_seconds()
else:
feedback.flight_time_sec = 0
# Find the user's flights.
for period in flight_periods:
if period.duration() is None:
team_eval.warnings.append('Infinite flight period.')
uas_period_logs = [
UasTelemetry.dedupe(logs)
for logs in UasTelemetry.by_time_period(user, flight_periods)
]
uas_logs = list(itertools.chain.from_iterable(uas_period_logs))
if not uas_logs:
team_eval.warnings.append('No UAS telemetry logs.')
# Determine interop telemetry rates.
telem_max, telem_avg = UasTelemetry.rates(user,
flight_periods,
time_period_logs=uas_period_logs)
if telem_max:
feedback.uas_telemetry_time_max_sec = telem_max
if telem_avg:
feedback.uas_telemetry_time_avg_sec = telem_avg
# Determine if the uas went out of bounds. This must be done for
# each period individually so time between periods isn't counted as
# out of bounds time. Note that this calculates reported time out
# of bounds, not actual or possible time spent out of bounds.
out_of_bounds = datetime.timedelta(seconds=0)
feedback.boundary_violations = 0
for logs in uas_period_logs:
bv, bt = FlyZone.out_of_bounds(mission_config.fly_zones.all(), logs)
feedback.boundary_violations += bv
out_of_bounds += bt
feedback.out_of_bounds_time_sec = out_of_bounds.total_seconds()
# Determine if the uas hit the waypoints.
feedback.waypoints.extend(UasTelemetry.satisfied_waypoints(
mission_config.home_pos, mission_config.mission_waypoints.order_by(
'order'), uas_logs))
# Evaluate the targets.
user_targets = Target.objects.filter(user=user).all()
evaluator = TargetEvaluator(user_targets, mission_config.targets.all())
feedback.target.CopyFrom(evaluator.evaluate())
# Determine collisions with stationary and moving obstacles.
for obst in mission_config.stationary_obstacles.all():
obst_eval = feedback.stationary_obstacles.add()
obst_eval.id = obst.pk
obst_eval.hit = obst.evaluate_collision_with_uas(uas_logs)
for obst in mission_config.moving_obstacles.all():
obst_eval = feedback.moving_obstacles.add()
obst_eval.id = obst.pk
obst_eval.hit = obst.evaluate_collision_with_uas(uas_logs)
# Add judge feedback.
try:
judge_feedback = MissionJudgeFeedback.objects.get(
mission=mission_config.pk,
user=user.pk)
feedback.judge.CopyFrom(judge_feedback.proto())
except MissionJudgeFeedback.DoesNotExist:
team_eval.warnings.append('No MissionJudgeFeedback for team.')
# Sanity check mission time.
judge_mission_clock = (
feedback.judge.flight_time_sec + feedback.judge.post_process_time_sec)
if abs(feedback.mission_clock_time_sec - judge_mission_clock) > 30:
team_eval.warnings.append(
'Mission clock differs between interop and judge.')