Precession, Proper Motion, and Epochs for Ancient or Future Observers

461 views Asked by At

I have a question regarding epochs. I want to show the night sky as a super-ancient observer would see it or someone in the far flung future. Should I set the year and epoch to be the same?

The three scenarios outlined in Brandon Rhodes Halley Comet example are as follows.

  1. my_star.compute(epoch='-100000')
  2. my_star.compute(-100000',epoch='-100000')
  3. my_star.compute('-100000')

To me, based on his descriptions of equatorial telescopes and the second example's description of a contemporary observer in 1066, I believe I should choose the second option. That is, to set both epoch and year to the ancient or future years.

halley.compute(epoch='1066')
This is probably useless: it computes the current position of halley, but returns coordinates relative to the direction the earth’s axis was pointing in the year 1066. Unless you use a Conquest-era star atlas, this is not useful.

halley.compute('1066', epoch='1066')
This is slightly more promising: it computes the position of halley in 1066 and returns coordinates for the orientation of the earth in that year. This might help you visualize how the object was positioned above contemporary observers, who considered it an ill omen in the imminent conflict between King Harold of England and William the Bastard. But to plot this position against a background of stars, you would first have to recompute each star’s position in 1066 coordinates.

halley.compute('1066')
This is what you will probably use most often; you get the position of halley in the year 1066 but expressed in the 2000 coordinates that your star atlas probably uses.

Why I am so unsure on the depictions I got are because Ian Ridpath, and Rick Pogge got different results. Links for these relevant results are posted in the github issue. Rick says he is also corroborated by results from StarryNight. I don't mind if I am wrong, I just see the Halley example that I think is choicest clashing with results by a few people.

I can't post many links on stackoverflow yet (or images!), but I was very thorough in documenting in my github issue for this at https://github.com/brandon-rhodes/pyephem/issues/61. I just wanted to be very clear on what I am looking for and show you the possible scenarios.

If you would like two working IPython notebooks to test, please see Part1: proper-motion.ipynb and Part2: big-dipper.ipynb in my notebooks folder on github.

There's a lot of code in the big-dipper.ipynb example, so I wont post it in the tracker, but I'll make a blog post on it soon. Please see the github issue link above for all of the code and images!

I believe that the Varying Epoch and Year Together depiction is the one I want regarding an ancient observer seeing the night sky in his perspective, and a futuristic observer seeing the night sky in his own perspective. This is rather hard to comprehend sometimes, so I would absolutely love some community input on this subject.

Here is the smaller portion of code. The big-dipper.ipynb notebook shows more thorough scenarios.

%pylab inline
import ephem

UMa = {
'dubhe': 'αUMa', #HIP 54061
'merak': 'βUMa', #HIP 53910
'phecda':'γUMa', #HIP 58001
'megrez':'δUMa', #HIP 59774
'alioth':'εUMa', #HIP 62956
'mizar': 'ζUMa', #HIP 65378
'alcor': '80UMa',#HIP 65477
'alcaid':'ηUMa', #HIP 67301
}

def const(const,year=None,epoch='2000',title=None):
    s = []

    for star in const.keys():
        s.append(ephem.star(star.capitalize()))
    
    for i in range(len(s)):
        if(year!=None):
            s[i].compute(year,epoch=epoch)
        else:
            s[i].compute(epoch=epoch)
    
    tau = 2.0 * pi
    degree = tau / 360.0
    hour = tau / 24.0

    ra_list = [star.a_ra / hour for star in s]
    dec_list = [star.a_dec / degree for star in s]

    mag_array = np.array([star.mag for star in s])
    size_array = (5 - mag_array) ** 1.5 * 4

    scatter(ra_list,dec_list,size_array)
    if(title!=None):
        pyplot.title(title)
    gca().xaxis.grid(True)
    gca().yaxis.grid(True)
    gca().invert_xaxis()
    return s
1

There are 1 answers

0
electricwizard On BEST ANSWER

We should vary epoch and time together if I want to emulate an ancient observer or a futuristic observer on earth.

Answered in the issue tracker.

Thank you for the help :)