def apresentaGraficoCompleto( registros): # Chama as funções referente ao gráfico completo global flag xys = [] xa = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) ya = dados.getList(registros, dados.TIPO_ALTITUDE, flag + dados.COM_NONE) if not puras.notNone(ya) and len(xa) > 1: xys += [(xa, ya, 0)] xb = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) yb = dados.getList(registros, dados.TIPO_BPMS, flag + dados.COM_NONE) if not puras.notNone(yb) and len(xb) > 1: xys += [(xb, yb, 1)] lat, lon = dados.getList(registros, dados.TIPO_LATITUDE, flag + dados.COM_NONE), dados.getList( registros, dados.TIPO_LONGITUDE, flag + dados.COM_NONE) tempo = puras.tempo_registros( dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE)) if not puras.notNone(lat) and not puras.notNone(lon) and len(tempo) > 1: xc = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) yc = puras.getRitmo_Por_Registro( tempo, puras.dist_percorrida_por_registro(lat, lon)) xys += [(xc, yc, 2)] if xys != []: grafico.criarGrafico(xys, "Gráfico Completo") else: print(strings.sem_dados_para_grafico)
def dados_nao_encontrados(bpms, passos, altitudes): str_msg = "" if puras.notNone(bpms): str_msg += "\n" + strings.sem_bpm + "\n" if puras.notNone(passos): str_msg += "\n" + strings.sem_cadencia + "\n" if puras.notNone(altitudes): str_msg += "\n" + strings.sem_altitude + "\n" print(str_msg, end="")
def ritmo(registros): global flag tempo_total = dados.getTempoTotal(registros) latitudes = dados.getList(registros, dados.TIPO_LATITUDE, flag) longitudes = dados.getList(registros, dados.TIPO_LONGITUDE, flag) if not puras.notNone(latitudes) and not puras.notNone(longitudes): tempo_decorrido = tempo_total / 60 dist_total = puras.dist_percorrida(latitudes, longitudes) print(strings.ritmo.format(tempo_decorrido / dist_total)) else: print(strings.sem_ritmo)
def apresentaResumoPorKM( registros): # Chama as funções referente ao resumo por KM global flag print("\n", strings.bordas) i1 = 0 #Índice do início do KM i2 = 1 #Índice do final do KM, vai ser incrementado km = 1 #Contador de KM dist = 0 #distância lat = dados.getList(registros, dados.TIPO_LATITUDE, flag + dados.COM_NONE) lon = dados.getList(registros, dados.TIPO_LONGITUDE, flag + dados.COM_NONE) if not puras.notNone(lat) and not puras.notNone(lon): tempo = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) alt = dados.getList(registros, dados.TIPO_ALTITUDE, flag + dados.COM_NONE) passos = dados.getList(registros, dados.TIPO_PASSOS, flag + dados.COM_NONE) bpms = dados.getList(registros, dados.TIPO_BPMS, flag + dados.COM_NONE) while i2 < len( dados.getList(registros, dados.TIPO_LATITUDE, flag + dados.COM_NONE)): dist += geodesic((lat[i2 - 1], lon[i2 - 1]), (lat[i2], lon[i2])).kilometers if dist > km or i2 == len( dados.getList(registros, dados.TIPO_LATITUDE, flag + dados.COM_NONE) ) - 1: # Imprimi e armazena os dados do início do próximo k tempo_total = tempo[i2] - tempo[i1] print( strings.resumoKMLAPS.format( km, # Km atual "km", # Km puras.getMinutos(tempo_total), # Minutos puras.getSegundos(tempo_total), # Segundos puras.getMinutos(tempo_total), # Ritmo puras.getCadenciaPassos(passos[i1:i2], tempo_total), # Cadência puras.getMediaBpm(bpms[i1:i2], tempo[i1:i2]), # BPM puras.getGanhoOuPerda( alt[i2] - alt[i1]), # String com "ganho" ou "perder" puras.getModulo(alt[i2] - alt[i1])), # Altitude ganho ou perda end="") i1 = i2 km += 1 i2 += 1 dados_nao_encontrados(bpms, passos, alt) else: print("\n" + strings.sem_distancia) print("\n", strings.bordas, "\n")
def apresentaGraficoRitmo( registros): # Chama as funções referente ao gráfico ritmo global flag lat, lon = dados.getList(registros, dados.TIPO_LATITUDE, flag + flag + dados.COM_NONE), dados.getList( registros, dados.TIPO_LONGITUDE, flag + dados.COM_NONE) tempo = puras.tempo_registros( dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + flag + dados.COM_NONE)) if not puras.notNone(lat) and not puras.notNone(lon) and len(tempo) > 1: x = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) y = puras.getRitmo_Por_Registro( tempo, puras.dist_percorrida_por_registro(lat, lon)) grafico.criarGrafico([(x, y)], ("Gráfico de Ritmo")) else: print(strings.sem_dados_para_grafico)
def apresentaGraficoBPMs( registros): # Chama as funções referente ao gráfico BPMs global flag x = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) y = dados.getList(registros, dados.TIPO_BPMS, flag + dados.COM_NONE) if not puras.notNone(y) and len(x) > 1: grafico.criarGrafico([(x, y)], ("Gráfico BPM")) else: print(strings.sem_dados_para_grafico)
def cadencia_de_passos(registros): global flag lista_dos_passos = dados.getList(registros, dados.TIPO_PASSOS, flag) if not puras.notNone(lista_dos_passos): tempo_total = dados.getTempoTotal(registros) cadencia_passos = puras.getCadenciaPassos(lista_dos_passos, tempo_total) print(strings.cadencia.format(cadencia_passos)) else: print(strings.sem_cadencia)
def apresentaGraficoBPMsZonas( registros): # Chama as funções referente ao gráfico de Zonas do BPM global flag x = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag + dados.COM_NONE) y = dados.getList(registros, dados.TIPO_BPMS, flag + dados.COM_NONE) if not puras.notNone(y) and len(x) > 1: idade = int(input("Digite sua idade: ")) grafico.criarGrafico([(x, y)], ("Gráfico Zonas de BPM", idade)) else: print(strings.sem_dados_para_grafico)
def batimentos_por_minutos(registros): global flag contador = 0 lista_dos_bpms = dados.getList(registros, dados.TIPO_BPMS, flag) if not puras.notNone(lista_dos_bpms): tempo = dados.getList(registros, dados.TIPO_TEMPO_REGISTROS, flag) bpm_max = max(lista_dos_bpms) bpm_min = min(lista_dos_bpms) print(strings.bpm_maxima.format(bpm_max)) print(strings.bpm_minima.format(bpm_min)) print( strings.bpm_media.format(puras.getMediaBpm(lista_dos_bpms, tempo))) else: print(strings.sem_bpm)
def altitude_max_e_min(registros): global flag lista_das_altitudes = dados.getList(registros, dados.TIPO_ALTITUDE, flag) if not puras.notNone(lista_das_altitudes): altitude_max = max(lista_das_altitudes) altitude_min = min(lista_das_altitudes) altitude_inicial = lista_das_altitudes[0] print(strings.altitude_maxima.format( altitude_max - altitude_inicial)) # Altitude relativa máxima print(strings.altitude_minima.format( altitude_inicial - altitude_min)) # Altitude relativa mínima else: print(strings.sem_altitude)