'bushwhacking': { 'rate': 2, 'direction': '↹' },
}
+fitnesses = {
+ 'slow': 1.2,
+ 'average': 1,
+ 'fast': .7,
+}
+
unit_choices = ['metric', 'imperial']
travel_mode_choices = rates.keys()
+fitness_choices = fitnesses.keys()
-def time_calc(distance, elevation, rate, units):
+def time_calc(distance, elevation, fitness='average', rate='uphill',
+ units='imperial'):
retval = {}
if units not in unit_choices:
unit_count = distance + (elevation / 100.0)
retval['time'] = (distance + (elevation / 100.0)) / rates[rate]['rate']
+ retval['time'] = retval['time'] * fitnesses[fitness]
+
retval['unit_count'] = unit_count
retval['direction'] = rates[rate]['direction']
retval['pace'] = rates[rate]['rate']
print("\t └───────────────────────────────┘\n")
def get_parser():
- parser = argparse.ArgumentParser(description='Munter Time Calculation')
+ parser = argparse.ArgumentParser(description='Implementation of '
+ 'the Munter time calculation')
parser.add_argument('--distance',
'-d',
type=str,
default='uphill',
choices=travel_mode_choices, required=False,
- help='Travel mode (flat, by default)')
+ help='Travel mode (uphill, by default)')
+
+ parser.add_argument('--fitness',
+ '-f',
+ type=str,
+ default='average',
+ choices=fitness_choices, required=False,
+ help='Fitness modifier (average, by default)')
parser.add_argument('--units',
'-u',
'-p',
action='store_true',
default=False,
- required=False);
+ required=False,
+ help="Make output pretty");
return parser
distance = opts.distance
elevation = opts.elevation
+ fitness = opts.fitness
units = opts.units
travel_mode = opts.travel_mode
- time_estimate = time_calc(distance, elevation, travel_mode, units=units)
+ time_estimate = time_calc(distance=distance, elevation=elevation,
+ fitness=fitness, rate=travel_mode, units=units)
if opts.pretty:
print_pretty_estimate(time_estimate)