Visualizando o uso dos meus tênis de corrida ao longo do tempo com dados do Strava
Recentemente eu publiquei no meu LinkedIn um post com uma animação sobre o uso dos meus tênis de corrida ao longo do tempo.
Abaixo, vou resumir minhas etapa desse processo.
Extraindo os dados
A primeira coisa que fiz foi extrair os dados. Embora o Strava acesso via API, esse processo pode ser mais complexo. Para esta análise, optei por exportar meus dados diretamente do Strava, o que é um método mais simples e atendeu minhas necessidades.
Para exportar você precisa acessar o link strava.com/athlete/delete_your_account e fazer a solicitação dos seus dados.
Aguarde até receber um e-mail na sua Your Strava archive is ready for download
(se não encontrar, tente filtrar pelo e-mail no-reply@strava.com
)
O arquivo final é um .zip com os seguintes arquivos:
Explorando os dados com código
Todo código que utilizei pode ser acessado aqui
Para facilitar eu usei a linguagem Python via Jupyter Notebok para fazer as análises a partir do arquivo activities.csv
df = pd.read_csv('activities.csv')
df.columns
Outra dica importante: lembre-se de filtrar apenas as atividades específicas desejadas, principalmente se você também registra outros esportes.
run_df = df[df['Activity Type'] == 'Run']
Com esse dataset de atividades do Strava, podemos ver algumas colunas indicando o tênis usado em cada atividade. A minha ideia a partir disso foi tentar agrupar os dados por tênis e analisar métricas como a distância total percorrida, número de atividades, etc;
Inicialmente, considerei utilizar as informações da coluna Activity Gear
, onde é registrado o nome do tênis cadastrado no Strava. No entanto, percebi que essa lista estava incompleta (eu cheguei até abrir um chamado no suporte do Strava para investigar um possível bug).
Minha solução foi combinar as informações das colunas Gear
e Activity Gear
para criar manualmente um dicionário que relaciona o ID de cada tênis com o respectivo nome.
Primeiro eu exportei os IDs dos tênis listados.
Em seguida, verifiquei quais atividades estavam presentes na lista e quais não estavam. Para as atividades não identificadas, utilizei a coluna Activity ID
para reconstruir a URL correspondente no Strava. Com isso, acessei a interface da plataforma para conferir qual tênis foi utilizado em cada atividade.
Com isso, consegui montar meu dicionário.
E finalmente, fazer a relação entre eles:
run_df['Gear Name'] = run_df['Gear'].map(shoes_dict)
Construindo a animação
Para criar a animação, utilizei o serviço online Flourish (utilizei a versão gratuita da plataforma).
Além de ajustar os parâmetros, utilizei o código para reorganizar os dados, pois, no Flourish, o “tempo” precisa ser apresentado em formato de colunas.
O resultado final:
public.flourish.studio/visualisation/20001712
Espero que este artigo e o notebook sejam um bom ponto de partida para quem deseja entender melhor seus dados do Strava.
Existem inúmeras possibilidades, você pode usá-lo para identificar padrões de desempenho, explorar quais fatores influenciam suas atividades e até para definir metas mais realistas.
Outra análise: