Javier G. Sogo

Javier G. Sogo

Software developer

May the forc++ be with you

Trilateración con error

August 25, 2015
optimization
multivariate

This article is a draft. At some point in time I expect to continue working on it. Meanwhile, you can find here some ideas, annotations and a schema of the future article.

Durante la realización del proyecto RENFE tuve que geolocalizar algunas estaciones utilizando información inderecta obtenida a través de los horarios de circulación de los trenes. El objetivo era calcular la zona donde la probabilidad de encontrar una estación era máxima según las distancias recorridas por los trenes que paran en ella desde otras estaciones cuya posición si era conocida.

Las fuentes de error eran diversas:

  • La posición de las estaciones conocidas: a pesar de que las coordenadas GPS son un dato exacto, éste puede no corresponderse con el punto donde el tren efectúa la parada.
  • La velocidad de los trenes entre las estaciones: conocemos las prestaciones del tren (velocidad máxima), pero no el perfil de velocidades de la línea ni las curvas de aceleración y frenada.
  • La distancia real recorrida: las distancias las estimamos en línea recta, sin considerar las curvas de la infraestructura real.

Plantear el problema como trilateración con error parece una opción interesante que además quería explorar.

Los datos

La entrada de cada problema consistía, por tanto, en un vector de características como el siguiente:

[
    {'latitude': x.xxx, 'longitude': x.xxxx, 'meters': [x.xx, xx.xx, ...]},
    {'latitude': x.xxx, 'longitude': x.xxxx, 'meters': [x.xx, xx.xx, ...]},
    ...
]

es decir, datos de latitud y longitud acompañados de distancias en metros hasta la estación objetivo. En un mundo ideal todas esas medidas de distancia deberían ser la misma, pero la realidad no es tan benigna.

Distancias: Distribución de probabilidad

El primer paso que realizo es calcular la distribución de probabilidad normal que sirve para estas distancias.