2013-04-30 8 views
8

MINOR DÜZENLEME: Aşağıda, JPL'nin Horizons kütüphanesinin açık kaynak olmadığını söylüyorum. Aslında, ve burada kullanılabilir: J2000 doğru yükselmeyi Epoch'tan ne 0 derece doğu enlem http://naif.jpl.nasa.gov/naif/tutorials.htmlpyephem, libnova, stellarium, JPL Horizons ay RA/DEC konusunda katılmıyorum?

2013-01-01 00:00:00 UTC 0 derecede kuzey enlem, deniz seviyesi yükselmesi, ve ayın düşüşü? Ne yazık ki, farklı kütüphaneler biraz farklı cevaplar veriyorlar. dereceye Dönüştürülen, özetlenmiş sonuçları (RA ilk):

Stellarium: 141.9408333000, 9.8899166666 [precision: .0004166640, .0000277777] 
Pyephem: 142.1278749990, 9.8274722221 [precision .0000416655, .0000277777] 
Libnova: 141.320712606865, 9.76909442356909 [precision unknown] 
Horizons: 141.9455833320, 9.8878888888 [precision: .0000416655, .0000277777] 

Sorum: neden? Notlar:

  • Ben bu farklılıkların küçük farkındayım ama:

    • Ben güneş/ay yükselişi/set hesaplamak için pyephem ve libnova kullanın ve bu kez de pozisyona çok hassas olabilir daha yüksek enlemler (örn. gece yarısı güneşi).

    • JPL'nin Ufuklar kütüphanesinin açık kaynak olmamasını, , ancak diğer üçünü anlıyorum. Birisi bu kütüphanelerdeki farklılıklarını çalıştırmamalı ve bunları birleştirmemeli mi? Bu benim ana şikayetim. Stellarium/pyephem/libnova kütüphanesi yazarlarının bu hesaplamaları nasıl yapabilecekleri konusunda temel bir fark var mı? sadece kodlarını birleştirmek için mi ihtiyaçları var? Ayrıca hesaplamalar farklı olan başka nedenler olabilir gerçekleştirmek ve bu olası hataları giderildikten herhangi bir yardım takdir ediyorum

  • :

    • Pyephem ve Libnova çağı ait kullanıyor olabilir

      J2000

    • yerine tarih Bu gözlemcinin konumu RA/DEC (paralaks etkisi) etkileyebilecek kadar yakındır.

    • Bu kütüphanelerin orijinal C uygulamalarını değil, Perl'in Astro :: Nova ve Python's pyephem kullanıyorum. Ancak, bu farkları Perl/Python kullanarak neden olursa, bu benim düşüncemde önemlidir.

  • My kodu (ham sonuçlar/ağırlık):

    • Birinci, Perl ve Astro :: Nova:
 

#!/bin/perl 

# RA/DEC of moon at 0N 0E at 0000 UTC 01 Jan 2013 
use Astro::Nova; 
# 1356998400 == 01 Jan 2013 0000 UTC 
$jd = Astro::Nova::get_julian_from_timet(1356998400); 
$coords = Astro::Nova::get_lunar_equ_coords($jd); 
print join(",",($coords->get_ra(), $coords->get_dec())),"\n"; 

RESULT: 141.320712606865,9.76909442356909 
- Second, Python and pyephem: 
 
#!/usr/local/bin/python 

# RA/DEC of moon at 0N 0E at 0000 UTC 01 Jan 2013 
import ephem; e = ephem.Observer(); e.date = '2013/01/01 00:00:00'; 
moon = ephem.Moon(); moon.compute(e); print moon.ra, moon.dec 

RESULT: 9:28:30.69 9:49:38.9 

enter image description here

- The JPL Horizons result (snapshot): 

[JPL Horizons (gerçekten, ama taklit) POST veri gerektirir, bu yüzden bir URL gönderemedik].

  • Onları (tembel) bağlı değilse, ama benim kendi sorulardan bazıları dahil olmak üzere birçok cevapsız etkin bir bu soruyu (hassas astronomik kütüphanelerin tutarsızlık) azaltabilir stackoverflow sorular, olduğuna inanıyorum

    . Ben Stellarium ne yaptığını hiçbir fikri https://github.com/barrycarter/bcapps/tree/master/ASTRO

cevap

9

, ama ben diğer üçüne hakkında bilmek düşünüyorum:

  • Ben bu şeyler w oynuyorum. Bu ufak, yerele özgü gözlem için yalnızca Ufuklar'ın J2000'i tarih çağının yerine kullanması konusunda haklısınız. Bir sonraki "Tablo Ayarları" için "değiştir" tıklayıp "1. Astrometrik RA & Aralık" den geçerek PyEphem ile yakın anlaşma getirebilir "2. Görünür RA & Aralık"

    Libnova ile fark biraz daha zor, ama benim geceliğim tahminim Libnova'nın Ephemeris Time yerine UT kullandığı ve PyEphem'in bir kereden diğerine dönüştürmek için aynı cevabı vermesini sağlamak için:

    import ephem 
    moon, e = ephem.Moon(), ephem.Observer() 
    e.date = '2013/01/01 00:00:00' 
    e.date -= ephem.delta_t() * ephem.second 
    moon.compute(e) 
    print moon.a_ra/ephem.degree, moon.a_dec/ephem.degree 
    

    Bu çıkışlar:

    , en azından eskiye göre çok daha yakın olduğunu
    141.320681918 9.77023197401 
    

    . Ufukça sorduğunuz gibi kırılmaların göz ardı edilmesini istiyorsanız, bunu PyEphem kodunuzda yapmak isteyebileceğinizi de unutmayın; nedeniyle; (şu an beni gerçekleşmiyor hatanın diğer kaynaklar olabilir kesinlikle değil)

    e.pressure = 0 
    

    Herhangi artık fark muhtemelen: Bu özel gözlem için ben herhangi bir fark yaratmak görmüyorum gerçi gezegenlerin nerede olacağını tahmin etmek için farklı formüller kullanan farklı programlar. PyEphem eski ama popüler VSOP87 kullanır. Ufuklar çıktılarında belirtildiği gibi çok daha yakın - ve tam olarak - DE405 ve DE406'yı kullanır. Diğer ürünlerin kullandığı güneş sistemi modellerini bilmiyorum.

  • +0

    Bu muhteşem, teşekkürler! Söylediğin her şeyi kontrol etmedim ama birazdan – barrycarter