コード例 #1
0
ファイル: meeus.py プロジェクト: mcoatanhay/meeuscalc
def coordonnees_moyennes_rigoureuses(HR, A):
    """
        Calcul rigoureux des coordonnées moyennes de l'étoile:
            en ascenscion droite
            et en déclinaison de
        pour l'année A.
        Entrée :
            HR = numéro de l'étoile
            A = Année
        Sortie :
            dictionnaire :
            'calculs' = calculs intermédiaires pour débogage
            'RAf (°)' = ascension droite (°) de 0 à 360°
            'DEf (°)' = déclinaison (°) de -90 à +90°
    """
    calculs = []
    resultat = {}
    data = etoiles.etoile_data(HR)
    pmRA = incert.it(data.pmRA, 0) / 1000
    calculs.append({'pmRA (as/y)': pmRA})
    pmDE = incert.it(data.pmDE, 0) / 1000
    calculs.append({'pmDE (as/y)': pmDE})
    alpha = int(data.RAh) + incert.i(int(data.RAm)) / 60
    alpha += incert.i(data.RAs) / 3600
    alpha *= 15
    calculs.append({'RA0 (°)': alpha})
    delta = int(data.DEsgn + data.DEd) + incert.i(int(data.DEm)) / 60
    delta += incert.i(data.DEs) / 3600
    calculs.append({'DEC0 (°)': delta})
    deltaA = incert.it(A - 2000, 0)
    calculs.append({'DeltaA (année)': deltaA})
    alpha1 = (alpha + pmRA * deltaA / 3600) * incert.pi / 180
    calculs.append({'alpha1 (°)': alpha1})
    delta1 = (delta + pmDE * deltaA / 3600) * incert.pi / 180
    calculs.append({'delta1 (°)': delta1})
    t = deltaA / 100
    calculs.append({'t (siècle)': t})
    dzeta = (("2306.2181" * t + "0.30188" * t**2 + "0.017998" * t**3) /
             3600) * incert.pi / 180
    zed = (("2306.2181" * t + "1.09468" * t**2 + "0.018203" * t**3) /
           3600) * incert.pi / 180
    theta = (("2004.3109" * t + "0.42665" * t**2 + "0.041833" * t**3) /
             3600) * incert.pi / 180
    A = incert.cos(delta1) * incert.sin(alpha1 + dzeta)
    B = incert.cos(theta)*incert.cos(delta1)*incert.cos(alpha1 + dzeta) \
        - incert.sin(theta)*incert.sin(delta1)
    C = incert.sin(theta)*incert.cos(delta1)*incert.cos(alpha1 + dzeta) \
        + incert.cos(theta)*incert.sin(delta1)
    delta = incert.asin(C)
    calculs.append({'delta (°)': delta})
    alpha = incert.atan2(A, B) + zed
    if (alpha.valeur < 0):
        alpha += 2 * incert.pi
    calculs.append({'alpha (°)': alpha})
    resultat['calculs'] = calculs
    resultat['RAf (°)'] = alpha * 180 / incert.pi
    resultat['DEf (°)'] = delta * 180 / incert.pi
    return resultat
コード例 #2
0
ファイル: meeus.py プロジェクト: mcoatanhay/meeuscalc
def coordonnees_moyennes2(HR, A):
    """
        Calcul les coordonnées moyennes de l'étoile:
            en ascenscion droite
            et en déclinaison de
        pour l'année A première méthode matricielle.
        Entrée :
            HR = numéro de l'étoile
            A = Année
        Sortie :
            dictionnaire :
            'calculs' = calculs intermédiaires pour débogage
            'RAf (°)' = ascension droite (°) de 0 à 360°
            'DEf (°)' = déclinaison (°) de -90 à +90°
    """
    calculs = []
    resultat = {}
    data = etoiles.etoile_data(HR)
    pmRA = incert.it(data.pmRA, 0) / 1000
    calculs.append({'pmRA (as/y)': pmRA})
    pmDE = incert.it(data.pmDE, 0) / 1000
    calculs.append({'pmDE (as/y)': pmDE})
    alpha = int(data.RAh) + incert.i(int(data.RAm)) / 60
    alpha += incert.i(data.RAs) / 3600
    alpha *= 15
    calculs.append({'RA0 (°)': alpha})
    delta = int(data.DEsgn + data.DEd) + incert.i(int(data.DEm)) / 60
    delta += incert.i(data.DEs) / 3600
    calculs.append({'DEC0 (°)': delta})
    deltaA = incert.it(A - 2000, 0)
    calculs.append({'DeltaA (année)': deltaA})
    S = deltaA / 100
    calculs.append({'S (siècle)': S})
    DS = deltaA / 1000
    calculs.append({'DS (deca siècle)': DS})
    RA1 = alpha + pmRA * deltaA / 3600
    calculs.append({'RA1 (°)': RA1})
    DE1 = delta + pmDE * deltaA / 3600
    calculs.append({'DE1 (°)': DE1})
    psi1 = RA1 * incert.pi / 180
    phi1 = DE1 * incert.pi / 180
    U1 = coord.xyzdepolaire(psi1, phi1, incert.un)
    calculs.append({'U1 (m)': U1})
    parametres = coord.parametres_precession(DS)
    calculs += parametres['calculs']
    U2 = coord.rotation3(-(parametres['zeta (")'] / 3600) * (incert.pi / 180),
                         U1)
    U3 = coord.rotation2((parametres['theta (")'] / 3600) * (incert.pi / 180),
                         U2)
    Uf = coord.rotation3(-(parametres['z (")'] / 3600) * (incert.pi / 180), U3)
    (psif, phif, rf) = coord.polairedexyz(Uf)
    if (psif.valeur < 0):
        psif += incert.pi * 2
    resultat['calculs'] = calculs
    resultat['RAf (°)'] = psif * 180 / incert.pi
    resultat['DEf (°)'] = phif * 180 / incert.pi
    return resultat
コード例 #3
0
ファイル: test_coord.py プロジェクト: mcoatanhay/coordonnees
 def test_parametres_precession(self):
     afficher_calculs = False
     reponses = {
     'epsilon (")': 84371.1487,
     'omega (")': 84381.4448,
     'psi (")': 1108.4134,
     'khi (")': 2.2063,
     'theta (")': 440.9273,
     'zeta (")': 507.3828,
     'z (")': 507.4212}
     t = incert.it(22/1000, 0)
     resultat = parametres_precession(t)
     if afficher_calculs:
         print()
         print("----------- test_parametres_precession")
         for ligne in resultat['calculs']:
             print(ligne)
         print('epsilon (") :', resultat['epsilon (")'])
         print('omega (") :', resultat['omega (")'])
         print('psi (") :', resultat['psi (")'])
         print('khi (") :', resultat['khi (")'])
         print('theta (") :', resultat['theta (")'])
         print('zeta (") :', resultat['zeta (")'])
         print('z (") :', resultat['z (")'])
     del resultat['calculs']
     self.assertEqual(reponses, resultat)
コード例 #4
0
ファイル: meeus.py プロジェクト: mcoatanhay/meeuscalc
def coordonnees_moyennes(HR, A):
    """
        Calcul approximatif des coordonnées moyennes de l'étoile:
            en ascenscion droite
            et en déclinaison de
        pour l'année A.
        Entrée :
            HR = numéro de l'étoile
            A = Année
        Sortie :
            dictionnaire :
            'calculs' = calculs intermédiaires pour débogage
            'RAf (°)' = ascension droite (°) de 0 à 360°
            'DEf (°)' = déclinaison (°) de -90 à +90°
    """
    calculs = []
    resultat = {}
    data = etoiles.etoile_data(HR)
    calculs.append({'pmRA (mas/y)': data.pmRA})
    pmRA = incert.i(data.pmRA) / (15 * 1000)
    calculs.append({'pmRA (s/y)': pmRA})
    calculs.append({'pmDE (mas/y)': data.pmDE})
    pmDE = incert.i(data.pmDE) / 1000
    calculs.append({'pmDE ("s/y)': pmDE})
    alpha = int(data.RAh) + incert.i(int(data.RAm)) / 60
    alpha += incert.i(data.RAs) / 3600
    alpha *= 15
    calculs.append({'RA0 (°)': alpha})
    delta = int(data.DEsgn + data.DEd) + incert.i(int(data.DEm)) / 60
    delta += incert.i(data.DEs) / 3600
    calculs.append({'DEC0 (°)': delta})
    deltaA = incert.it(A - 2000, 0)
    calculs.append({'DeltaA (année)': deltaA})
    S = deltaA / 100
    calculs.append({'S (siècle) ': S})
    parametres = parametres_precession(S)
    m_alpha = parametres['m_alpha (s)']
    n_alpha = parametres['n_alpha (s)']
    n_delta = parametres['n_delta (")']
    calculs.append({'m_alpha (s)': m_alpha})
    calculs.append({'n_alpha (s)': n_alpha})
    calculs.append({'n_delta (")': n_delta})
    precRA = n_alpha * incert.sin(incert.pi * alpha / 180)
    precRA *= incert.tan(incert.pi * delta / 180)
    precRA += m_alpha
    calculs.append({'precRA (s)': precRA})
    precDE = n_delta * incert.cos(incert.pi * alpha / 180)
    calculs.append({'precDE (")': precDE})
    varRA = precRA + pmRA
    calculs.append({'varRA (s)': varRA})
    varDE = precDE + pmDE
    calculs.append({'varDE (")': varDE})
    calculs.append({'delta A (an)': deltaA})
    varRAtot = varRA * deltaA
    calculs.append({'varRAtot (s)': varRAtot})
    varDEtot = varDE * deltaA
    calculs.append({'varDEtot (")': varDEtot})
    RAf = alpha + varRAtot * 15 / 3600
    calculs.append({'RAf (°)': RAf})
    DEf = delta + varDEtot / 3600
    calculs.append({'DEf (°)': DEf})
    resultat['calculs'] = calculs
    resultat['RAf (°)'] = RAf
    resultat['DEf (°)'] = DEf
    return resultat