4.1 Preparação de dados
4.1.1 Pré-processamento dos pontos dos percursos
Capítulo 4
Detalhes da solução
O presente capítulo descreve detalhes do trabalho realizado como a preparação de da-dos, desenvolvimento dedashboards, avaliação dos resultados, e implementação, corres-pondente às quatro últimas fases da metodologia CRISP-DM. O desenvolvimento deste processo foi o mais intensivo e demorado, pois a qualidade dos dados após este processa-mento é um fator determinante da qualidade da tomada de decisão.
jardim este primeiroscriptdeu início à criação da tabela de factos bem como à limpeza de dados incoerentes através donoise filtering.
Começou-se por estabelecer uma conexão à BD, na data staging areamais precisa-mente, consultar a vistaSTG Pontos dos Percursos dos Utilizadores. Na queryutilizada para obter os dados, referindo que os mesmos foram ordenados pela “Chave do Utili-zador”, “Data do Percurso do UtiliUtili-zador”, “Data do Ponto do Percurso do Utilizador”
respetivamente, para obter uma lista ordenada alfabeticamente por utilizador com a data e hora também ordenada para depois ser possível calcular o tempo entre pontos consecu-tivos de cada percurso.
Antes da realização do pré-processamento, ao projetar os pontos das coordenadas num mapa, reparou-se que alguns desses pontos estavam localizados no continente africano.
Após analisar os dados das colunas respetivas às coordenadas, verificou-se que na versão iOS da app JBT os valores da latitude e longitude estavam trocados. Para resolver este problema, quando for encontrado um valor menor ou igual a –8, na coluna latitude, esse mesmo valor é trocado com o da coluna da longitude, ficando assim os valores nas colunas certas.
De seguida foram criadas seis colunas auxiliares, para permitir saber saber quando começa e acaba a visita do utilizador ao jardim ou quando começa e acaba um percurso e calcular as medidas mencionadas no início desta sub-secção.
As novas colunas auxiliares são uma cópia das coluna originais, com o pormenor de começar na segunda linha da coluna original. Ao criar as colunas auxiliares pela segunda linha das colunas originais correspondentes, para cada coluna auxiliar ficar com o mesmo número de linhas que as restantes colunas na tabelaSTG Pontos dos Percursos dos Utili-zadoreso último valor de cada coluna auxiliar irá ficar como NaN, e para atribuir um valor a esse NaN, o mesmo irá ser substituído pelo último valor de cada coluna original.Com a criação destas novas colunas, é agora possível fazer comparações, para tratar de cada visitante individualmente e obter os resultados corretos.
Tendo as colunas auxiliares criadas, agora, é possível determinar quando acaba o tra-jeto de um visitante e começa o tratra-jeto de um outro visitante. Para tal basta comparar os valores das colunasChave do Utilizador eChave do Utilizador AUX e caso os valo-res sejam iguais, significa que ainda estamos a trabalhar sobre o mesmo visitante, caso o valor seja diferente, o próximo valor da colunaChave do Utilizadorserá o de um novo uti-lizador. O mesmo método é aplicado quando queremos saber quando começa e acaba um percurso e se é no mesmo dia ou não, dos diferentes utilizadores, ao comparar as colunas Nome do Percurso do Utilizador, Nome do Percurso do Utilizador AUX, Data do Percurso do UtilizadoreData do Percurso do Utilizador AUXrespetivamente.
Conseguindo identificar diferentes utilizadores através das comparações anteriores, é possível criar três novas colunas auxiliares de forma a determinar a latitude e longitude do ponto seguinte bem como o data desse mesmo ponto.
Capítulo 4. Detalhes da solução 35 Tendo as colunas todas necessárias, para o cálculo do tempo demorado entre dois pontos, tendo o tempo do ponto seguinte, basta calcular a diferença entre a data do ponto inicial e a do seguinte, e assim sucessivamente para os seguinte pontos. Foi calculado o tempo em minutos, mas foi também calculada a diferença em segundos para o cálculo da velocidade e aceleração.
Para calcular o tempo acumulado de cada visita, de cada visitante, criou-se uma nova coluna, Tempo entre Pontos em Segundos, onde foi utilizada a função cumsum(), agrupando estes valores para cada visitante; ou seja, quando existe mudança de visitante, a soma acumulada começa de novo. Para calcular o tempo acumulado de cada percurso, de cada visitante, o processo é igual ao anterior, com a diferença de em vez de agrupar apenas por visitante, é necessário também agrupar peloNome do Percurso do Utilizador.
Para calcular a distância entre dois pontos de GPS, foi utilizada a equação de Haver-sine [26], que calcula a distância do grande círculo entre dois pontos na Terra, em graus decimais. Para tal, são necessárias as coordenadas do ponto inicial e as do ponto seguinte, agora encontradas nas colunas auxiliares criadas. De seguida, é criada uma lista vazia, onde serão inseridos os valores da distância, através de um ciclo que percorre cada linha, das colunas das coordenadas, realizando o cálculo da distância.
No cálculo da velocidade média até ao ponto seguinte, para evitar dividir valores por zero, caso a distãncia e/ou tempo sejam zero, é atribuída uma velocidade de zero;
caso contrário, o valor é calculado através da fórmula da velocidade (distância percor-rida/tempo). O mesmo acontece com o cálculo da aceleração, aplicando aqui a respetiva fórmula (variação da velocidade/tempo).
Concluídos todos os cálculos necessários e não precisando mais das colunas auxilia-res, estas são apagadas da tabelaSTG Pontos dos Percursos dos Utilizadores.
Devido a alguns erros de GPS, foram detetados alguns valores de velocidade que não correspondem a um ritmo de passeio por um ser humano. Para evitar estes valores (cerca de 6Km/h) incorretos, os dados foram filtrados para uma velocidade máxima de 1,7m/s, por se considerar uma velocidade limite de um ritmo de passeio. Deste modo todos os valores acima do valor escolhido são eliminados, ficando apenas com dados mais plausíveis.
Para finalizar, foi ainda derivada informação relativamente ao dia da semana e hora do dia das colunas Data do Percurso do Utilizador e Data do Ponto do Percurso do Utilizadorbem como da parte do dia (manhã ou tarde), a partir da hora que foi extraída anteriormente.
Os dados resultantes deste processamento são guardados num ficheiro .CSV (valores separados por vírgulas) com os atributos apresentados na Tabela 4.1 e com um resumo da atividade representado na Figura 4.1.
Tabela 4.1: Resultado do processamento da tabelaSTG Pontos dos Percursos dos Utiliza-dores
Atributo Exemplo
Chave do Utilizador ABRTYUR1650733232857
Nome do Percurso do Utilizador Árvores a não perder Data do Percurso do Utilizador 2022-04-23 17:01:45+00:00 Data do Ponto do Percurso do Utilizador 2022-04-23 17:03:03+00:00 Latitude do Ponto do Percurso do Utilizador 38.700015
Longitude do Ponto do Percurso do Utilizador -9.201631
Minutos entre Pontos 0.250
Minutos Acumulados Desde o Início da Visita do Utilizador
0.417 Minutos Acumulados Desde o Início do Percurso
do Utilizador
0.583
Metros entre Pontos 5.6
Velocidade Média entre Pontos (m/s) 0.37 Aceleração Média ente Pontos (m/s2) 0.0249
Chave do Percurso do Utilizador ABRTYUR1650733232857::Árvores a não perder::2022-04-23 17:03:03+00:00
Dia da Semana da Data do Percurso do Utilizador Saturday Dia da Semana da Data do Ponto do Percurso do
Utilizado
Saturday Hora da Data do Percurso do Utilizador 17 Hora da Data do Ponto do Percurso do Utilizador 18 Parte do Dia da Data do Percurso do Utilizador Tarde