IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Mouvement rétrograde de Mars (python)


Sujet :

Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    étudiant en physique à l'université
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : étudiant en physique à l'université

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut Mouvement rétrograde de Mars (python)
    bonsoir à tous!

    j'ai un devoir à rendre pour demain et cela concerne le mouvement rétrograde de Mars.
    Avec un fichier DataMars.csv qui contient les coordonnées (longitude et latitude) de la position de Mars par rapport au centre de la Terre en fonction de la date entre 2015 et 2017. Notons que la latitude est définie ici par rapport au plan de l'écliptique.
    Le centre de la boucle peut s'observer à la date du 25 mai 2016, à la longitude de 240.5°.
    ils nous demandent ensuite d'utiliser un modèle bidimensionnel du mouvement de la Terre et de Mars autour du Soleil. On considérera le mouvement des deux planètes comme circulaire uniforme et contenu dans le plan de l'écliptique. Ce modèle nous permettra de calculer la longitude de Mars vue depuis la Terre (i.e. l'angle phi dans le réferentiel géocentrique) en fonction du temps.

    Donc avec le fichier csv j'ai créé un data frame puis en ai extrait la colonne contenant seulement les dates du 01 janvier 2016 au 1er novembre 2016 que j'ai affectée à un tableau qui s'appelle dates et j'ai fait la même chose avec la colonne contenant la longitude que j'ai affectée à un tableau xAstro, j'ai plot les deux et j'obtiens une belle courbe avec le mouvement rétrograde de Mars, t en abscisses et la longitude en ordonnées.
    Maintenant mon problème c'est que je n'arrive pas à reproduire la même courbe pendant le même intervalle de temps avec seulement les équations du mouvement circulaire uniforme et la définition du phi apparent. Je sais que je dois le plot en fonction du temps mais je ne sais pas trop comment m'y prendre...
    j'ai créé un tableau t allant de 0s à 26374118.4s le nombre de secondes entre le 1er janvier 2016 et le 1er novembre 2016 et je ne sais pas comment me servir du phi...

    je vous montre mon code, si quelqu'un pouvait m'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    #Importation de nos divers modules
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import math as mt
    from math import cos
    from math import sin
    from math import atan2
    from math import pi
    from datetime import datetime
    import time
     
    """
    2016-04-18 le début de la boucle, longitude décroit
    2016-05-25 centre de la boucle, planètes alignées
    2016-07-02 fin de la boucle, longitude croît
    """
     
    "ouverture du fichier .csv et création du panda dataframe"
    données_astronomiques=pd.read_csv('DataMars.csv') #, comment='#')
     
    #print('ndim :', données_astronomiques.ndim)
    #print('shape :', données_astronomiques.shape)
    #print('size :', dates.size)
    #print(type(dates))#nous indique de quel type il est
    #Affichage des n premières lignes
    #print(dates.head(0,)) 
    #print(données_astronomiques.shape)#taille de notre panda dataframe
    #print(données_astronomiques.columns)#nous affiche les noms des colonnes
    #print(données_astronomiques.loc[306:610,'Date'])#selection des éléments à partir du 1er janvier 2016 jusqu'au 1er Novembre 2016 pour bien visualiser le mouvement rétrograde
     
     
    "Données astronomiques"
     
    # Colonne Date du csv dans un tableau tAstro
    #tAstro=données_astronomiques.loc[306:610,'Date']#attribution de l'intervalle de temps à une nouvelle variable plus simple à manipuler dans le code python
    dates=données_astronomiques['Date']
    #tAstro_calendrier=np.linspace('2016-01', '2016-11', dtype='datetime64[Y]')#création tableau avec tous les jours du mois de janvier jusqu'à novembre
     
    # Colonne Longitude du csv dans un tableau xAstro
    #xAstro=données_astronomiques.loc[306:610,'Longitude']#attribution de l'intervalle longitudinal où se produit le mouvement rétrograde
    #plt.plot(tAstro,xAstro,'r-',linewidth=3,label = 'data')
    #plt.ylim(200,300)
    #plt.ylabel('Longitude [°]')
    #plt.xlabel('date')
    #plt.margins(0,0)
    #plt.show()
     
    "Modèle du mouvement circulaire uniforme de la Terre et de Mars dans le référentiel héliocentrique"
     
    # Données de l'énoncé
    rayon_orbitalTerre=1.496e11 #m (1*UA)
    rayon_orbitalMars=2.279438e11 #m(1.52371*UA)
    Trevolution_Terre=31558118.4 #s(60*60*24*365.256)
    Trevolution_Mars= 59346864 #s(60*60*24*686.885)
     
    t0=0 ; tf=26374118.4 ; pas=86400 ; intervalle = tf - t0
    num_points = int(intervalle / pas) + 1 # nombre d'éléments
    t = np.linspace(t0, tf, num_points)
     
    #t_modèle=26373254400 #s (nombre de secondes du 2016/01/01 au 2016/11/01)
     
    # Vitesses angulaires de le Terre et de Mars
    wTerre=2*np.pi/Trevolution_Terre #rad/s
    wMars=2*np.pi/Trevolution_Mars #rad/s
    phi_0x=2*np.pi
    phi_0y=np.pi
     
    # Coordonnées de la Terre dans le référentiel héliocentrique
    xTerre=rayon_orbitalTerre*np.cos(wTerre*t +phi_0x)
    yTerre=rayon_orbitalTerre*np.sin(wMars*t +phi_0y)
     
    # Coordonnées de Mars dans le référentiel héliocentrique
    xMars=rayon_orbitalMars*np.cos(wTerre*t +phi_0x)
    yMars=rayon_orbitalMars*np.sin(wMars*t +phi_0y)
     
     
    # Expression de phi_apparent 
    phi_apparent=atan2((yMars-yTerre),(xMars-xTerre))
    #plt.plot(t, phi_apparent, label = 'model')
     
    print(type(phi_apparent))
    print(type(t))

    Donc avec les données expérimentales j'arrive bien à afficher la courbe rouge mais je n'arrive pas à ploter la bleue...
    Images attachées Images attachées     

Discussions similaires

  1. Aide script Python mouvement de souris
    Par Tinqq dans le forum Raspberry Pi
    Réponses: 0
    Dernier message: 11/03/2019, 19h26
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59
  4. [FLASH MX]le mouvement et les sacades
    Par VincentB dans le forum Flash
    Réponses: 6
    Dernier message: 16/01/2004, 23h42
  5. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo