Skip to content

seap-udea/MontuPython

Repository files navigation

Montu Python /mnṯw ꜥꜣpp(y)/

Astronomical ephemerides for the ancient world

version downloads

Logo

MontuPython (transileterated mnṯw ꜥꜣpp(y)) is a Python package intended to compute astronomical ephemerides in the ancient world, thousands of years before present. It was initially designed to compute ephemerides for the ancient Egypt, but it can also be used to study astronomical phenomena in other sites of interest for cultural astronomy (archeoastronomy).

Download and install

Describe here how the package can be downloaded and install it in different arquitectures.

If you are using PyPI installation it's as simple as:

# Uncomment if you are in Google Colab
# !pip install -q montu

Preparation

NOTE: This notebook is autogenerated with Jupyter. Some of the commands you will find here are only intended to make the README executable. In no sense are mandatory when using MontuPython.

import matplotlib.pyplot as plt
plt.ioff()
!mkdir -p gallery

Quickstart

This README is at the same time an executable notebook. A runable version of the README can be find in the Google Drive Repo of the package as the file README.ipynb

In this section you should provide the most simple instructions to use your package.

You may import the package using:

from montu import *
Running MontuPython version 0.9.4

or for a safe import:

import montu

# Use this for generating the README 
plt.ioff()
%load_ext autoreload
%autoreload 2

It is important that before using the most interesting commands of the package, load relevant data:

# Useful aliases
from montu import D2H, PRINTDF, TABLEDF
# Load stars
allstars = montu.Stars()

Two very basic codes that do something non-trivial albeit simple calculations in MontuPython are:

  1. Compute the position of mars at a given time and while observing from a given site on Earth:
mtime = montu.Time('-2500-01-01 12:00:00.00')
tebas = montu.Observer(lon=33,lat=24)
mars = montu.Planet('Mars')
mars.conditions_in_sky(at=mtime,observer=tebas)
mars
Object Mars positions:
|            tt |    jed | Name   |   RAJ2000 |   DecJ2000 |   RAEpoch |   DecEpoch |   RAGeo |   DecGeo |       el |      az |
|---------------|--------|--------|-----------|------------|-----------|------------|---------|----------|----------|---------|
| -142006202700 | 807954 | Mars   |    12.531 |    1.62045 |   8.53603 |    24.1114 | 8.53601 |  24.1141 | -41.6385 | 6.18997 |'
Object Mars conditions:
|            tt |    jed | Name   |      ha |   Vmag |   rise_time |   rise_az |   set_time |   set_az |   transit_time |   transit_el |   elongation |   earth_distance |   sun_distance | is_circumpolar   | is_neverup   |   angsize |   phase |    hlat |    hlon |   hlong |
|---------------|--------|--------|---------|--------|-------------|-----------|------------|----------|----------------|--------------|--------------|------------------|----------------|------------------|--------------|-----------|---------|---------|---------|---------|
| -142006202700 | 807954 | Mars   | 12.3377 |  -1.13 |      807954 |   63.1349 |     807954 |  296.821 |         807954 |      89.8414 |     -157.818 |         0.660488 |        1.62611 | False            | False        |   14.1713 | 98.6462 | 1.88842 | 111.259 | 111.259 |'
  1. Obtain the information about a star from the stellar catalogue and, as in the case of the planet, obtain the position of the star in the sky.
mtime = montu.Time('-2500-01-01 12:00:00.00')
tebas = montu.Observer(lon=33,lat=24,height=0)
aldebaran = allstars.get_stars(ProperName='Aldebaran')
aldebaran.where_in_sky(at=mtime,observer=tebas,inplace=True)
aldebaran
1 star(s):
|    |   MN |    HD |   HR |   HIP | Gl        | Name      | OtherDesignations                                                                     | ProperName   | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |   VXJ2000 |   VYJ2000 |   VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |           tt |    jed |   RAJ2000t |   DecJ2000t |   RAEpoch |   DecEpoch |      HA |      az |      el |     zen |
|----|------|-------|------|-------|-----------|-----------|---------------------------------------------------------------------------------------|--------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|-----------|-----------|-----------|-----------|--------------|--------------|--------------|--------------|--------|------------|-------------|-----------|------------|---------|---------|---------|---------|
| 14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran    | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |       163.23 |  7.02722 |  18.2876 |  5.80666 | -2.14e-06 | 5.709e-05 | 1.528e-05 |     21368 | Gl 171.1     |            1 |            1 | -1.42006e+11 | 807954 |    4.59345 |      16.746 |  0.610393 |   -2.25214 | 20.2633 | 107.596 | 29.5909 | 60.4091 |

Working with time

One of the most interesting and basic functionalities of MontuPython is to convert date among different type of calendars and astronomical scales. You may taste these functionalities using:

mtime = montu.Time('bce2501-01-01 12:00:00')

other alternative formats for the same date are:

mtime = montu.Time('2501 b.c.e. 01-01 12:00:00')
mtime = montu.Time('-2500-01-01 12:00:00')

If you print this time object you will get:

print(mtime)
Montu Time Object:
-------------------------- 
Readable:
    Date in proleptic UTC: -2500-01-01 12:00:00.0000
    Date in mixed UTC: -2500-01-22 12:00:00
    Date in SPICE format: 2501 B.C. 01-01 12:00:00.00
    Date in caniucular format: hrw 280-I-Shemu-17
    Components: [-1, 2500, 1, 1, 12, 0, 0, 0]
Objects:
    Date in datetime64 format: -2500-01-01T12:00:00.000000
    Date in PyPlanet Epoch: 807954.0
    Date in PyEphem Epoch: -2501/1/22 12:00:00
General:
    Is bce: True
    Is Julian: True
Uniform scales:
    Terrestrial time:
        tt: -142006202700.3
        jtd: 807954.6909688
        htd: 102457.19096879999
    UTC time:
        et: -142006262400.0
        jed: 807954.0
        hed: 102456.5
    Delta-t = TT - UTC = 59699.7

Notice that the date in Gregorian proleptic will be bce 2501-01-01 but in the mixed calendar that uses Julian calendar before its adoption at 1582-10-04, will be bce 2501-01-22.

Egyptian civil calendar

In the previous output you may also notice that the class montu.Time automatically convert the gregorian/julian date into the civil egyptian calendar or the caniucular calendar. In the previous example, the date bce 2501-01-22 (julian) correspond to the civil egyptian date of I-Shemu-17. Since the years in the caniucular calendar were regularly referred to specific king's reigns, we have introduced in MontuPython the so-called Horus years (abreviated hrw). The zero Horus year is bce 2782 which corresponds to the first apokatastasis, namely the year when the day I-Akhet-1 coincide with the heliacal rise of Sirius.

You may also provide a date in the caniucular calendar and obtain the corresponding julian date:

mtime = montu.Time('hrw 1461-I-Akhet-1',calendar='caniucular')
print(mtime)
Montu Time Object:
-------------------------- 
Readable:
    Date in proleptic UTC: -1321-07-08 00:00:00.0000
    Date in mixed UTC: -1321-07-20 00:00:00
    Date in SPICE format: 1322 B.C. 07-08 00:00:00.00
    Date in caniucular format: hrw 1461-I-Akhet-1
    Components: [-1, 1321, 7, 8, 0, 0, 0, 0]
Objects:
    Date in datetime64 format: -1321-07-08T00:00:00.000000
    Date in PyPlanet Epoch: 1238762.5
    Date in PyEphem Epoch: -1322/7/20 00:00:00
General:
    Is bce: True
    Is Julian: True
Uniform scales:
    Terrestrial time:
        tt: -104784376449.2
        jtd: 1238762.8651713
        htd: 533265.3651713
    UTC time:
        et: -104784408000.0
        jed: 1238762.5
        hed: 533265.0
    Delta-t = TT - UTC = 31550.8

As you may see, this is the second apokatastasis, ie. in bce 1322-07-20, the heliacal rise of Sirius happened again at I-Akhet-1.

Operations with dates

You may add or substract time to a given date. This is done by adding or substracting seconds to the reference time:

mtime = montu.Time('2001-01-01 12:00:00',format='iso')
(mtime,
 mtime - 12*montu.HOUR, 
 mtime + 1*montu.DAY, 
 mtime - 3*montu.CALYEAR, 
 mtime + 20*montu.JULYEAR)
(Time('2001-01-01 12:00:00.0000'/'2001-01-01 12:00:00'/'hrw 4784-I-Shemu-14'/JED 2451911.0/JTD 2451911.0007419),
 Time(JED 2451910.5/JTD 2451910.5007419),
 Time(JED 2451912.0/JTD 2451912.0007419),
 Time(JED 2450816.0000127/JTD 2450816.0007419),
 Time(JED 2459215.9999063/JTD 2459216.0007419))

As you may notice, adding or substracting and integer number of seconds not necesarily correspond to adding or sutracting days or years to the calendar. This is because of the difference in UT and TT: UT is always behind TT by a certain amount of seconds. Normally leapseconds are included every once in a while. However to calculate ephemerides in the ancient world, MontuPython uses a continuous model of deltat that small discrepancies from year to year.

To add calendar periods of time you may use the add method of Montu.Time:

mtime = montu.Time('2001-01-01 12:00:00')
mtime2 = mtime.add(1*montu.CALYEAR)
print(mtime2)
Montu Time Object:
-------------------------- 
Readable:
    Date in proleptic UTC: 2002-01-01 12:00:00.0000
    Date in mixed UTC: 2002-01-01 12:00:00
    Date in SPICE format: 2002-01-01 12:00:00.0000
    Date in caniucular format: hrw 4785-I-Shemu-14
    Components: [1, 2002, 1, 1, 12, 0, 0, 0]
Objects:
    Date in datetime64 format: 2002-01-01T12:00:00.000000
    Date in PyPlanet Epoch: 2452276.0
    Date in PyEphem Epoch: 2002/1/1 12:00:00
General:
    Is bce: False
    Is Julian: False
Uniform scales:
    Terrestrial time:
        tt: 63158464.3
        jtd: 2452276.0007442
        htd: 1746778.5007441998
    UTC time:
        et: 63158400.0
        jed: 2452276.0
        hed: 1746778.5
    Delta-t = TT - UTC = 64.3

Working with stars

The stellar catalogue included with MontuPython contains more than 119 000 stars, including almost 9 000 visible to the naked eye. Information about stars is stored in a pandas Data Frame whose columns are:

allstars.data.columns
Index(['MN', 'HD', 'HR', 'HIP', 'Gl', 'Name', 'OtherDesignations',
       'ProperName', 'Bayer', 'Flamsteed', 'Constellation', 'RAJ2000',
       'DecJ2000', 'pmRA', 'pmDec', 'RadVel', 'Distance', 'Vmag', 'Vmag_min',
       'Vmag_max', 'B-V', 'SpType', 'Luminosity', 'XJ2000', 'YJ2000', 'ZJ2000',
       'VXJ2000', 'VYJ2000', 'VZJ2000', 'Primary', 'MultipleID', 'IsMultiple',
       'IsVariable'],
      dtype='object')

Altough you may manipulate this DataFrame using the conventional commands in pandas, we have designed several useful methods to obtain subsets of the catalogue. For instance if you want to extract the stars visible to naked eye, the command would be:

stars = allstars.get_stars(Vmag=[-2,6.5])
print(f"There is {stars.number} visible to the naked eye in the catalogue")
There is 8920 visible to the naked eye in the catalogue

You can use any of the properties of the stars to filter them. A common filter is to look for single stars:

aldebaran = stars.get_stars(ProperName='Aldebaran')
aldebaran
1 star(s):
|    |   MN |    HD |   HR |   HIP | Gl        | Name      | OtherDesignations                                                                     | ProperName   | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |   VXJ2000 |   VYJ2000 |   VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |
|----|------|-------|------|-------|-----------|-----------|---------------------------------------------------------------------------------------|--------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|-----------|-----------|-----------|-----------|--------------|--------------|--------------|
| 14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran    | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |       163.23 |  7.02722 |  18.2876 |  5.80666 | -2.14e-06 | 5.709e-05 | 1.528e-05 |     21368 | Gl 171.1     |            1 |            1 |

All information about a star is stored in the data attribute:

TABLEDF(aldebaran.data)
|    |   MN |    HD |   HR |   HIP | Gl        | Name      | OtherDesignations                                                                     | ProperName   | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |   VXJ2000 |   VYJ2000 |   VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |
|----|------|-------|------|-------|-----------|-----------|---------------------------------------------------------------------------------------|--------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|-----------|-----------|-----------|-----------|--------------|--------------|--------------|
| 14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran    | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |       163.23 |  7.02722 |  18.2876 |  5.80666 | -2.14e-06 | 5.709e-05 | 1.528e-05 |     21368 | Gl 171.1     |            1 |            1 |

NOTE: The TABLEDF is a special function of MontuPython that allows you to produce a readable table out of a pandas DataFrame, a list of dictionaries and other iterable python objects. See tabulate package for details.

Another useful method included with the class Stars is that of filtering the getting the stars close to a given point in the sky. For illustrare, below is the command to obtain all stars in the sky with magnitudes less than 5 and that are at 5.5 degrees or less than Aldebaran:

hyades = stars.get_stars_around(center=[aldebaran.data.RAJ2000,aldebaran.data.DecJ2000],radius=5.5,Vmag=[-1,5])
hyades
18 star(s):
|      |   MN |    HD |   HR |   HIP | Gl        | Name           | OtherDesignations                                                                     | ProperName     | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |    VXJ2000 |    VYJ2000 |    VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |
|------|------|-------|------|-------|-----------|----------------|---------------------------------------------------------------------------------------|----------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|------------|------------|------------|-----------|--------------|--------------|--------------|
|   14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran      | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran      | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |    163.23    |  7.02722 |  18.2876 |  5.80666 | -2.14e-06  |  5.709e-05 |  1.528e-05 |     21368 | Gl 171.1     |            1 |            1 |
|  259 |  260 | 28319 | 1412 | 20894 | nan       | Chamukuy       | 78 Tau/78The2Tau/Chamukuy/HD 28319/HIP 20894/HR 1412/HYG 20842/MN 260/θ2 Tau          | Chamukuy       | θ2 Tau  | 78 Tau      | Tau             |   4.47771 |    15.8709 | 108.66 |  -26.39 |     40   |    46.1042 |   3.4  |      3.411 |      3.391 | 0.179 | A7III    |     80.8351  | 17.2097  |  40.8716 | 12.6082  |  5.51e-06  |  4.718e-05 | -6.49e-06  |     20842 | nan          |            0 |            1 |
|  301 |  302 | 28305 | 1409 | 20889 | nan       | Ain            | 74 Tau/74Eps Tau/Ain/HD 28305/HIP 20889/HR 1409/HYG 20837/MN 302/ε Tau                | Ain            | ε Tau   | 74 Tau      | Tau             |   4.47694 |    19.1804 | 107.23 |  -36.77 |     39   |    44.964  |   3.53 |    nan     |    nan     | 1.014 | K0III    |     68.1711  | 16.4884  |  39.1368 | 14.7728  |  5.53e-06  |  4.622e-05 | -5.89e-06  |     20837 | nan          |            0 |            0 |
|  344 |  345 | 27371 | 1346 | 20205 | nan       | Prima Hyadum   | 54 Tau/54Gam Tau/HD 27371/HIP 20205/HR 1346/HYG 20155/MN 345/Prima Hyadum/γ Tau       | Prima Hyadum   | γ Tau   | 54 Tau      | Tau             |   4.32989 |    15.6276 | 115.29 |  -23.86 |     39   |    49.5295 |   3.65 |    nan     |    nan     | 0.981 | G8III    |     74.0628  | 20.1974  |  43.2117 | 13.3426  |  5.23e-06  |  4.792e-05 | -8.16e-06  |     20155 | nan          |            0 |            0 |
|  394 |  395 | 27697 | 1373 | 20455 | nan       | Secunda Hyadum | 61 Tau/61Del1Tau/HD 27697/HIP 20455/HR 1373/HYG 20405/MN 395/Secunda Hyadum/δ1 Tau    | Secunda Hyadum | δ1 Tau  | 61 Tau      | Tau             |   4.38225 |    17.5425 | 107.75 |  -28.84 |     39   |    47.7099 |   3.77 |    nan     |    nan     | 0.983 | G8III    |     61.546   | 18.696   |  41.472  | 14.3805  |  5.66e-06  |  4.675e-05 | -6.26e-06  |     20405 | nan          |            0 |            0 |
|  429 |  430 | 28307 | 1411 | 20885 | nan       | θ1 Tau         | 77 Tau/77The1Tau/HD 28307/HIP 20885/HR 1411/HYG 20833/MN 430/θ1 Tau                   | nan            | θ1 Tau  | 77 Tau      | Tau             |   4.47625 |    15.9622 | 104.76 |  -15.01 |     40   |    47.3261 |   3.84 |    nan     |    nan     | 0.952 | G7III    |     56.8068  | 17.6738  |  41.929  | 13.0149  |  7.94e-06  |  4.645e-05 | -6.5e-06   |     20833 | nan          |            0 |            0 |
|  556 |  557 | 31421 | 1580 | 22957 | nan       | ο2 Ori         | 9 Ori/9Omi2Ori/HD 31421/HIP 22957/HR 1580/HYG 22904/MN 557/ο2 Ori                     | nan            | ο2 Ori  | 9 Ori       | Ori             |   4.93952 |    13.5145 | -77.77 |  -45.97 |      1   |    57.0125 |   4.06 |    nan     |    nan     | 1.158 | K2III    |     67.2977  | 15.1933  |  53.3112 | 13.3233  | -1.211e-05 | -2.08e-06  |  2.176e-05 |     22904 | nan          |            0 |            0 |
|  693 |  694 | 29388 | 1473 | 21589 | nan       | 90 Tau         | 90 Tau/HD 29388/HIP 21589/HR 1473/HYG 21536/MN 694                                    | nan            | nan     | 90 Tau      | Tau             |   4.63596 |    12.5108 | 101.73 |  -14.9  |     45   |    47.081  |   4.27 |    nan     |    nan     | 0.122 | A6V      |     37.8094  | 16.0671  |  43.0638 | 10.199   |  6.65e-06  |  5.09e-05  | -5.79e-06  |     21536 | nan          |            0 |            0 |
|  721 |  722 | 27962 | 1389 | 20648 | nan       | δ3 Tau         | 68 Tau/68Del3Tau/HD 27962/HIP 20648/HR 1389/HYG 20597/MN 722/δ3 Tau                   | nan            | δ3 Tau  | 68 Tau      | Tau             |   4.42483 |    17.9279 | 108.26 |  -32.47 |     35   |    45.5373 |   4.3  |      4.309 |      4.299 | 0.049 | A2IV     |     34.4191  | 17.3648  |  39.6945 | 14.0174  |  4.2e-06   |  4.28e-05  | -7.36e-06  |     20597 | nan          |            0 |            1 |
|  894 |  895 | 28052 | 1394 | 20713 | nan       | 71 Tau         | 71 Tau/HD 28052/HIP 20713/HR 1394/HYG 20661/MN 895                                    | nan            | nan     | 71 Tau      | Tau             |   4.43909 |    15.6183 | 114.66 |  -33.3  |     38   |    49.0918 |   4.48 |      4.488 |      4.468 | 0.262 | F0V...   |     33.8844  | 18.7872  |  43.3865 | 13.2169  |  2.83e-06  |  4.715e-05 | -9.32e-06  |     20661 | nan          |            0 |            1 |
| 1072 | 1073 | 28910 | 1444 | 21273 | nan       | ρ Tau          | 86 Tau/86Rho Tau/HD 28910/HIP 21273/HR 1444/HYG 21220/MN 1073/ρ Tau                   | nan            | ρ Tau   | 86 Tau      | Tau             |   4.56414 |    14.8444 | 103.69 |  -25.94 |     40   |    48.5201 |   4.65 |      4.662 |      4.642 | 0.255 | A8V      |     28.3139  | 17.2181  |  43.6262 | 12.4307  |  4.58e-06  |  4.719e-05 | -7.59e-06  |     21220 | nan          |            0 |            1 |
| 1100 | 1101 | 29488 | 1479 | 21683 | nan       | σ2 Tau         | 92 Tau/92Sig2Tau/HD 29488/HIP 21683/HR 1479/HYG 21630/MN 1101/σ2 Tau                  | nan            | σ2 Tau  | 92 Tau      | Tau             |   4.65458 |    15.918  |  82.4  |  -19.53 |     36   |    47.6872 |   4.67 |    nan     |    nan     | 0.147 | A5Vn     |     26.8411  | 15.8209  |  43.0435 | 13.0788  |  5.76e-06  |  4.097e-05 | -5.24e-06  |     21630 | nan          |            0 |            0 |
| 1123 | 1124 | 28100 | 1396 | 20732 | nan       | π Tau          | 73 Tau/73Pi Tau/HD 28100/HIP 20732/HR 1396/HYG 20680/MN 1124/π Tau                    | nan            | π Tau   | 73 Tau      | Tau             |   4.44344 |    14.7138 |  -7.57 |  -31.15 |     32   |   127.714  |   4.69 |    nan     |    nan     | 0.979 | G8III    |    188.973   | 48.9561  | 113.411  | 32.4382  | -1.034e-05 |  3.17e-05  |  1.879e-05 |     20680 | nan          |            0 |            0 |
| 1144 | 1145 | 30959 | 1556 | 22667 | nan       | ο1 Ori         | 4 Ori/4Omi1Ori/HD 30959/HIP 22667/HR 1556/HYG 22614/MN 1145/ο1 Ori                    | nan            | ο1 Ori  | 4 Ori       | Ori             |   4.87554 |    14.2506 |  -2.62 |  -56.13 |     -8   |   199.601  |   4.71 |      4.758 |      4.668 | 1.773 | M3Sv     |    453.315   | 56.1317  | 185.136  | 49.1345  | -5.465e-05 |  4.47e-06  |  4e-06     |     22614 | nan          |            0 |            1 |
| 1242 | 1243 | 28527 | 1427 | 21029 | Gl 170.1  | HD 28527       | Gl 170.1/HD 28527/HIP 21029/HR 1427/HYG 20977/MN 1243                                 | nan            | nan     | nan         | Tau             |   4.50934 |    16.194  | 104.98 |  -25.14 |     41   |    43.1965 |   4.78 |    nan     |    nan     | 0.17  | A6IV     |     19.8976  | 15.781   |  38.364  | 12.0472  |  6.64e-06  |  4.696e-05 | -4.45e-06  |     20977 | nan          |            0 |            0 |
| 1275 | 1276 | 27819 | 1380 | 20542 | nan       | δ2 Tau         | 64 Tau/64Del2Tau/HD 27819/HIP 20542/HR 1380/HYG 20490/MN 1276/δ2 Tau                  | nan            | δ2 Tau  | 64 Tau      | Tau             |   4.4016  |    17.4441 | 109.99 |  -33.47 |     39   |    49.4805 |   4.8  |    nan     |    nan     | 0.154 | A7V      |     25.633   | 19.182   |  43.1321 | 14.8332  |  4.3e-06   |  4.769e-05 | -7.67e-06  |     20490 | nan          |            0 |            0 |
| 1485 | 1486 | 27045 | 1329 | 19990 | nan       | ω2 Tau         | 50 Tau/50Ome2Tau/HD 27045/HIP 19990/HR 1329/HYG 19940/MN 1486/ω2 Tau                  | nan            | ω2 Tau  | 50 Tau      | Tau             |   4.28768 |    20.5786 | -40.88 |  -61.45 |     16   |    28.9436 |   4.93 |    nan     |    nan     | 0.259 | A3m      |      7.78395 | 11.7443  |  24.4195 | 10.1735  | -2.32e-06  |  1.405e-05 |  1.312e-05 |     19940 | nan          |            0 |            0 |
| 1544 | 1545 | 28292 | 1407 | 20877 | nan       | 75 Tau         | 75 Tau/HD 28292/HIP 20877/HR 1407/HYG 20825/MN 1545                                   | nan            | nan     | 75 Tau      | Tau             |   4.47399 |    16.3597 |   8.12 |   17.79 |     18   |    57.241  |   4.96 |    nan     |    nan     | 1.137 | K2IIIvar |     29.621   | 21.3634  |  50.5985 | 16.1229  |  9.92e-06  |  1.587e-05 |  4.25e-06  |     20825 | nan          |            0 |            0 |

We can map the stars:

plt.ioff() # Used only for README generation
fig,axs = hyades.plot_stars()
fig.savefig('gallery/hyades.png')

Logo

Now you can precess the stars:

mtime = montu.Time('-2500-01-01 12:00:00.00')
hyades.where_in_space(at=mtime,inplace=True)
hyades
18 star(s):
|      |   MN |    HD |   HR |   HIP | Gl        | Name           | OtherDesignations                                                                     | ProperName     | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |    VXJ2000 |    VYJ2000 |    VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |           tt |    jed |   RAJ2000t |   DecJ2000t |   RAEpoch |   DecEpoch |
|------|------|-------|------|-------|-----------|----------------|---------------------------------------------------------------------------------------|----------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|------------|------------|------------|-----------|--------------|--------------|--------------|--------------|--------|------------|-------------|-----------|------------|
|   14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran      | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran      | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |    163.23    |  7.02722 |  18.2876 |  5.80666 | -2.14e-06  |  5.709e-05 |  1.528e-05 |     21368 | Gl 171.1     |            1 |            1 | -1.42006e+11 | 807954 |    4.59345 |     16.746  |  0.610393 |  -2.25214  |
|  259 |  260 | 28319 | 1412 | 20894 | nan       | Chamukuy       | 78 Tau/78The2Tau/Chamukuy/HD 28319/HIP 20894/HR 1412/HYG 20842/MN 260/θ2 Tau          | Chamukuy       | θ2 Tau  | 78 Tau      | Tau             |   4.47771 |    15.8709 | 108.66 |  -26.39 |     40   |    46.1042 |   3.4  |      3.411 |      3.391 | 0.179 | A7III    |     80.8351  | 17.2097  |  40.8716 | 12.6082  |  5.51e-06  |  4.718e-05 | -6.49e-06  |     20842 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.46865 |     15.9039 |  0.509023 |  -3.52894  |
|  301 |  302 | 28305 | 1409 | 20889 | nan       | Ain            | 74 Tau/74Eps Tau/Ain/HD 28305/HIP 20889/HR 1409/HYG 20837/MN 302/ε Tau                | Ain            | ε Tau   | 74 Tau      | Tau             |   4.47694 |    19.1804 | 107.23 |  -36.77 |     39   |    44.964  |   3.53 |    nan     |    nan     | 1.014 | K0III    |     68.1711  | 16.4884  |  39.1368 | 14.7728  |  5.53e-06  |  4.622e-05 | -5.89e-06  |     20837 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.46801 |     19.2264 |  0.452486 |  -0.316303 |
|  344 |  345 | 27371 | 1346 | 20205 | nan       | Prima Hyadum   | 54 Tau/54Gam Tau/HD 27371/HIP 20205/HR 1346/HYG 20155/MN 345/Prima Hyadum/γ Tau       | Prima Hyadum   | γ Tau   | 54 Tau      | Tau             |   4.32989 |    15.6276 | 115.29 |  -23.86 |     39   |    49.5295 |   3.65 |    nan     |    nan     | 0.981 | G8III    |     74.0628  | 20.1974  |  43.2117 | 13.3426  |  5.23e-06  |  4.792e-05 | -8.16e-06  |     20155 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.32028 |     15.6575 |  0.374386 |  -4.29558  |
|  394 |  395 | 27697 | 1373 | 20455 | nan       | Secunda Hyadum | 61 Tau/61Del1Tau/HD 27697/HIP 20455/HR 1373/HYG 20405/MN 395/Secunda Hyadum/δ1 Tau    | Secunda Hyadum | δ1 Tau  | 61 Tau      | Tau             |   4.38225 |    17.5425 | 107.75 |  -28.84 |     39   |    47.7099 |   3.77 |    nan     |    nan     | 0.983 | G8III    |     61.546   | 18.696   |  41.472  | 14.3805  |  5.66e-06  |  4.675e-05 | -6.26e-06  |     20405 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.37327 |     17.5786 |  0.392658 |  -2.24724  |
|  429 |  430 | 28307 | 1411 | 20885 | nan       | θ1 Tau         | 77 Tau/77The1Tau/HD 28307/HIP 20885/HR 1411/HYG 20833/MN 430/θ1 Tau                   | nan            | θ1 Tau  | 77 Tau      | Tau             |   4.47625 |    15.9622 | 104.76 |  -15.01 |     40   |    47.3261 |   3.84 |    nan     |    nan     | 0.952 | G7III    |     56.8068  | 17.6738  |  41.929  | 13.0149  |  7.94e-06  |  4.645e-05 | -6.5e-06   |     20833 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.46752 |     15.9809 |  0.506667 |  -3.45849  |
|  556 |  557 | 31421 | 1580 | 22957 | nan       | ο2 Ori         | 9 Ori/9Omi2Ori/HD 31421/HIP 22957/HR 1580/HYG 22904/MN 557/ο2 Ori                     | nan            | ο2 Ori  | 9 Ori       | Ori             |   4.93952 |    13.5145 | -77.77 |  -45.97 |      1   |    57.0125 |   4.06 |    nan     |    nan     | 1.158 | K2III    |     67.2977  | 15.1933  |  53.3112 | 13.3233  | -1.211e-05 | -2.08e-06  |  2.176e-05 |     22904 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.946   |     13.5719 |  0.996528 |  -3.88634  |
|  693 |  694 | 29388 | 1473 | 21589 | nan       | 90 Tau         | 90 Tau/HD 29388/HIP 21589/HR 1473/HYG 21536/MN 694                                    | nan            | nan     | 90 Tau      | Tau             |   4.63596 |    12.5108 | 101.73 |  -14.9  |     45   |    47.081  |   4.27 |    nan     |    nan     | 0.122 | A6V      |     37.8094  | 16.0671  |  43.0638 | 10.199   |  6.65e-06  |  5.09e-05  | -5.79e-06  |     21536 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.62748 |     12.5295 |  0.716907 |  -6.18727  |
|  721 |  722 | 27962 | 1389 | 20648 | nan       | δ3 Tau         | 68 Tau/68Del3Tau/HD 27962/HIP 20648/HR 1389/HYG 20597/MN 722/δ3 Tau                   | nan            | δ3 Tau  | 68 Tau      | Tau             |   4.42483 |    17.9279 | 108.26 |  -32.47 |     35   |    45.5373 |   4.3  |      4.309 |      4.299 | 0.049 | A2IV     |     34.4191  | 17.3648  |  39.6945 | 14.0174  |  4.2e-06   |  4.28e-05  | -7.36e-06  |     20597 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.41581 |     17.9685 |  0.425544 |  -1.71979  |
|  894 |  895 | 28052 | 1394 | 20713 | nan       | 71 Tau         | 71 Tau/HD 28052/HIP 20713/HR 1394/HYG 20661/MN 895                                    | nan            | nan     | 71 Tau      | Tau             |   4.43909 |    15.6183 | 114.66 |  -33.3  |     38   |    49.0918 |   4.48 |      4.488 |      4.468 | 0.262 | F0V...   |     33.8844  | 18.7872  |  43.3865 | 13.2169  |  2.83e-06  |  4.715e-05 | -9.32e-06  |     20661 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.42954 |     15.6599 |  0.476608 |  -3.90687  |
| 1072 | 1073 | 28910 | 1444 | 21273 | nan       | ρ Tau          | 86 Tau/86Rho Tau/HD 28910/HIP 21273/HR 1444/HYG 21220/MN 1073/ρ Tau                   | nan            | ρ Tau   | 86 Tau      | Tau             |   4.56414 |    14.8444 | 103.69 |  -25.94 |     40   |    48.5201 |   4.65 |      4.662 |      4.642 | 0.255 | A8V      |     28.3139  | 17.2181  |  43.6262 | 12.4307  |  4.58e-06  |  4.719e-05 | -7.59e-06  |     21220 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.5555  |     14.8768 |  0.607744 |  -4.19944  |
| 1100 | 1101 | 29488 | 1479 | 21683 | nan       | σ2 Tau         | 92 Tau/92Sig2Tau/HD 29488/HIP 21683/HR 1479/HYG 21630/MN 1101/σ2 Tau                  | nan            | σ2 Tau  | 92 Tau      | Tau             |   4.65458 |    15.918  |  82.4  |  -19.53 |     36   |    47.6872 |   4.67 |    nan     |    nan     | 0.147 | A5Vn     |     26.8411  | 15.8209  |  43.0435 | 13.0788  |  5.76e-06  |  4.097e-05 | -5.24e-06  |     21630 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.64772 |     15.9424 |  0.674876 |  -2.81982  |
| 1123 | 1124 | 28100 | 1396 | 20732 | nan       | π Tau          | 73 Tau/73Pi Tau/HD 28100/HIP 20732/HR 1396/HYG 20680/MN 1124/π Tau                    | nan            | π Tau   | 73 Tau      | Tau             |   4.44344 |    14.7138 |  -7.57 |  -31.15 |     32   |   127.714  |   4.69 |    nan     |    nan     | 0.979 | G8III    |    188.973   | 48.9561  | 113.411  | 32.4382  | -1.034e-05 |  3.17e-05  |  1.879e-05 |     20680 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.44407 |     14.7527 |  0.505399 |  -4.73255  |
| 1144 | 1145 | 30959 | 1556 | 22667 | nan       | ο1 Ori         | 4 Ori/4Omi1Ori/HD 30959/HIP 22667/HR 1556/HYG 22614/MN 1145/ο1 Ori                    | nan            | ο1 Ori  | 4 Ori       | Ori             |   4.87554 |    14.2506 |  -2.62 |  -56.13 |     -8   |   199.601  |   4.71 |      4.758 |      4.668 | 1.773 | M3Sv     |    453.315   | 56.1317  | 185.136  | 49.1345  | -5.465e-05 |  4.47e-06  |  4e-06     |     22614 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.87576 |     14.3208 |  0.91669  |  -3.46436  |
| 1242 | 1243 | 28527 | 1427 | 21029 | Gl 170.1  | HD 28527       | Gl 170.1/HD 28527/HIP 21029/HR 1427/HYG 20977/MN 1243                                 | nan            | nan     | nan         | Tau             |   4.50934 |    16.194  | 104.98 |  -25.14 |     41   |    43.1965 |   4.78 |    nan     |    nan     | 0.17  | A6IV     |     19.8976  | 15.781   |  38.364  | 12.0472  |  6.64e-06  |  4.696e-05 | -4.45e-06  |     20977 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.50059 |     16.2254 |  0.533307 |  -3.10096  |
| 1275 | 1276 | 27819 | 1380 | 20542 | nan       | δ2 Tau         | 64 Tau/64Del2Tau/HD 27819/HIP 20542/HR 1380/HYG 20490/MN 1276/δ2 Tau                  | nan            | δ2 Tau  | 64 Tau      | Tau             |   4.4016  |    17.4441 | 109.99 |  -33.47 |     39   |    49.4805 |   4.8  |    nan     |    nan     | 0.154 | A7V      |     25.633   | 19.182   |  43.1321 | 14.8332  |  4.3e-06   |  4.769e-05 | -7.67e-06  |     20490 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.39243 |     17.486  |  0.411904 |  -2.26983  |
| 1485 | 1486 | 27045 | 1329 | 19990 | nan       | ω2 Tau         | 50 Tau/50Ome2Tau/HD 27045/HIP 19990/HR 1329/HYG 19940/MN 1486/ω2 Tau                  | nan            | ω2 Tau  | 50 Tau      | Tau             |   4.28768 |    20.5786 | -40.88 |  -61.45 |     16   |    28.9436 |   4.93 |    nan     |    nan     | 0.259 | A3m      |      7.78395 | 11.7443  |  24.4195 | 10.1735  | -2.32e-06  |  1.405e-05 |  1.312e-05 |     19940 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.29109 |     20.6554 |  0.26793  |   0.459077 |
| 1544 | 1545 | 28292 | 1407 | 20877 | nan       | 75 Tau         | 75 Tau/HD 28292/HIP 20877/HR 1407/HYG 20825/MN 1545                                   | nan            | nan     | 75 Tau      | Tau             |   4.47399 |    16.3597 |   8.12 |   17.79 |     18   |    57.241  |   4.96 |    nan     |    nan     | 1.137 | K2IIIvar |     29.621   | 21.3634  |  50.5985 | 16.1229  |  9.92e-06  |  1.587e-05 |  4.25e-06  |     20825 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.47332 |     16.3374 |  0.506045 |  -3.09247  |

Or compute their horizontal positions:

hyades.where_in_sky(at=mtime,observer=tebas,inplace=True)
hyades
18 star(s):
|      |   MN |    HD |   HR |   HIP | Gl        | Name           | OtherDesignations                                                                     | ProperName     | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |   B-V | SpType   |   Luminosity |   XJ2000 |   YJ2000 |   ZJ2000 |    VXJ2000 |    VYJ2000 |    VZJ2000 |   Primary | MultipleID   |   IsMultiple |   IsVariable |           tt |    jed |   RAJ2000t |   DecJ2000t |   RAEpoch |   DecEpoch |      HA |      az |      el |     zen |
|------|------|-------|------|-------|-----------|----------------|---------------------------------------------------------------------------------------|----------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|-------|----------|--------------|----------|----------|----------|------------|------------|------------|-----------|--------------|--------------|--------------|--------------|--------|------------|-------------|-----------|------------|---------|---------|---------|---------|
|   14 |   15 | 29139 | 1457 | 21421 | Gl 171.1A | Aldebaran      | 87 Tau/87Alp Tau/Aldebaran/Gl 171.1A/HD 29139/HIP 21421/HR 1457/HYG 21368/MN 15/α Tau | Aldebaran      | α Tau   | 87 Tau      | Tau             |   4.59868 |    16.5093 |  62.78 | -189.36 |     54.5 |    20.4332 |   0.87 |      0.888 |      0.858 | 1.538 | K5III    |    163.23    |  7.02722 |  18.2876 |  5.80666 | -2.14e-06  |  5.709e-05 |  1.528e-05 |     21368 | Gl 171.1     |            1 |            1 | -1.42006e+11 | 807954 |    4.59345 |     16.746  |  0.610393 |  -2.25214  | 20.2633 | 107.596 | 29.5909 | 60.4091 |
|  259 |  260 | 28319 | 1412 | 20894 | nan       | Chamukuy       | 78 Tau/78The2Tau/Chamukuy/HD 28319/HIP 20894/HR 1412/HYG 20842/MN 260/θ2 Tau          | Chamukuy       | θ2 Tau  | 78 Tau      | Tau             |   4.47771 |    15.8709 | 108.66 |  -26.39 |     40   |    46.1042 |   3.4  |      3.411 |      3.391 | 0.179 | A7III    |     80.8351  | 17.2097  |  40.8716 | 12.6082  |  5.51e-06  |  4.718e-05 | -6.49e-06  |     20842 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.46865 |     15.9039 |  0.509023 |  -3.52894  | 20.3647 | 109.747 | 30.2697 | 59.7303 |
|  301 |  302 | 28305 | 1409 | 20889 | nan       | Ain            | 74 Tau/74Eps Tau/Ain/HD 28305/HIP 20889/HR 1409/HYG 20837/MN 302/ε Tau                | Ain            | ε Tau   | 74 Tau      | Tau             |   4.47694 |    19.1804 | 107.23 |  -36.77 |     39   |    44.964  |   3.53 |    nan     |    nan     | 1.014 | K0III    |     68.1711  | 16.4884  |  39.1368 | 14.7728  |  5.53e-06  |  4.622e-05 | -5.89e-06  |     20837 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.46801 |     19.2264 |  0.452486 |  -0.316303 | 20.4212 | 106.974 | 32.6028 | 57.3972 |
|  344 |  345 | 27371 | 1346 | 20205 | nan       | Prima Hyadum   | 54 Tau/54Gam Tau/HD 27371/HIP 20205/HR 1346/HYG 20155/MN 345/Prima Hyadum/γ Tau       | Prima Hyadum   | γ Tau   | 54 Tau      | Tau             |   4.32989 |    15.6276 | 115.29 |  -23.86 |     39   |    49.5295 |   3.65 |    nan     |    nan     | 0.981 | G8III    |     74.0628  | 20.1974  |  43.2117 | 13.3426  |  5.23e-06  |  4.792e-05 | -8.16e-06  |     20155 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.32028 |     15.6575 |  0.374386 |  -4.29558  | 20.4993 | 111.726 | 31.5992 | 58.4008 |
|  394 |  395 | 27697 | 1373 | 20455 | nan       | Secunda Hyadum | 61 Tau/61Del1Tau/HD 27697/HIP 20455/HR 1373/HYG 20405/MN 395/Secunda Hyadum/δ1 Tau    | Secunda Hyadum | δ1 Tau  | 61 Tau      | Tau             |   4.38225 |    17.5425 | 107.75 |  -28.84 |     39   |    47.7099 |   3.77 |    nan     |    nan     | 0.983 | G8III    |     61.546   | 18.696   |  41.472  | 14.3805  |  5.66e-06  |  4.675e-05 | -6.26e-06  |     20405 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.37327 |     17.5786 |  0.392658 |  -2.24724  | 20.481  | 109.49  | 32.4222 | 57.5778 |
|  429 |  430 | 28307 | 1411 | 20885 | nan       | θ1 Tau         | 77 Tau/77The1Tau/HD 28307/HIP 20885/HR 1411/HYG 20833/MN 430/θ1 Tau                   | nan            | θ1 Tau  | 77 Tau      | Tau             |   4.47625 |    15.9622 | 104.76 |  -15.01 |     40   |    47.3261 |   3.84 |    nan     |    nan     | 0.952 | G7III    |     56.8068  | 17.6738  |  41.929  | 13.0149  |  7.94e-06  |  4.645e-05 | -6.5e-06   |     20833 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.46752 |     15.9809 |  0.506667 |  -3.45849  | 20.367  | 109.698 | 30.3358 | 59.6642 |
|  556 |  557 | 31421 | 1580 | 22957 | nan       | ο2 Ori         | 9 Ori/9Omi2Ori/HD 31421/HIP 22957/HR 1580/HYG 22904/MN 557/ο2 Ori                     | nan            | ο2 Ori  | 9 Ori       | Ori             |   4.93952 |    13.5145 | -77.77 |  -45.97 |      1   |    57.0125 |   4.06 |    nan     |    nan     | 1.158 | K2III    |     67.2977  | 15.1933  |  53.3112 | 13.3233  | -1.211e-05 | -2.08e-06  |  2.176e-05 |     22904 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.946   |     13.5719 |  0.996528 |  -3.88634  | 19.8772 | 106.071 | 23.7372 | 66.2628 |
|  693 |  694 | 29388 | 1473 | 21589 | nan       | 90 Tau         | 90 Tau/HD 29388/HIP 21589/HR 1473/HYG 21536/MN 694                                    | nan            | nan     | 90 Tau      | Tau             |   4.63596 |    12.5108 | 101.73 |  -14.9  |     45   |    47.081  |   4.27 |    nan     |    nan     | 0.122 | A6V      |     37.8094  | 16.0671  |  43.0638 | 10.199   |  6.65e-06  |  5.09e-05  | -5.79e-06  |     21536 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.62748 |     12.5295 |  0.716907 |  -6.18727  | 20.1568 | 110.55  | 26.2424 | 63.7576 |
|  721 |  722 | 27962 | 1389 | 20648 | nan       | δ3 Tau         | 68 Tau/68Del3Tau/HD 27962/HIP 20648/HR 1389/HYG 20597/MN 722/δ3 Tau                   | nan            | δ3 Tau  | 68 Tau      | Tau             |   4.42483 |    17.9279 | 108.26 |  -32.47 |     35   |    45.5373 |   4.3  |      4.309 |      4.299 | 0.049 | A2IV     |     34.4191  | 17.3648  |  39.6945 | 14.0174  |  4.2e-06   |  4.28e-05  | -7.36e-06  |     20597 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.41581 |     17.9685 |  0.425544 |  -1.71979  | 20.4482 | 108.657 | 32.2619 | 57.7381 |
|  894 |  895 | 28052 | 1394 | 20713 | nan       | 71 Tau         | 71 Tau/HD 28052/HIP 20713/HR 1394/HYG 20661/MN 895                                    | nan            | nan     | 71 Tau      | Tau             |   4.43909 |    15.6183 | 114.66 |  -33.3  |     38   |    49.0918 |   4.48 |      4.488 |      4.468 | 0.262 | F0V...   |     33.8844  | 18.7872  |  43.3865 | 13.2169  |  2.83e-06  |  4.715e-05 | -9.32e-06  |     20661 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.42954 |     15.6599 |  0.476608 |  -3.90687  | 20.3971 | 110.411 | 30.4939 | 59.5061 |
| 1072 | 1073 | 28910 | 1444 | 21273 | nan       | ρ Tau          | 86 Tau/86Rho Tau/HD 28910/HIP 21273/HR 1444/HYG 21220/MN 1073/ρ Tau                   | nan            | ρ Tau   | 86 Tau      | Tau             |   4.56414 |    14.8444 | 103.69 |  -25.94 |     40   |    48.5201 |   4.65 |      4.662 |      4.642 | 0.255 | A8V      |     28.3139  | 17.2181  |  43.6262 | 12.4307  |  4.58e-06  |  4.719e-05 | -7.59e-06  |     21220 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.5555  |     14.8768 |  0.607744 |  -4.19944  | 20.266  | 109.552 | 28.6561 | 61.3439 |
| 1100 | 1101 | 29488 | 1479 | 21683 | nan       | σ2 Tau         | 92 Tau/92Sig2Tau/HD 29488/HIP 21683/HR 1479/HYG 21630/MN 1101/σ2 Tau                  | nan            | σ2 Tau  | 92 Tau      | Tau             |   4.65458 |    15.918  |  82.4  |  -19.53 |     36   |    47.6872 |   4.67 |    nan     |    nan     | 0.147 | A5Vn     |     26.8411  | 15.8209  |  43.0435 | 13.0788  |  5.76e-06  |  4.097e-05 | -5.24e-06  |     21630 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.64772 |     15.9424 |  0.674876 |  -2.81982  | 20.1988 | 107.62  | 28.4704 | 61.5296 |
| 1123 | 1124 | 28100 | 1396 | 20732 | nan       | π Tau          | 73 Tau/73Pi Tau/HD 28100/HIP 20732/HR 1396/HYG 20680/MN 1124/π Tau                    | nan            | π Tau   | 73 Tau      | Tau             |   4.44344 |    14.7138 |  -7.57 |  -31.15 |     32   |   127.714  |   4.69 |    nan     |    nan     | 0.979 | G8III    |    188.973   | 48.9561  | 113.411  | 32.4382  | -1.034e-05 |  3.17e-05  |  1.879e-05 |     20680 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.44407 |     14.7527 |  0.505399 |  -4.73255  | 20.3683 | 110.972 | 29.6994 | 60.3006 |
| 1144 | 1145 | 30959 | 1556 | 22667 | nan       | ο1 Ori         | 4 Ori/4Omi1Ori/HD 30959/HIP 22667/HR 1556/HYG 22614/MN 1145/ο1 Ori                    | nan            | ο1 Ori  | 4 Ori       | Ori             |   4.87554 |    14.2506 |  -2.62 |  -56.13 |     -8   |   199.601  |   4.71 |      4.758 |      4.668 | 1.773 | M3Sv     |    453.315   | 56.1317  | 185.136  | 49.1345  | -5.465e-05 |  4.47e-06  |  4e-06     |     22614 | nan          |            0 |            1 | -1.42006e+11 | 807954 |    4.87576 |     14.3208 |  0.91669  |  -3.46436  | 19.957  | 106.289 | 24.9889 | 65.0111 |
| 1242 | 1243 | 28527 | 1427 | 21029 | Gl 170.1  | HD 28527       | Gl 170.1/HD 28527/HIP 21029/HR 1427/HYG 20977/MN 1243                                 | nan            | nan     | nan         | Tau             |   4.50934 |    16.194  | 104.98 |  -25.14 |     41   |    43.1965 |   4.78 |    nan     |    nan     | 0.17  | A6IV     |     19.8976  | 15.781   |  38.364  | 12.0472  |  6.64e-06  |  4.696e-05 | -4.45e-06  |     20977 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.50059 |     16.2254 |  0.533307 |  -3.10096  | 20.3404 | 109.107 | 30.1721 | 59.8279 |
| 1275 | 1276 | 27819 | 1380 | 20542 | nan       | δ2 Tau         | 64 Tau/64Del2Tau/HD 27819/HIP 20542/HR 1380/HYG 20490/MN 1276/δ2 Tau                  | nan            | δ2 Tau  | 64 Tau      | Tau             |   4.4016  |    17.4441 | 109.99 |  -33.47 |     39   |    49.4805 |   4.8  |    nan     |    nan     | 0.154 | A7V      |     25.633   | 19.182   |  43.1321 | 14.8332  |  4.3e-06   |  4.769e-05 | -7.67e-06  |     20490 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.39243 |     17.486  |  0.411904 |  -2.26983  | 20.4618 | 109.34  | 32.162  | 57.838  |
| 1485 | 1486 | 27045 | 1329 | 19990 | nan       | ω2 Tau         | 50 Tau/50Ome2Tau/HD 27045/HIP 19990/HR 1329/HYG 19940/MN 1486/ω2 Tau                  | nan            | ω2 Tau  | 50 Tau      | Tau             |   4.28768 |    20.5786 | -40.88 |  -61.45 |     16   |    28.9436 |   4.93 |    nan     |    nan     | 0.259 | A3m      |      7.78395 | 11.7443  |  24.4195 | 10.1735  | -2.32e-06  |  1.405e-05 |  1.312e-05 |     19940 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.29109 |     20.6554 |  0.26793  |   0.459077 | 20.6058 | 107.794 | 35.3961 | 54.6039 |
| 1544 | 1545 | 28292 | 1407 | 20877 | nan       | 75 Tau         | 75 Tau/HD 28292/HIP 20877/HR 1407/HYG 20825/MN 1545                                   | nan            | nan     | 75 Tau      | Tau             |   4.47399 |    16.3597 |   8.12 |   17.79 |     18   |    57.241  |   4.96 |    nan     |    nan     | 1.137 | K2IIIvar |     29.621   | 21.3634  |  50.5985 | 16.1229  |  9.92e-06  |  1.587e-05 |  4.25e-06  |     20825 | nan          |            0 |            0 | -1.42006e+11 | 807954 |    4.47332 |     16.3374 |  0.506045 |  -3.09247  | 20.3677 | 109.337 | 30.5291 | 59.4709 |

And plot them again:

plt.ioff() # Used only for README generation
fig,axs = hyades.plot_stars(coords=['RAEpoch','DecEpoch'])
fig.savefig('gallery/hyades-precessed.png')

Logo

Working with planets and observing sites

MontuPython allows calculate the position of all planets in the solar system, including the moon:

mars = montu.Planet('Mars')
neptune = montu.Planet('neptune')
jupiter = montu.Planet('JUPITER')
moon = montu.Planet('Moon')
sun = montu.Planet('SUN')

You may create an observing site:

tebas = montu.Observer(lon=33,lat=24,height=0)

The straight routine method to calculate position of the planet in the sky at any date is:

mtime = montu.Time('-2500-01-01 12:00:00')
mars.where_in_sky(mtime,tebas)
mars
Object Mars positions:
|            tt |    jed | Name   |   RAJ2000 |   DecJ2000 |   RAEpoch |   DecEpoch |   RAGeo |   DecGeo |       el |      az |
|---------------|--------|--------|-----------|------------|-----------|------------|---------|----------|----------|---------|
| -142006202700 | 807954 | Mars   |    12.531 |    1.62045 |   8.53603 |    24.1114 | 8.53601 |  24.1141 | -41.6385 | 6.18997 |'
Object Mars conditions:
'

You may also compute other atrometric conditions (rise time, set time, elongation, etc.):

mars.conditions_in_sky(mtime,tebas)
mars
Object Mars positions:
|            tt |    jed | Name   |   RAJ2000 |   DecJ2000 |   RAEpoch |   DecEpoch |   RAGeo |   DecGeo |       el |      az |
|---------------|--------|--------|-----------|------------|-----------|------------|---------|----------|----------|---------|
| -142006202700 | 807954 | Mars   |    12.531 |    1.62045 |   8.53603 |    24.1114 | 8.53601 |  24.1141 | -41.6385 | 6.18997 |'
Object Mars conditions:
|            tt |    jed | Name   |      ha |   Vmag |   rise_time |   rise_az |   set_time |   set_az |   transit_time |   transit_el |   elongation |   earth_distance |   sun_distance | is_circumpolar   | is_neverup   |   angsize |   phase |    hlat |    hlon |   hlong |
|---------------|--------|--------|---------|--------|-------------|-----------|------------|----------|----------------|--------------|--------------|------------------|----------------|------------------|--------------|-----------|---------|---------|---------|---------|
| -142006202700 | 807954 | Mars   | 12.3377 |  -1.13 |      807954 |   63.1349 |     807954 |  296.821 |         807954 |      89.8414 |     -157.818 |         0.660488 |        1.62611 | False            | False        |   14.1713 | 98.6462 | 1.88842 | 111.259 | 111.259 |'

All times are given in Julian Days. If you want the exact date of set use:

montu.Time.get_date(mars.condition.rise_time)
(-2501, 1, 22, 16, 49, 57.993642)

You may get also the position at different times and store it into a data frame:

import numpy as np

# Reset the data stored in the planet
mars.reset_store()

# Loop on different times
for deltat in np.arange(0,1*montu.DAY,1*montu.HOUR):
    mars.where_in_sky(mtime + deltat,tebas,store=True)

# Show results
mars
Object Mars positions:
|            tt |    jed | Name   |   RAJ2000 |   DecJ2000 |   RAEpoch |   DecEpoch |   RAGeo |   DecGeo |        el |        az |
|---------------|--------|--------|-----------|------------|-----------|------------|---------|----------|-----------|-----------|
| -142006202700 | 807954 | Mars   |   12.531  |    1.62045 |   8.53603 |    24.1114 | 8.53601 |  24.1141 | -41.6385  |   6.18997 |
| -142006199100 | 807954 | Mars   |   12.5304 |    1.62593 |   8.53532 |    24.1153 | 8.53524 |  24.1179 | -38.0804  |  23.5034  |
| -142006195500 | 807954 | Mars   |   12.5297 |    1.63142 |   8.53461 |    24.1193 | 8.53447 |  24.1217 | -31.0231  |  37.8391  |
| -142006191900 | 807954 | Mars   |   12.5291 |    1.63692 |   8.53388 |    24.1233 | 8.53369 |  24.1256 | -21.5453  |  48.9456  |
| -142006188300 | 807954 | Mars   |   12.5284 |    1.64242 |   8.53314 |    24.1274 | 8.53292 |  24.1294 | -10.5149  |  57.4706  |
| -142006184700 | 807954 | Mars   |   12.5277 |    1.64793 |   8.53238 |    24.1316 | 8.53214 |  24.1332 |   1.8128  |  64.1498  |
| -142006181100 | 807954 | Mars   |   12.5271 |    1.65344 |   8.53161 |    24.1358 | 8.53136 |  24.137  |  14.211   |  69.5518  |
| -142006177500 | 807954 | Mars   |   12.5264 |    1.65896 |   8.53081 |    24.14   | 8.53058 |  24.1409 |  27.2472  |  74.0721  |
| -142006173900 | 807954 | Mars   |   12.5258 |    1.66448 |   8.53    |    24.1441 | 8.5298  |  24.1447 |  40.5806  |  77.979   |
| -142006170300 | 807954 | Mars   |   12.5251 |    1.67001 |   8.52917 |    24.1482 | 8.52902 |  24.1485 |  54.1045  |  81.4499  |
| -142006166700 | 807954 | Mars   |   12.5244 |    1.67555 |   8.52833 |    24.1523 | 8.52823 |  24.1524 |  67.7491  |  84.572   |
| -142006163100 | 807954 | Mars   |   12.5238 |    1.68109 |   8.52748 |    24.1562 | 8.52744 |  24.1562 |  81.4615  |  87.0426  |
| -142006159500 | 807954 | Mars   |   12.5231 |    1.68664 |   8.52663 |    24.1601 | 8.52666 |  24.1601 |  84.7964  | 272.924   |
| -142006155900 | 807955 | Mars   |   12.5224 |    1.69219 |   8.52578 |    24.1638 | 8.52587 |  24.1639 |  71.0758  | 274.763   |
| -142006152300 | 807955 | Mars   |   12.5218 |    1.69775 |   8.52493 |    24.1675 | 8.52508 |  24.1677 |  57.4117  | 277.794   |
| -142006148700 | 807955 | Mars   |   12.5211 |    1.70331 |   8.52409 |    24.1711 | 8.52429 |  24.1716 |  43.8553  | 281.178   |
| -142006145100 | 807955 | Mars   |   12.5204 |    1.70888 |   8.52327 |    24.1746 | 8.52349 |  24.1754 |  30.4713  | 284.969   |
| -142006141500 | 807955 | Mars   |   12.5197 |    1.71446 |   8.52245 |    24.1781 | 8.5227  |  24.1793 |  17.3547  | 289.322   |
| -142006137900 | 807955 | Mars   |   12.5191 |    1.72004 |   8.52166 |    24.1816 | 8.5219  |  24.1831 |   4.71203 | 294.483   |
| -142006134300 | 807955 | Mars   |   12.5184 |    1.72562 |   8.52087 |    24.1851 | 8.52111 |  24.187  |  -7.62412 | 300.812   |
| -142006130700 | 807955 | Mars   |   12.5177 |    1.73122 |   8.52011 |    24.1886 | 8.52031 |  24.1908 | -18.9437  | 308.83    |
| -142006127100 | 807955 | Mars   |   12.517  |    1.73681 |   8.51935 |    24.1922 | 8.51951 |  24.1947 | -28.852   | 319.24    |
| -142006123500 | 807955 | Mars   |   12.5163 |    1.74242 |   8.51861 |    24.1959 | 8.51871 |  24.1985 | -36.5767  | 332.753   |
| -142006119900 | 807955 | Mars   |   12.5157 |    1.74803 |   8.51787 |    24.1997 | 8.5179  |  24.2024 | -41.0646  | 349.434   |'
Object Mars conditions:
'

Working with the sun and the moon

There are two special planetary objects, the Sun and the Moon. Although you can define them as if they where planets:

sun = montu.Planet('Sun')
moon = montu.Planet('Moon')

and as we did with planets, you can calculate positions and conditions:

mtime = montu.Time('-2500-01-01 12:00:00')
Tebas = montu.Observer(lon=33,lat=24)
moon.conditions_in_sky(at=mtime,observer=Tebas)
moon
Object Moon positions:
|            tt |    jed | Name   |   RAJ2000 |   DecJ2000 |   RAEpoch |   DecEpoch |   RAGeo |   DecGeo |      el |      az |
|---------------|--------|--------|-----------|------------|-----------|------------|---------|----------|---------|---------|
| -142006202700 | 807954 | Moon   |    13.119 |   -1.75958 |   9.19541 |    21.2138 | 9.20076 |  21.8977 | -44.543 | 353.683 |'
Object Moon conditions:
|            tt |    jed | Name   |      ha |   Vmag |   rise_time |   rise_az |   set_time |   set_az |   transit_time |   transit_el |   elongation |   earth_distance |   sun_distance | is_circumpolar   | is_neverup   |   angsize |   phase |   hlat |    hlon |   hlong |
|---------------|--------|--------|---------|--------|-------------|-----------|------------|----------|----------------|--------------|--------------|------------------|----------------|------------------|--------------|-----------|---------|--------|---------|---------|
| -142006202700 | 807954 | Moon   | 11.6783 |  -12.6 |      807954 |   67.2764 |     807954 |  294.859 |    2.41502e+06 |          360 |     -148.449 |       0.00255291 |       0.997457 | False            | False        |   1879.51 | 92.6462 | 5.0768 | 133.821 | 133.821 |'

There are additional methods, both proper and static, that can be used with these objects. For instance, you can:

  • calculate the time of twilight:
dusk_time, dawn_time = montu.Sun.when_is_twilight(day=mtime,observer=Tebas,sunbelow=-18)
Tebas.get_local_time(dusk_time), Tebas.get_local_time(dawn_time) 
('05:34:2.892', '18:55:22.138')
  • Get the date of solstices and equinoxes:
mtime = montu.Time('2023-01-01 12:00:00')
vernal, summer, autumn, winter = montu.Sun.next_seasons(at=mtime)

(
    montu.Time.get_date(vernal,format='mtime'),
    montu.Time.get_date(summer,format='mtime'),
    montu.Time.get_date(autumn,format='mtime'),
    montu.Time.get_date(winter,format='mtime'),
)
(Time('2023-03-20 21:24:15.1000'/'2023-03-20 21:24:24'/'hrw 4806-IV-Shemu-7'/JED 2460024.3918415/JTD 2460024.392691),
 Time('2023-06-21 14:57:55.5000'/'2023-06-21 14:57:57'/'hrw 4807-III-Akhet-5'/JED 2460117.123559/JTD 2460117.1244109),
 Time('2023-09-23 06:50:00.3000'/'2023-09-23 06:50:50'/'hrw 4807-II-Peret-9'/JED 2460210.7847257/JTD 2460210.7855787),
 Time('2023-12-22 03:27:09.3000'/'2023-12-22 03:27:27'/'hrw 4807-I-Shemu-9'/JED 2460300.6438576/JTD 2460300.6447118))
  • Get the lunar phases:
montu.Moon.next_moon_quarters(since=mtime,output='datepro')
{'full': ['2023-01-06 23:09:10.8000', 7.907907465007156, 5.46470835711807],
 'last': ['2023-01-15 02:11:35.3000', 8.126672363374382, 13.591380720492452],
 'new': ['2023-01-21 20:54:23.1000', 6.7797199985943735, 20.371100719086826],
 'first': ['2023-01-28 15:20:01.7000', 6.767808315809816, 27.138909034896642]}

An indepth example: evolution of polar stars

Choose from database all bright stars that according to wikipedia were or will be close to the celestial North pole:

star_names = ('Polaris','Vega','Thuban','Deneb','Alderamin','Kochab')
stars = stars.get_stars(ProperName=star_names)
stars
6 star(s):
|     |   MN |     HD |   HR |    HIP | Gl     | Name      | OtherDesignations                                                                   | ProperName   | Bayer   | Flamsteed   | Constellation   |   RAJ2000 |   DecJ2000 |   pmRA |   pmDec |   RadVel |   Distance |   Vmag |   Vmag_min |   Vmag_max |    B-V | SpType       |   Luminosity |     XJ2000 |     YJ2000 |    ZJ2000 |    VXJ2000 |   VYJ2000 |    VZJ2000 |   Primary |   MultipleID |   IsMultiple |   IsVariable |
|-----|------|--------|------|--------|--------|-----------|-------------------------------------------------------------------------------------|--------------|---------|-------------|-----------------|-----------|------------|--------|---------|----------|------------|--------|------------|------------|--------|--------------|--------------|------------|------------|-----------|------------|-----------|------------|-----------|--------------|--------------|--------------|
|   5 |    6 | 172167 | 7001 |  91262 | Gl 721 | Vega      | 3 Lyr/3Alp Lyr/Gl 721/HD 172167/HIP 91262/HR 7001/HYG 90978/MN 6/Vega/α Lyr         | Vega         | α Lyr   | 3 Lyr       | Lyr             |  18.6156  |    38.7837 | 201.02 |  287.46 |    -12.1 |     7.6787 |   0.03 |    nan     |    nan     | -0.001 | A0Vvar       |      49.9344 |   0.960565 |   -5.90801 |   4.80973 |  5.9e-07   | 1.734e-05 |  4.76e-06  |     90979 |          nan |            0 |            0 |
|  21 |   22 | 197345 | 7924 | 102098 | nan    | Deneb     | 50 Cyg/50Alp Cyg/Deneb/HD 197345/HIP 102098/HR 7924/HYG 101766/MN 22/α Cyg          | Deneb        | α Cyg   | 50 Cyg      | Cyg             |  20.6905  |    45.2803 |   1.56 |    1.55 |     -5   |   432.9    |   1.25 |      1.294 |      1.224 |  0.092 | A2Ia         |   51617.9    | 197.251    | -232.113   | 307.601   | -1.34e-06  | 6.62e-06  | -1.33e-06  |    101767 |          nan |            0 |            1 |
|  48 |   49 |   8890 |  424 |  11767 | nan    | Polaris   | 1 UMi/1Alp UMi/HD 8890/HIP 11767/HR 424/HYG 11734/MN 49/Polaris/α UMi               | Polaris      | α UMi   | 1 UMi       | UMi             |   2.52975 |    89.2641 |  44.22 |  -11.74 |    -17   |   132.626  |   1.97 |      1.993 |      1.953 |  0.636 | F7:Ib-IIv SB |    2495.74   |   1.3431   |    1.04763 | 132.615   | -1.748e-05 | 2.692e-05 | -1.171e-05 |     11734 |          nan |            0 |            1 |
|  59 |   60 | 131873 | 5563 |  72607 | nan    | Kochab    | 7 UMi/7Bet UMi/HD 131873/HIP 72607/HR 5563/HYG 72379/Kochab/MN 60/β UMi             | Kochab       | β UMi   | 7 UMi       | UMi             |  14.8451  |    74.1555 | -32.29 |   11.91 |     17   |    40.1445 |   2.07 |    nan     |    nan     |  1.465 | K4IIIvar     |     208.545  |  -8.05816  |   -7.42971 |  38.6194  |  1.736e-05 | 2.91e-06  | -6.11e-06  |     72380 |          nan |            0 |            0 |
|  91 |   92 | 203280 | 8162 | 105199 | Gl 826 | Alderamin | 5 Cep/5Alp Cep/Alderamin/Gl 826/HD 203280/HIP 105199/HR 8162/HYG 104860/MN 92/α Cep | Alderamin    | α Cep   | 5 Cep       | Cep             |  21.3096  |    62.5856 | 149.91 |   48.27 |    -11.5 |    15.0376 |   2.45 |    nan     |    nan     |  0.257 | A7IV-V       |      20.6253 |   5.27611  |   -4.4832  |  13.3488  | -8.82e-06  | 1.386e-05 |  5.7e-07   |    104861 |          nan |            0 |            0 |
| 351 |  352 | 123299 | 5291 |  68756 | nan    | Thuban    | 11 Dra/11Alp Dra/HD 123299/HIP 68756/HR 5291/HYG 68536/MN 352/Thuban/α Dra          | Thuban       | α Dra   | 11 Dra      | Dra             |  14.0732  |    64.3758 | -56.52 |   17.19 |    -13   |    92.9368 |   3.67 |    nan     |    nan     | -0.049 | A0III SB     |     256.094  | -34.416    |  -20.7588  |  83.7964  | -8.64e-06  | 2.838e-05 | -2.25e-06  |     68537 |          nan |            0 |            0 |

Now precess the position of all stars from -20 000 to 20 000 years from 2000:

import pandas as pd
import tqdm

now = montu.Time()
df = pd.DataFrame()
for dt in tqdm.tqdm(np.linspace(-20000*montu.YEAR,20000*montu.YEAR,1000)):
    past = now + dt
    pstars = stars.where_in_space(at=past)
    row = dict(tt = past.tt)
    for star in star_names:
        row.update({star:float(pstars[pstars.ProperName == star].DecEpoch)})
    df = pd.concat([df,pd.DataFrame([row])])
  0%|          | 0/1000 [00:00<?, ?it/s]100%|██████████| 1000/1000 [00:06<00:00, 145.08it/s]

Now plot declinations as a function of time:

import matplotlib.pyplot as plt
plt.ioff() # Used only for README generation

fig,ax = plt.subplots(figsize=(10,6))
for star in star_names:
    ax.plot(df['tt'],df[star],label=star)

ax.legend(loc='lower center',ncol=len(star_names))
ax.set_xlabel("Time [year]")
ax.set_ylabel("Declination [deg]")
ax.axvline(montu.Time().tt,lw=3)
ax.text(0.5,1.01,'Now',ha='center',transform=ax.transAxes)
ax.margins(0)
ax.set_xticks(np.linspace(df['tt'].min(),df['tt'].max(),14))
ax.grid()
montu.Time.set_time_ticks(ax)
montu.Util.montu_mark(ax)
fig.tight_layout()
fig.savefig('gallery/pole-stars.png')

Logo

Check date when star is close to the pole:

for star in star_names:
    imax = df[star].argmax()
    mtime = montu.Time(df.iloc[imax].tt).get_readable()
    print(f"Star {star} will be the closest to the pole at {mtime.readable.datespice} (declination {montu.D2H(df.iloc[imax][star])})")
Star Polaris will be the closest to the pole at 2083-11-29 08:05:31.4000 (declination 89:31:44.618)
Star Vega will be the closest to the pole at 11572 B.C. 12-16 16:50:41.700000 (declination 86:22:2.206)
Star Thuban will be the closest to the pole at 2803 B.C. 12-04 08:15:12.500000 (declination 89:55:33.463)
Star Deneb will be the closest to the pole at 14735 B.C. 09-20 20:22:12.800000 (declination 86:57:15.884)
Star Alderamin will be the closest to the pole at 7529-06-20 01:56:49.5000 (declination 87:58:41.195)
Star Kochab will be the closest to the pole at 1081 B.C. 09-06 16:22:47.100000 (declination 83:29:31.882)

Other example scripts

You will find a complete set of runable example notebooks –Colab notebooks– in the Google Drive public repository of MontuPython.

Advanced examples

Fully-fledged working examples:

What's new

Versions 0.9.*:

  • Major refactoring of inner machinery.
  • After many tests we decide to work with the algorithms in PyEphem with some support of PyMeeus/PyPlanets and minor usage of spiceypy.
  • Improvements on class Time to make it faster.
  • Generic class Sebau for celestial objects.
  • New classes Sun, Moon.
  • Complete example of Montunctions adapted to the new package architectures.
  • The general design of the package is maintained.
  • New functions for calculating Twilight time.
  • Juanita Agudelo has created a basic Dash app for interacting with the package that it is now included in repo (not in public package yet).
  • MontuApp has been developed in depth.
  • Lunar phases added.
  • Conversion gregorian/julian <-> civil egyptian has been implemented.

Versions 0.8.*:

  • Major refactoring of classes.
  • New class Heka, intended to perform calculations.
  • New plot of positions in a stereographic projection with respect to the Horizon.
  • Now horizontal coordinates of planet and star can be computed.
  • New stellar catalogue incorporated to the planet.
  • Classes were divided in modules (stars, planets, observer, etc.)
  • README has been converted into a notebook.

Versions 0.7.*:

  • A Google Drive repository with examples was created.
  • More interesting examples added.
  • A new class SkyCoordinates allows to precess coordinates of any set of objects.
  • Star catalogue coordinates are now given in J2000.
  • Some improvements in the `plot_stars`` method.
  • A new sid_to_tai for MonTime class for calculating the ratio of sidereal to TAI time.

Versions 0.6.*:

  • Refactor of MonTime class.
  • Corrected a problem with tt during the years 300-1582.
  • General cleaning of the package.
  • Kernels are separated into basic kernels (which are automatically loaded).
  • Julian day dates are rounded-up to 7 figures to avoid representation artifacts.
  • Package now load ALL_STARS from import.

Versions 0.5.*:

  • New properties (distances, phase angle, magnituded) added to PlanetaryBody class method.
  • Solved the DEBUG problem.
  • First fully-fledge working script, yay!
  • MonTime class is now able to produce dates in all relevant calendars and formats.
  • Verified ephemerides calculations for planets.
  • Major improvements of all functionalities.

Version 0.1.*:

  • First classes created and tested with study case.
  • A proper identifying image of the project has been found.
  • The project is started!

This package has been designed and written mostly by Jorge I. Zuluaga with the historical advise of egyptologist Francisco "Tito" Vivas, and contributions by Juanita Agudelo (C) 2023