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)) |
Partager