5 votos

¿Cómo calcular la distancia en una esfera con un sistema de coordinación similar al de la Tierra?

Esta es probablemente una pregunta demasiado simple para este sitio, pero realmente apreciaría cualquier respuesta.

Digamos que tengo una esfera con radio $r = 70$ metros. Esta esfera tiene un sistema de referencia similar al de la Tierra en el que las coordenadas se dan como: (longitud, latitud). El sistema de coordenadas es exactamente igual al de la Tierra, así que los cero grados de latitud están en el "ecuador" de la esfera con $90$ grados siendo la cima o "Polo Norte" de la esfera, y $-90$ grados siendo el fondo o "Polo Sur" de la esfera. También tengo una línea vertical en la que los números positivos van al este y los negativos al oeste. En esta esfera tengo dos puntos con su ubicación, ambos representados en grados: $$ \begin {gather} (1, 1) \\ (3, 3) \end {gather} $$ Ambos puntos están dibujados en la imagen que he dibujado abajo. En esta imagen, también he dibujado algunas "líneas de ayuda".

enter image description here

Ahora necesito encontrar la longitud de $d$ (la distancia entre los dos puntos). Hasta ahora puedo calcular las variables $a$ y $b$ y sé que $D$ (la esquina opuesta a $d$ ) es de 90 grados.

Para calcular la distancia de $d$ Utilizo la ley esférica de los cosenos ( wiki aquí ): $$ \cos (d) = \cos (a) * \cos (b) + \sin (a) * \sin (b) * \cos (D) $$

Sin embargo, como estamos usando un sistema de referencia similar al de la Tierra, el rango de latitud es $[- \frac { \pi }{2}, \frac { \pi }{2}]$ en lugar de $[0, \pi ]$ y el rango de longitud es $[- \pi , \pi ]$ en lugar de $[0, 2 \pi ]$ . Leí que por lo tanto necesitamos traducir esta ley a lo siguiente: $$ \cos (d) = \sin (a) * \sin (b) + \cos (a) * \cos (b) * \cos (D) $$

Como la ley esférica del coseno necesita todas las variables en radianes pero nuestros puntos en la esfera están dados en grados, primero transformo los grados en radianes: $$ \begin {align} a &= (3 - 1) * \frac { \pi }{180} = 0.0349065850399 \\ b &= (3 - 1) * \frac { \pi }{180} = 0.0349065850399 \\ D &= 90 * \frac { \pi }{180} = 1.5707963267948966 \end {align} $$

Llenando esto en la fórmula obtengo lo siguiente: $$ \begin {gather} \cos (d) = \sin (a) * \sin (b) + \cos (a) * \cos (b) * \cos (D) = 0.00121797487009 \\ d \text { in radians} = 1.56957835162 \\ \text {distance in meters} = d * 70 = 109.870484614 \end {gather} $$

El código de la pitón con el que calculo esto se puede encontrar aquí: http://pastebin.com/U3qvXxRZ

La respuesta que obtengo aquí parece ser incorrecta. En primer lugar, una distancia de 109 metros entre dos puntos que están a sólo dos grados de distancia en una esfera con un diámetro de 140 metros me parece mucho. En segundo lugar, si acerco los puntos entre sí, la distancia en metros parece aumentar. En tercer lugar, encontré este pequeño trozo de código pitón ( aquí ), en el que parecen hacerlo de forma diferente. Simplemente toman la latitud del primer y segundo punto como las variables "a" y "b", en lugar de la diferencia entre las latitudes como "a".

Así que mi pregunta. ¿Qué estoy haciendo mal aquí? ¿Cuál es el error que cometo?

Simplifiqué la pregunta e inserté una imagen

2voto

CodingBytes Puntos 102

La ley esférica de los cosenos se trata de triángulos esféricos con longitudes laterales $a$ , $b$ , $c$ (medido a lo largo de arcos de grandes círculos) y ángulos $ \alpha $ , $ \beta $ , $ \gamma $ . Su $a$ en cualquier unidad que se mida, es no tal lado.

En lugar del triángulo de tu figura deberías considerar el triángulo esférico con vértices $A=( \phi_1 , \theta_1 )$ ( $(1^ \circ ,1^ \circ )$ en su ejemplo), $B=( \phi_2 , \theta_2 )$ ( $(3^ \circ ,3^ \circ )$ en su ejemplo), y el polo norte $D$ . Los lados $a$ y $b$ de este triángulo (que no son el $a$ , $b$ de los suyos) se encuentran en los meridianos, es decir, grandes círculos, y usted sabe su longitud, a saber $a={ \pi\over2 }- \theta_2 $ y $b={ \pi\over2 }- \theta_1 $ . Además, conoces el ángulo $ \delta = \phi_2 - \phi_1 $ en $D$ (este es el "verdadero" $a$ de los tuyos!). Estos datos son suficientes para calcular el lado $d$ mediante una de las leyes del coseno esférico. La fórmula en cuestión es $$ \cos d= \cos a\ \cos b+ \sin a\ \sin b\ \cos\delta\ .$$ Finalmente expresamos $a$ , $b$ y $ \delta $ por las cantidades dadas $ \phi_i $ , $ \theta_i $ : $$ \cos d= \sin\theta_1\ \sin\theta_2 + \cos\theta_1\ \cos\theta_2\ \cos ( \phi_2 - \phi_1 )\ .$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X