Necesito encontrar un algoritmo o método que pueda detectar los valores atípicos latitude
longitude
puntos de una trayectoria durante el posprocesamiento que puede ser fijada (devuelta a la trayectoria en función de sus vecinos).
Como ejemplo del tipo de puntos atípicos que me gustaría detectar y corregir, adjunto una imagen demostrativa:
He intentado utilizar un filtro de Kalman no perfeccionado para suavizar los datos lo mejor posible, pero esto no parece funcionar con suficiente eficacia para los valores atípicos más extremos (datos brutos en azul, datos suavizados en rojo):
Puede que mi UKF no esté bien calibrada (pero estoy bastante seguro de que lo está).
Las trayectorias son las de los caminantes, los corredores y los ciclistas, es decir, movimientos de tracción humana que pueden arrancar y detenerse, pero que no cambian drásticamente de velocidad o posición de forma tan rápida o repentina.
Una solución que no dependa de los datos de sincronización (y sólo de los datos de posición) sería extremadamente útil (ya que los datos que se procesan pueden no contener siempre datos de sincronización). Sin embargo, soy consciente de lo improbable que es la existencia de este tipo de solución, ¡así que estoy igualmente contento de tener cualquier solución!
Lo ideal sería que la solución detectara el valor atípico para poder fijarlo, lo que daría lugar a una trayectoria corregida:
Recursos que he buscado:
-
Smooth GPS data
- https://stackoverflow.com/questions/1134579/smooth-gps-data -
Common GPS and Geospatial Tracking Challenges and Solutions
- http://www.toptal.com/gis/adventures-in-gps-track-analytics-a-geospatial-primer (la solución parece perder la precisión de los datos) -
¿Qué algoritmo debo utilizar para eliminar los valores atípicos en los datos de rastreo?