Article image
Idarlene Pinto
Idarlene Pinto07/12/2023 12:17
Compartilhe

StravaLítica: Decifrando a Estrada da Análise de Dados em suas Corridas!

  • #Estrutura de dados

Assim como eu, muita gente se apaixonou à primeira vista pelo incrível mundo dos dados. Este campo é repleto de oportunidades e caminhos a serem explorados e desbravados. Podemos abordar desde enigmas complexos até lidar com as situações mais comuns do nosso dia a dia, revelando um poder único: a multidisciplinaridade.

 

Diferentemente de outras áreas, a teoria não é apenas abstrata, mas uma ferramenta palpável para resolvermos os nossos problemas do cotidiano. Vale ressaltar ainda que, a mágica acontece apenas quando colocamos a teoria em prática, como Immanuel kant disse: “A teoria sem a prática é inútil; a prática sem a teoria é cega.”


O que mais impressiona é a fascinante arte de observar o nascimento das tendências, os padrões sendo revelados e as respostas aparecendo como num passe de mágica. No entanto, para que essa mágica aconteça temos que ativar o modo hands on, ou seja, mãos na massa.


Em um mundo cada vez mais conectado, compartilhar conhecimentos e experiências com outros entusiastas enriquece ainda mais a jornada, o que colabora para o amadurecimento e avanços da área. A troca de ideias amplia nossa visão, proporcionando soluções mais eficientes.


Neste artigo, demonstrarei que é possível realizar um show de mágica ao resolver um problema do meu cotidiano por meio dos dados. 


Probleminha ou problemão?


  • Como posso transformar o conhecimento que adquiri na área de dados para promover mudanças em minha vida ou para a sociedade?
  • Quais aspectos da minha vida ou do mundo ao meu redor eu gostaria de impactar positivamente?
  • Quais são os principais objetivos que busco alcançar?
  • Que ganhos pessoais, profissionais ou sociais posso antecipar ao desenvolver meu conhecimento para esta causa específica? 
  • Quais desafios ou obstáculos posso enfrentar ao tentar aplicar meu conhecimento?
  • Onde poderei ter acesso aos dados necessários para a análise?
  • Qual é a linguagem de programação que utilizarei na coleta dos dados?
  • Onde analisarei os dados?


Estas perguntas atuaram como uma bússola, guiando-me ao tema escolhido neste artigo. O primeiro passo foi dado! Identifiquei qual era o problema e estabeleci meu destino com base nas perguntas mencionadas acima. Vamos analisar cada uma mais detalhadamente:


  1. Como posso transformar o conhecimento que adquiri na área de dados para promover mudanças em minha vida ou para a sociedade?
  2. Resposta: Comecei abordando um problema do meu cotidiano, algo em que tenho domínio na área e tenha satisfação em acompanhar todo o processo.
  3. Quais aspectos da minha vida ou do mundo ao meu redor eu gostaria de impactar positivamente?
  4. Resposta: No meu caso, direcionei meu foco para minha segunda paixão: a corrida de rua.
  5. Quais são os principais objetivos que busco alcançar?
  6. Resposta: Meus objetivos incluem ter uma visão clara da minha evolução nos treinos e provas, monitorar a periodicidade, evitar possíveis casos de overtraining e identificar áreas para melhorar minha performance.
  7. Que ganhos pessoais, profissionais ou sociais posso antecipar ao desenvolver meu conhecimento para esta causa específica?
  8. Resposta: Ganharei em conhecimento da área de dados, além de levar para casa um pacote valioso de insights sobre meus treinos e oportunidades de aprimoramento na performance.
  9.  Quais desafios ou obstáculos posso enfrentar ao tentar aplicar meu conhecimento?
  10.  Resposta: Certamente, enfrentarei desafios como a obtenção dos dados, interpretação dos mesmos e as dúvidas iniciais sobre por onde começar. O intuito é nunca desistir, assim como numa corrida. É essencial seguir em frente para cruzar a linha de chegada.
  11.  Onde poderei ter acesso aos dados necessários para a análise?
  12. Resposta: No meu caso, utilizo um smartwatch para monitorar minhas atividades, sincronizado com o Strava, um aplicativo que funciona como uma rede social para entusiastas de esportes. Por meio desse app, farei a coleta dos dados referentes aos meus treinos.
  13. Qual é a linguagem de programação que utilizarei na coleta dos dados?
  14. Resposta: Linguagem escolhida: Python.
  15. Onde analisarei os dados?
  16. Resposta: Na plataforma da Microsoft Power BI.


Metas traçadas e esclarecidas, chegou a hora de começarmos...


Coletando Dados: A arte de ‘espiar’ meus próprios passos com estilo


De acordo com o Canaltech, o Strava é mais do que um aplicativo de rastreamento de exercício. É uma plataforma que combina o rastreamento dos seus exercícios físicos com os integrantes da comunidade de atletas amadores ou profissionais.


image

Este aplicativo ficou tão famoso que ele abriu um espaço para os desenvolvedores criarem aplicativos e ajudarem a engrandecê-lo. Logo, encontrei a solução para extrair os dados que eram necessários no estudo.

Os dados seriam extraídos a partir de uma API, que fornece chaves únicas para liberar o acesso aos dados. Para criar esta API, segui os passos abaixo:


  •  Realizar o login no site: https://www.strava.com
  • Navegar até o menu com a foto do usuário e cliquei em “Definições”
  • Uma vez dentro das configurações, encontrar o menu “A minha aplicação de API” no lado esquerdo da tela e iniciar o processo de criação.

image


Com a API devidamente criada, é possível visualizar as chaves únicas que serão necessárias para o uso no coletor de dados. Para melhor compreensão, segue o detalhamento dos significados de cada campo:


image


  • Categoria: A categoria escolhida para sua aplicação (não importa qual irá escolher).
  • Clube: Não é necessário.
  • ID Cliente: Sua ID de identificação (confidencial).
  • Cliente Secreto: Seu código de cliente secreto (confidencial).
  • O seu token de acesso: Seu token de autorização no qual muda a cada seis horas (confidencial).
  • O seu token de atualização: Seu token que será utilizado para obter um novo token de autorização (confidencial).
  • Classificar limites: Seu limite diário na aplicação.


Após obter a minha primeira API e ter conhecimento sobre os campos fornecidos, é necessário obter o código de autorização, mas para esta etapa guarde o seu ID Cliente. Após isto, é essencial seguir os seguintes passos:


  • Copie e cole o link a seguir:

https://www.strava.com/oauth/authorize?client_id=id_cliente&redirect_uri=http://localhost&response_type=code&scope=activity:read_all

  • Ainda sobre o link acima, substitua o id cliente, pelo ID Cliente que foi fornecido na API, na qual, foi configurada anteriormente.


image


  • Ao executar a página uma aba de autorização será exibida, clique em autorizar e salve a nova url, pois ela armazena o código que é necessário mais tarde.

http://localhost/exchange_token?state=&code= GUARDE ESTE CÓDIGO AQUI &scope [...]

  • Para esta etapa será necessário acessar o site https://www.postman.com/
  • Queremos gerar um novo token, para isto copie e cole o link abaixo, substituindo ID Cliente, Cliente Secreto e o código salvo anteriormente na janela do seu navegador. Certifique-se que a configuração esteja POST.

https://www.strava.com/oauth/token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&code=CODE_SAVED_FROM_PREVIOUS&grant_type=authorization_code

image

  • Copie o novo código “refresh_token” que retornou.
  • Estamos prontos para o código de extração.


Estou 'stravagando' por aí, coletando dados e quebrando recordes!


Encarar uma maratona já não era desafiador o suficiente, precisava de um pouco de código para manter as coisas mais animadas. Utilizei o Visual Studio Code para desenvolver um script padrão para a API, na qual, exige o ID do Cliente, o Cliente Secreto e Token de atualização. Este último código, é o token que acabamos de obter via Postman.


image


Logo acima foi apresentado o código em Python, no qual faz o uso de:

  • requests’: Uma biblioteca que realiza solicitações HTTP para a API do Strava.
  • urllib3’: Uma biblioteca para desativar os avisos de certificados SSL.
  • pandas’: Uma biblioteca para transformar os dados da API em um dataframe e posteriormente armazenar em um arquivo .CSV.
  •  ‘dados’: Um arquivo importado com o intuito de facilitar a manutenção do script, este possui as chaves secretas.


O código também inclui a definição das URLs para obter o token de autenticação e as atividades do atleta. Durante o processo de autenticação, as chaves secretas foram fornecidas, solicitando acesso ás atividades por meio da API.


No entanto, o Strava implementa a técnica de paginação, tornando necessário a criação de um loop ‘while’, com o objetivo de captar todos os dados em todas as páginas.


Ao final da extração, os dados foram armazenados em um arquivo tipo .CSV. Podemos avançar para a fase da transformação e análises dos dados.


Análise de dados: Transformando os dados


Utilizando o aplicativo Microsoft Power BI Desktop iremos transformar os dados e posteriormente criar relatórios visuais permitindo a obtenção de insights. De acordo com EBAC, o Power BI é uma plataforma de análise de dados.


O programa está conquistando espaço nas empresas pois, se destaca pela sua simplicidade e por fornecer as ferramentas necessárias para gerar relatórios e dashboards que são visualmente criativos, imersivos e interativos.


image


O arquivo gerado pelo nosso coletor está pronto para ser importado, mas primeiro iremos ajustar algumas partes, transformando os dados conforme observamos na figura abaixo.


image


O que foi feito na transformação de dados:


  • Algumas colunas não serão interessantes para a nossa análise, sendo assim, estas foram excluídas.
  • Foi adicionada uma nova coluna chamada ‘id_SK’, esta coluna tem como objetivo ser o índice dos dados.
  • Foi observado que na coluna ‘elev_hig’ e ‘elev_low’ continham valores null. Estas colunas são responsáveis respectivamente por indicar a maior e a menor elevação do percurso. Foi observado que o valor total de elevação foi de 0, logo o maior e menor valor deve ser 0.


image


  • A coluna ‘average_cadence’ continha valores null. Substitui estes valores pela média dos treinos, levando em consideração a coluna ‘sport_type’.

image


  • As colunas relacionadas com os batimentos cardíacos ‘average_heartrate’ e ‘max_heartrate’ precisaram receber o tratamento de substituição de valores. Estes foram substituídos pelos valores médios e máximo.


image


  • Converti a coluna ‘distance’ que são em metros em Km.
  • Converti a coluna ‘moving_time’ e ‘elapsed_time’ em horas:minutos:segundos.
  • Converti as colunas ‘average_speed’ e ‘max_sped’ para Km/h.
  • Criei uma nova coluna de datas.

 

Análise de dados: Analisando os dados


Ao formatar os dados, estes estão prontos para começarmos a análise. Até agora, realizei analises mais simples apenas para o entendimento do problema, mas posteriormente pretende aprofundá-las, já que o tema é interessante e está em crescimento.


Neste primeiro relatório, dei uma olhada geral nas atividades. Foram 301 dias de treino, 441 treinos realizados, 6 comentários recebidos e 468 curtidas nos meus treinos. O gráfico de barras mostra registros dos anos de 2017, 2018, 2022 e 2023. Notei um aumento significativo a partir de novembro de 2022, quando retomei os treinos de forma regular.


image



No próximo relatório, destaca-se a atividade preferida e mais praticada: corrida.


image


E, por fim, mas não menos importante, apresentarei algumas métricas sobre as corridas, como a quilometragem total percorrida, o percurso mais longo e o mais curto. Já foram mais de 1.000 km percorridos, e dá para perceber que o ano de 2023 está acima da média.

image

image


Enfim, a área da análise de dados se revela ser abrangente, apresentando perspectivas que me encantam a cada resolução de problema utilizando suas técnicas. Com a sua multidisciplinaridade e com a ajuda da comunidade, conseguimos realizar grandes projetos e contribuir para um objetivo comum.


Vale também ressaltar que, analises como estas são iniciais para um mercado em constante expansão. Podemos observar o próprio Strava, este possui a versão PRO, na qual, oferece boas métricas de desempenho.


Concluindo, espero continuar este projeto e apresentar métricas mais complexas e articuladas. Obrigada a todos pelo tempo e sintam-se a vontade em dar sugestões.

 

 

 

 Referência: 

https://canaltech.com.br/apps/strava-o-que-e-como-usar/

https://ebaconline.com.br/blog/o-que-e-power-bi

 






Compartilhe
Comentários (2)
Idarlene Pinto
Idarlene Pinto - 13/12/2023 10:38

Fernando, obrigada pelas palavras. Comentário como o seu me faz perceber que estou trilhando o caminho certo! Acredite, isso significa muito para mim.

Fernando Araujo
Fernando Araujo - 12/12/2023 19:35

Ótimo artigo!

Bem prático e útil para você.

Aplicar os conhecimentos em um projeto prático de interesse é o melhor caminho para se aprender algo.

Parabéns!

Mereceu o prêmio recebido!

Já comecei a lhe seguir...