Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

astropy を使って月の位置を調べる

astropy を使って、与えられた場所での与えられた時間での月の座標を調べる には、以下のようにすればよいようでござる。


#!/usr/pkg/bin/python3.9

#
# Time-stamp: <2022/07/03 11:24:41 (CST) daisuke>
#

# importing argparse module
import argparse

# importing astropy module
import astropy.units
import astropy.time
import astropy.coordinates

# units
unit_m = astropy.units.m

# constructing parser object
desc   = "finding position of the Moon"
parser = argparse.ArgumentParser (description=desc)

# adding arguments
parser.add_argument ('-l', '--longitude', default='+120d52m25s', \
                     help='longitude of observing site in format "+121d11m12s"')
parser.add_argument ('-b', '--latitude', default='+23d28m07s', \
                     help='latitude of observing site in format "+24d58m12s"')
parser.add_argument ('-a', '--altitude', type=float, default=2862.0, \
                     help='altitude above sea-level in metre')
parser.add_argument ('-t', '--datetime', default='2000-01-01T12:00:00.000', \
                     help='date/time in UT in "YYYY-MM-DDThh:mm:ss.sss" format')

# command-line argument analysis
args = parser.parse_args ()

# input parameters
site_lon     = args.longitude
site_lat     = args.latitude
site_alt     = args.altitude * unit_m
datetime_str = args.datetime

# printing input parameters
print ("#")
print ("# input parameters")
print ("#")
print ("#  Location:")
print ("#   longitude =", site_lon)
print ("#   latitude  =", site_lat)
print ("#   altitude  =", site_alt)
print ("#  Date/Time:")
print ("#   date/time (UT) =", datetime_str)

# location object
location = astropy.coordinates.EarthLocation.from_geodetic \
    (site_lon, site_lat, site_alt)

# time object
datetime = astropy.time.Time (datetime_str, scale='utc')

# using DE430
astropy.coordinates.solar_system_ephemeris.set ('de430')

# position of the Moon
moon = astropy.coordinates.get_body ('moon', datetime, location)
(moon_ra, moon_dec) = moon.to_string ('hmsdms').split ()

# conversion from equatorial into ecliptic
moon_ecliptic = moon.transform_to \
    (astropy.coordinates.GeocentricMeanEcliptic (obstime=datetime) )
moon_lambda = moon_ecliptic.lon
moon_beta   = moon_ecliptic.lat

# conversion from equatorial into horizontal
moon_altaz = moon.transform_to \
    (astropy.coordinates.AltAz (obstime=datetime, location=location) )
moon_alt = moon_altaz.alt
moon_az  = moon_altaz.az

# printing position of the Moon
print ("Moon:")
print ("  Equatorial: (RA, Dec)      = (%s, %s)" % (moon_ra, moon_dec) )
print ("  Ecliptic:   (lambda, beta) = (%s, %s)" % (moon_lambda, moon_beta) )
print ("  AltAz:      (Az, Alt)      = (%s, %s)" % (moon_az, moon_alt) )

実行してみると、以下のようになるでござる。


% ./astroplan_sample_08.py -h
usage: astroplan_sample_08.py [-h] [-l LONGITUDE] [-b LATITUDE] [-a ALTITUDE]
                              [-t DATETIME]

finding position of the Moon

optional arguments:
  -h, --help            show this help message and exit
  -l LONGITUDE, --longitude LONGITUDE
                        longitude of observing site in format "+121d11m12s"
  -b LATITUDE, --latitude LATITUDE
                        latitude of observing site in format "+24d58m12s"
  -a ALTITUDE, --altitude ALTITUDE
                        altitude above sea-level in metre
  -t DATETIME, --datetime DATETIME
                        date/time in UT in "YYYY-MM-DDThh:mm:ss.sss" format

% ./astroplan_sample_08.py -t 2022-07-03T12:00:00
#
# input parameters
#
#  Location:
#   longitude = +120d52m25s
#   latitude  = +23d28m07s
#   altitude  = 2862.0 m
#  Date/Time:
#   date/time (UT) = 2022-07-03T12:00:00
Moon:
  Equatorial: (RA, Dec)      = (10h10m14.3467305s, +16d08m05.88009171s)
  Ecliptic:   (lambda, beta) = (149d25m25.93907872s, 5d03m08.39617037s)
  AltAz:      (Az, Alt)      = (277d32m34.21267336s, 24d44m52.48131149s)

参考文献



Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.