Eu tenho locais GPS brutos para uma pista e preciso obter a velocidade máxima. Métodos simples (calcular a velocidade entre 2 pontos, levar no máximo) fornecerão números grandes sem sentido devido à imprecisão do GPS, o ponto está saltando. Você pode sugerir um bom algoritmo pronto para resolver isso?
gps
movement-data
JaakL
fonte
fonte
Respostas:
Para ganhar velocidade, você deve ter tempo, é claro. Assim, você pode ordenar seus pontos por hora em uma planilha como moda, com colunas {Time, X, Y}, aumentando o tempo.
Aqui está um exemplo em que a unidade GPS quase completou um circuito no sentido anti-horário:
Esses pontos não foram obtidos em intervalos iguais de tempo. Portanto , é impossível apenas do mapa estimar as velocidades. (Para ajudar você a visualizar essa viagem, lembrei-me de coletar os valores dos gps em intervalos quase iguais, para que você possa ver que a viagem começou rapidamente e diminuiu em dois pontos intermediários e no final.)
Como você está interessado em velocidade, calcule as distâncias entre linhas sucessivas e as diferenças de horário. Dividir distâncias por diferenças de tempo fornece estimativas instantâneas de velocidade. É tudo o que há para isso. Vejamos um gráfico dessas estimativas versus o tempo:
Os pontos vermelhos traçam as velocidades, enquanto a curva cinza é suave, apenas para guiar o olho. O tempo da velocidade máxima e a velocidade máxima propriamente dita são claros na plotagem e são facilmente obtidos a partir dos dados até o momento, se você estiver usando uma planilha ou funções simples de resumo de dados em um GIS. No entanto, essas estimativas de velocidade são suspeitas porque os pontos de GPS claramente apresentam algum erro de medição.
Uma maneira de lidar com o erro de medição é acumular as distâncias entre vários períodos e usá-las para estimar os tempos. Por exemplo, se os dados {Diferença horária, Distância} calculados anteriormente forem
os tempos decorridos e as distâncias totais em dois períodos são obtidos adicionando cada par de linhas sucessivas:
Recompute as velocidades para os tempos e distâncias acumulados.
Pode-se realizar esse cálculo por qualquer número de períodos, obtendo parcelas cada vez mais suaves e confiáveis, com o custo de calcular a velocidade estimada em períodos mais longos. Aqui estão gráficos dos mesmos dados calculados por 3 e 5 períodos, respectivamente:
Observe como a velocidade máxima diminui com a quantidade de suavização. Isso sempre vai acontecer. Não existe uma resposta correta única: o quanto você suaviza depende da variabilidade nas medições e de quais períodos de tempo você deseja estimar as velocidades. Neste exemplo, você pode relatar uma velocidade máxima tão alta quanto 2,5 (com base em sucessivos pontos de GPS), mas seria algo pouco confiável devido aos erros nos locais de GPS. Você pode relatar uma velocidade máxima tão baixa quanto 2,1 com base no bom período de cinco períodos.
Este é um método simples, mas não necessariamente o melhor. Se decompormos o erro de localização do GPS em um componente ao longo do caminho e outro componente perpendicular ao caminho, veremos que os componentes ao longo do caminho não afetam as estimativas da distância total percorrida (desde que o caminho seja suficientemente bem amostrado: ou seja, você não "corte cantos"). Os componentes perpendiculares ao caminho aumentamas distâncias aparentes. Isso potencialmente influencia a estimativa para cima. No entanto, quando a distância típica entre as leituras do GPS é grande em comparação com o erro típico de distância, o desvio é pequeno e provavelmente é compensado pelos pequenos movimentos no caminho que não são capturados pela sequência do GPS (ou seja, algum corte de canto é sempre feito). Portanto, provavelmente não vale a pena desenvolver um estimador mais sofisticado para lidar com esses vieses inerentes, a menos que a frequência de amostragem do GPS seja muito baixa em comparação com a frequência com que o caminho "mexe" ou o erro de medição do GPS é grande.
Para o registro, podemos mostrar o resultado correto e verdadeiro , porque estes são dados simulados:
A comparação com as plotagens anteriores mostra que , nesse caso em particular, o máximo das velocidades brutas superestimou o máximo verdadeiro, enquanto o máximo das velocidades de cinco períodos era muito baixo.
Em geral, quando os pontos de GPS são coletados com alta frequência, a velocidade bruta máxima provavelmente será muito alta: tende a superestimar o máximo verdadeiro. Dizer mais do que isso em qualquer instância prática exigiria uma análise estatística mais completa da natureza e tamanho dos erros do GPS, da frequência de coleta do GPS e da tortuosidade do caminho subjacente.
fonte
Este não é um script ou algoritmo pronto. O que fiz na imagem abaixo mostrando a velocidade média (em km / h):
r.neighbors
para obter a velocidade média de uma janela raster especificada.fonte
r.neighbors
, eu recebo a velocidade média.Como seus dados de GPS são imprecisos, você só poderá estimar a velocidade máxima.
Você pode tentar calculá-lo calculando a velocidade não em segmentos, mas em polilinhas (velocidade média), para minimizar o efeito de imprecisões.
Você já tentou limpar seus dados primeiro (Douglas-Peucker, por exemplo) para manter apenas os pontos mais relevantes?
fonte