2016-07-07 11 views
0

Если вы просто создать FixedObject и дать ему набор координат, а затем попросить их обратно вы получите другую позицию:Почему я не могу получить одну и ту же координату с pyephem?

>>> import ephem 
>>> TestStar = ephem.FixedBody() 
>>> TestStar._ra, TestStar._dec = '12:43:20', '-45:34:12' 
>>> TestStar.compute() 
>>> print TestStar.ra, TestStar.dec 
12:44:15.34 -45:39:46.8 

теперь я понимаю, что это происходит потому, что, как описано, то FixedBody является по умолчанию в эпоху J2000, однако эпоха наблюдателя по умолчанию - это момент, когда указанный наблюдатель создан, и кажется, что это значение по умолчанию, когда вы не указываете наблюдателя.

Однако, если я пытаюсь компенсировать это:

>>> TestStar4 = ephem.FixedBody() 
>>> TestStar4._ra, TestStar4._dec, TestStar4._epoch = '12:43:20', '-45:34:12', '2000/01/01 12:00:00' 
>>> TestSite2 = ephem.Observer() 
>>> TestSite2.lat, TestSite2.lon, TestSite2.date = 0,0,'2000/01/01 12:00:00' 
>>> TestStar4.compute(TestSite2) 
>>> print TestStar4.ra, TestStar4.dec 
12:43:19.42 -45:33:51.9 

Вы получаете почти идентичную RA, но декабрь, который отличается от 20 угловых секунд для этого примера.

Я специально пытаюсь получить координаты J2000 некоторых звезд в каталоге WEBDA, которые обеспечивают относительные координаты для большинства звезд.

Для примера см это случайное скопление: http://www.univie.ac.at/webda/cgi-bin/frame_list.cgi?ic0166

«координаты J2000» имеет только информацию о 9 звезд и почти все звезды имеют информацию в «XY позиции» ссылку. Центр и масштаб этих позиций XY немного произвольны, но их можно найти на сайте.

Однако, если вы не знаете, почему разница в координатах 20 arcsecond существует, я не знаю, когда моя система потерпит неудачу.

ответ

0

Хорошо, на данный момент я предполагаю, что расхождение связано с некоторым поправочным коэффициентом. Я знаю, что теперь я хочу использовать Астрометрическую геоцентрическую позицию, так:

>>> import ephem 
>>> TestStar = ephem.FixedBody() 
>>> TestStar._ra, TestStar._dec = '12:43:20', '-45:34:12' 
>>> TestStar.compute() 
>>> print TestStar.a_ra, TestStar.a_dec 
12:43:20 -45:34:12 

достаточно просто (просто не понял, что часть руководства, извините).

Мне все еще интересно, какая из всех поправок повлияет на это в основном, но я могу продолжать, не зная пока.