Me dan la longitud de un satélite geoestacionario y un vector apuntador del satélite en forma de ángulos de azimut y elevación mirando desde el satélite hacia la tierra (donde el azimut cero y la elevación es la dirección desde el satélite hasta el punto del subsatélite y donde el acimut es positivo al este de esa dirección, la elevación es positiva al norte de esa dirección). ¿Existe una forma generalmente aceptada de calcular la latitud y la longitud de la ubicación donde el vector apuntando golpea una tierra con forma WGS 84?
nota: creo que las coordenadas terrestres deben escribirse con mayúsculas pero las citas de la otra respuesta usan minúsculas . Teniendo en cuenta que el término radical apenas encaja con las letras pequeñas, he mantenido las minúsculas en la mayoría de los lugares. Para esta respuesta, las mayúsculas y minúsculas representan las mismas coordenadas.
tl; dr: conecte la posición de su satélite ( )
Luego use la solución analítica en la segunda sección a continuación, o una de las soluciones iterativas a las que se hace referencia allí para convertirlas a latitud y longitud.
De esta práctica respuesta en GIS SE:
El elipsoide de referencia WGS84 es un elipsoide biaxial (y achatado). Es más corto en los polos que el ecuador, y el ecuador es un círculo.
La ecuación para ello es:
dónde es un punto en la superficie del elipsoide, y
dónde es el semieje mayor (6.378.137 metros) y es el semieje menor del elipsoide WGS84 (6.356.752,3142 metros).
Continuaré usando las matemáticas de esta respuesta y formatearé en MathJax y Python posterior:
La posición de su satélite es y la dirección normal es . La longitud del vector desde el satélite hasta la primera y más cercana intersección (asumiendo, por supuesto, que su satélite está fuera de la Tierra ):
t = -(1/(b^2 (u^2 + v^2) + a^2 w^2)) * (b^2 (u x + v y) + a^2 w z + 1/2 Sqrt[
4 (b^2 (u x + v y) + a^2 w z)^2 -
4 (b^2 (u^2 + v^2) + a^2 w^2) (b^2 (-a^2 + x^2 + y^2) + a^2 z^2)])
En MathJax:
que es más fácil de leer que la forma en que MathJax lo muestra todo en una sola línea:
Implementado en Python:
import numpy as np
a, b = 0.9, 1.1
asq, bsq = a**2, b**2
x, y, z = 5.0, 0.0, 0.0
u, v, w = -np.sqrt(1 - 0.1**2 - 0.1**2), 0.1, 0.1
xsq, ysq, zsq = x**2, y**2, z**2
usq, vsq, wsq = u**2, v**2, w**2
A = -(1/(bsq*(usq + vsq) + asq*wsq))
B = bsq*(u*x + v*y) + asq*w*z
C = 0.5*np.sqrt(4*(bsq*(u*x + v*y) + asq*w*z)**2 -
4*(bsq*(usq + vsq) + asq*wsq) *
(bsq*(-asq + xsq + ysq) + asq*zsq))
t = A * (B + C)
print "t: ", t
xyz, uvw = np.array([x, y, z]), np.array([u, v, w])
xyzi = xyz + t*uvw
xi, yi, zi = xyzi
print "point of intersection: ", xyzi
print "check, is it zero within roundoff? ", xi**2/asq + yi**2/asq + zi**2/bsq - 1
cede:
t: 4.33961998769
point of intersection: [ 0.70399539 0.433962 0.433962 ]
check, is it zero? -8.54871728961e-15
De hecho, la solución cae en el elipsoide.
Necesitamos invertir las ecuaciones (que se muestran en esta respuesta ) para obtener la latitud y la longitud en el elipsoide WSG84 correspondiente a estas coordenadas.
Según [Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates][1] de Wikipedia
Las coordenadas cartesianas 3D en coordenadas centradas en la Tierra y fijas en la Tierra asumiendo una forma elipsoidal viene dada por:
dónde son latitud, longitud y altitud, y son los radios ecuatorial y polar del elipsoide utilizado, y
La inversión se trata en Transformaciones de Datum de Posiciones GPS; Nota de aplicación que se encuentra en esta pregunta GIS , así como en este enlace en los comentarios.
De la nota de aplicación mostraré la solución analítica .
Definiciones:
Resolver para la longitud es trivial. La nota de aplicación da:
sin embargo, en la práctica, no puede usar arctan a ciegas porque no puede distinguir los cuatro cuadrantes. Así que en su lugar usa
Resolviendo analíticamente para la latitud, la nota de aplicación da
dónde
Nuevamente, probablemente deberías usar en lugar de cuidar los cuadrantes.
También puede encontrar soluciones iterativas en esta referencia y en la otra (ya mencionada anteriormente). Las soluciones iterativas probablemente fueron significativamente más rápidas en el pasado (y podrían serlo también ahora), lo que sería importante si estuviera haciendo un trazado de rayos para millones de puntos, por ejemplo, generando una imagen de la superficie de la Tierra desde el punto de vista de los satélites con una precisa representación.
usuario20636
UH oh
@
.