Monthly ArchiveNovember 2007
spanish & technology Franchu on 16 Nov 2007
GIS: Cálculo de distancias sobre la Tierra
Este post es una traducción de un fragmento de la página http://www.faqs.org/faqs/geography/infosystems-faq/.
¿Cuál es la mejor forma de calcular la distancia entre dos puntos sobre un gran circulo (ignorando las diferencias de elevación)?
(Repuesta preparada por Robert G. Chamberlain de Caltech (JPL): rgc@solstice.jpl.nasa.gov y revisada en el grupo de discusión comp.infosystems.gis en Octubre de 1996).
Si la distancia es menor de 20 Km y las coordenadas cartesianas de los puntos son X1,Y1 y X2,Y2 entonces se puede aplicar el teorema de Pitágoras:
d = sqrt((X2 - X1)^2 + (Y2 - Y1)^2)
con un error que será de:
- menos de 30 metros para latitudes inferiores a 70 grados.
- menos de 20 metros para latitutes inferiores a 50 grados.
- menos de 9 metros para latitudes inferiores a 30 grados.
Estos errores tienen en cuenta los efectos de convergencia de los meridianos y la curvatura de los paralelos y la distancia en tierra plana d vendrá expresada en las mismas unidades que las coordenadas.
Si las coordenadas no están ya en un sistema de referencia cartesiano, el coste computacional de pasar de coordenadas esféricas a cartesianas y utilizar posteriormente el modelo de tierra plana puede exceder el coste computacional de usar el modelo esférico más preciso.
Si tomamos la Tierra como una esfera de radio R y las coordenadas de dos puntos en esféricas (longitud y latitud) como lat1, lon1 y lat2, lon2; tenemos la fórmula de Haversine (R.W. Sinnott, “Virtues of the Haversine”, Sky and Telescope, vol. 68, no. 2, 1984, p. 159):
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin^2(dlat/2) + cos(lat1) * cos(lat2) * sin^2(dlon/2)
c = 2 * arcsin(min(1,sqrt(a)))
d = R * c
que proporciona resultados matemáticamente y computacionalmente exactos. El resultado intermedio c es la distancia sobre el gran círculo en radianes. La distancia sobre el gran círculo d estará en las mismas unidades que R.
La aplicación del mínimo protege de posibles errores de redondeo que podrían sabotear la computación del arco seno si los dos puntos son antipodales (en lados opuestos de la Tierra. Por ejemplo, las antípodas de España quedan por Nueva Zelanda). Bajo estas condiciones, la fórmula de Haversine tiene condiciones adversas, pero el error que puede ser de hasta 2 Km está en el contexto de una distancia de cerca de 20000 Km (cuatro ordenes de magnitud de diferencia).
El problema de determinar la distancia sobre el gran círculo en una esfera ha estado presente durante cientos de años, de la misma forma que la solución de la ley de los cosenos (que se muestra más adelante pero no está recomendada) y la fórmula de Haversine.
La aproximación pitagórica de tierra plana asume que los meridianos son paralelos y que los paralelos son indistinguibles de grandes círculos y que los grandes círculos son indistinguibles de líneas rectas. Sin embargo, cerca de los polos, los paralelos son, no solo, mucho más cortos que los grandes círculos, sino también significativamente curvos. Teniendo esto en cuenta nos lleva a usar coordenadas polares y la ley de los cosenos en el plano para calcular distancias cortas cerca de los polos:
Fórmula en coordenadas polares para el modelo de tierra plana
a = pi/2 - lat1
b = pi/2 - lat2
c = sqrt(a^2 + b^2 - 2 * a * b * cos(lon2 - lon1)
d = R * c
Esta nueva fórmula proporciona errores máximos más pequeños que la aproximación pitagórica para latitudes elevadas y grandes distancias. Los errores máximos en este caso también dependen del azimut (el gran cículo pasa por puntos más cercanos al polo). Por ejemplo se tiene el mismo error a 80 grados de latitud cuando la separación es de 33 Km, que a 82 grados de latitud cuando la distancia es de 18 Km e incluso a 84 grados de latitud cuando la distancia es de 9 Km. Sin embargo, los resultados son mejores que en la aproximacion pitagórica puesto que a 88 grados de latitud y con una distancia de 20 Km, el error pueder de hasta 20 metros.
Una forma no fiable de calcular la distancia en un modelo de Tierra esférica es el siguiente:
Ley de los Cosenos para Trigonometría esférica
No recomendada!!!
a = sin(lat1) * sin(lat2)
b = cos(lat1) * cos(lat2) * cos(lon2 - lon1)
c = arccos(a + b)
d = R * c
Aunque esta fórmula es matemáticamente exacta, es poco fiable para pequeñas distancias porque el arco coseno presenta un mal comportamiento para nuestros propositos cerca del origen. Esto se puede ver en la pequeña tabla que se muestra a continuación,
cos (5 degrees) = 0.996194698
cos (1 degree) = 0.999847695
cos (1 minute) = 0.9999999577
cos (1 second) = 0.9999999999882
cos (0.05 sec) = 0.999999999999971
Realizando las operaciones con 7 cifras significativas no es posible diferenciar cosenos de distancias más pequeñas que un minuto de arco. Se puede hacer al igual que antes min(1,(a+b)) sustituya al (a+b) como argumento de la función arco coseno, pero esto no haría más que proporcionar resultados bonitos eliminando la resolución en el origen.
science & spanish & technology Franchu on 12 Nov 2007
YES2 - Funcionó!
Hace un tiempo escribí sobre un proyecto de un satélite en el que estuve involucrado hace tiempo.
En el lanzamiento todo funcionó perfectamente y durante los días siguientes se dedicó bastante tiempo a entender los parámetros orbitales y de funcionamiento de todos los sistemas, para poder preparar el resto de la misión.
Cuando comenzó la misión los primeros datos de telemetría indicaban que todo funcionaba correctamente y las actualizaciones en el blog oficial del proyecto nos iban manteniendo al día del progreso del experimento. Por desgracia, se perdió la comunicación con el satélite en la última fase de la misión y no se recibió nada en la estación de tierra dispuesta para el seguimiento de la cápsula de reentrada.
El NORAD estuvo intentando localizar la cápsula de reentrada por si hubiese permanecido en órbita debido a un despliegue insuficiente del cable, pero la búsqueda no aportó nuevas pistas sobre el paradero de la cápsula de reentrada.
Tras muchas horas de análisis de datos, se ha podido reconstruir lo que ocurrió en el espacio durante la misión lo que nos lleva a declarar la misión como un éxito!
Podeis leer los detalles en el análisis de lo ocurrido. Siempre nos quedará la satisfacción de saber que conseguimos desplegar una estructura de más de 30 kilómetros en el espacio.
Parafraseando a Neil Amstrong… It’s one small step for man, but a giant leap for students