In the following example,
lla = eci2lla([-6.07 -1.28 0.66]*1e6,[2010 1 17 10 20 36])
lla = 1×3
1.0e+05 * 0.0001 -0.0008 -1.3940
How do you end up with a negative altitude?
The altitude should be approximately 312000 m.

4 个评论

Though it is not specified in the documentation of eci2lla about this, but I presume that the altitude is measured from sea-level.
Going under it would give a negative value.
The example should yield a positive altitude.
"The example should yield a positive altitude."
Why? Did you calculate the values by hand and compare?
Oops. I made an error on computing the vector normal. I used
sqrt(sum([-6.07 -1.28 0.66]*1e6).^2)
Instead of
sqrt(sum(([-6.07 -1.28 0.66]*1e6).^2))

请先登录,再进行评论。

 采纳的回答

lla = eci2lla([-6.07 -1.28 0.66]*1e6,[2010 1 17 10 20 36]);
lat = lla(1)
lat = 6.0574
lon = lla(2)
lon = -79.8476
So, this point is slightly above the Equator (by about 6 degrees)
dist = vecnorm([-6.07 -1.28 0.66]*1e6) % distance of this point from the center of the Earth
dist = 6.2385e+06
equatorialRadius = 6378e3;
dist - equatorialRadius
ans = -1.3950e+05
alt = lla(3)
alt = -1.3940e+05
So this point is beneath the surface of the Earth by about 140 kilometers (negative altitude).

2 个评论

Thank you! I messed up on computing the vector magnitude.
You are quite welcome.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Environmental Models 的更多信息

产品

版本

R2023b

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by