Skip to content

Commit 4652d58

Browse files
Add more headings to satellite documentation
1 parent 64098fa commit 4652d58

1 file changed

Lines changed: 43 additions & 32 deletions

File tree

skyfield/documentation/earth-satellites.rst

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ you will probably want to learn more about its position at those times.
335335

336336
The simplest form in which you can generate a satellite position
337337
is to call its ``at()`` method,
338-
which will return an *x, y, z* position relative to the Earth’s center
338+
which will return an |xyz| position relative to the Earth’s center
339339
in the Geocentric Celestial Reference System.
340340
(GCRS coordinates are based on even more precise axes
341341
than those of the old J2000 system.)
@@ -352,51 +352,51 @@ than those of the old J2000 system.)
352352

353353
[-3918.87650458 -1887.64838745 5209.08801512]
354354

355-
Another approach is to ask which point on the Earth’s globe
356-
is directly beneath the satellite,
357-
using the :meth:`~skyfield.toposlib.Geoid.subpoint()` method
358-
of a standard geoid.
355+
Satellite longitude, latitude, and height
356+
-----------------------------------------
357+
358+
Once you have the geocentric satellite position computed above,
359+
you can ask for the satellite’s longitude and latitude
360+
by passing the position
361+
to the :meth:`~skyfield.toposlib.Geoid.subpoint()` method of a standard geoid.
359362

360363
.. testcode::
361364

362365
subpoint = wgs84.subpoint(geocentric)
363366
print('Latitude:', subpoint.latitude)
364367
print('Longitude:', subpoint.longitude)
365-
print('Elevation (m):', int(subpoint.elevation.m))
368+
print('Height: {:.1f} km'.format(subpoint.elevation.km))
366369

367370
.. testoutput::
368371

369372
Latitude: 50deg 14' 37.4"
370373
Longitude: -86deg 23' 23.3"
371-
Elevation (m): 420873
374+
Height: 420.9 km
375+
376+
Satellite altitude, azimuth, and height
377+
---------------------------------------
372378

373-
Finally, you might be most interested
379+
You might be most interested
374380
in whether the satellite is above or below the horizon
375-
from your own position as an observer.
376-
If you build an object to represent your latitude and longitude,
381+
from your own position as an observer,
382+
and in which direction to look for it.
383+
If you build an object to represent your latitude and longitude
384+
(as we did when we created the ``bluffton`` object above),
377385
you can use vector subtraction
378386
to ask “where will the satellite be *relative to* my location?”
379387

380388
.. testcode::
381389

382390
difference = satellite - bluffton
383-
print(difference)
384-
385-
.. testoutput::
386-
387-
Sum of 2 vectors:
388-
Reversed Geodetic WGS84 latitude +40.8939 N longitude -83.8917 E elevation 0.0 m -> 399 EARTH
389-
EarthSatellite 399 EARTH -> ISS (ZARYA) catalog #25544 epoch 2014-01-20 22:23:04 UTC
390391

391392
Every time you call this vector sum’s ``at()`` method,
392-
it will first compute the satellite’s position,
393+
it will compute the satellite’s position,
393394
then your own position,
394-
and finish by subtracting them.
395+
then subtract them.
395396
The result will be the position of the satellite relative
396397
to you as an observer.
397398
If you are interested you can access this relative position
398-
as *x, y, z* coordinates,
399-
just as you did for the position measured from the Earth’s center:
399+
as plain |xyz| coordinates:
400400

401401
.. testcode::
402402

@@ -408,33 +408,44 @@ just as you did for the position measured from the Earth’s center:
408408
[ 331.61901192 392.18492744 1049.7597825 ]
409409

410410
But the most popular approach is to ask the topocentric position
411-
for its altitude and azimuth coordinates,
412-
which tell you whether the satellite is above or below the horizon:
411+
for its altitude and azimuth.
412+
The altitude angle runs from 0° at the horizon
413+
to 90° directly overhead at the zenith.
414+
A negative altitude means the satellite is that many degrees below the horizon.
413415

414416
.. testcode::
415417

416-
alt, az, distance = topocentric.altaz()
418+
alt, az, height = topocentric.altaz()
417419

418420
if alt.degrees > 0:
419421
print('The ISS is above the horizon')
420422

421-
print(alt)
422-
print(az)
423-
print(int(distance.km), 'km')
423+
print('Altitude:', alt)
424+
print('Azimuth:', az)
425+
print('Height: {:.1f} km'.format(height.km))
424426

425427
.. testoutput::
426428

427429
The ISS is above the horizon
428-
16deg 16' 32.6"
429-
350deg 15' 20.4"
430-
1168 km
430+
Altitude: 16deg 16' 32.6"
431+
Azimuth: 350deg 15' 20.4"
432+
Height: 1168.7 km
433+
434+
The azimuth is measured clockwise around the horizon,
435+
just like the degrees shown on a compass,
436+
from geographic north (0°)
437+
through east (90°), south (180°), and west (270°)
438+
before returning to the north and rolling over from 359° back to 0°.
439+
440+
Satellite right ascension and declination
441+
-----------------------------------------
431442

432443
If you are interested
433444
in where among the stars the satellite will be positioned,
434445
then — as with any other Skyfield position object —
435-
you can also ask for a right ascension and declination,
446+
you can ask for its right ascension and declination,
436447
either relative to the fixed axes of the ICRF
437-
or else in dynamical coordinates of the date you specify.
448+
or else in the dynamical coordinate system of the date you specify.
438449

439450
.. testcode::
440451

0 commit comments

Comments
 (0)