Код: Выделить всё
#Problem calculating distance to object in the sky
#worse when close to observer. Negligible if distance > 100 km
from astropy.time import Time
from astropy import units as u
from astropy.coordinates import EarthLocation, AltAz
obs_lon = 0*u.deg
obs_lat = 0*u.deg
obs_alt = 0*u.m
aircraft_lon = 0*u.deg
aircraft_lat = 0*u.deg
aircraft_alt = 1000*u.m
obs_time = Time ('2000-01-01T00:00:00.000')
obs_location = EarthLocation.from_geodetic (obs_lon,obs_lat, obs_alt)
aircraft_location = EarthLocation.from_geodetic(aircraft_lon, aircraft_lat, \
aircraft_alt)
aircraft_altaz = aircraft_location.get_gcrs(obstime=obs_time). \
transform_to(AltAz(location=obs_location, obstime=obs_time))
dist = ((aircraft_location.x - obs_location.x)**2 + \
(aircraft_location.y - obs_location.y)**2 + \
(aircraft_location.z - obs_location.z)**2)**0.5
print("distance calculated from xyz", dist) # this gives 1000 m, as expected
print("distance returned from AltAz", aircraft_altaz.distance) # 1189.4 m ?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ropy-altaz