
import numpy
from matplotlib.pyplot import *
import re
import os
from scipy.integrate import odeint

class Kepler:
    def __init__(self):
        self.epsilon = 1e-6
        f=open("elementsPlanetes.txt","r")
        self.a={}
        self.e={}
        self.I={}
        self.L={}
        self.Lperi={}
        self.Lnode={}
        self.da={}
        self.de={}
        self.dI={}
        self.dL={}
        self.dLperi={}
        self.dLnode={}
        lines = f.readlines()
        n=3
        for p in range(9):
            ligne1 = re.split("[\s]+",lines[n])
            ligne2 = re.split("[\s]+",lines[n+1])
            n += 2
            nom = ligne1[0]
            print(nom)
            self.a[nom] = float(ligne1[1])
            self.e[nom] = float(ligne1[2])
            self.I[nom] = float(ligne1[3])
            self.L[nom] = float(ligne1[4])
            self.Lperi[nom] = float(ligne1[5])
            self.Lnode[nom] = float(ligne1[6])
            self.da[nom] = float(ligne2[1])
            self.de[nom] = float(ligne2[2])
            self.dI[nom] = float(ligne2[3])
            self.dL[nom] = float(ligne2[4])
            self.dLperi[nom] = float(ligne2[5])
            self.dLnode[nom] = float(ligne2[6])
            
        f.close()
        self.lettre = {'Mercury':'M','Venus':'V','Earth':'T','Mars':'Ma','Jupiter':'J','Saturn':'S','Uranus':'U','Neptune':'N','Pluto':'P'}
        self.deg2rad = numpy.pi/180
        self.rad2deg = 180/numpy.pi

        self.masse={}
        self.masse["Mercury"] = 1.0/6023600.0
        self.masse["Venus"] = 1.0/408523.5
        self.masse["Earth"] = 1.0/328900.5
        self.masse["Mars"] = 1.0/3098710.0
        self.masse["Jupiter"] = 1.0/1047.355
        self.masse["Saturn"] = 1.0/3498.5
        self.masse["Uranus"] = 1.0/22869.0
        self.masse["Neptune"] = 1.0/19314.0
        k = 0.01720209895 # constante de Gauss 
        self.k2 = k*k

        # cometes
        self.comete_dj={}
        self.comete_Yi={}
        self.comete_e={}
        self.comete_nom={}
        f = open("ELTNOM.TXT","r")
        #g = open("cometes.txt","w")
        lines = f.readlines()
        for n in range(0,len(lines),9):
            ligne1 = re.split("[\s]+",lines[n])
            ligne2 = re.split("[\s]+",lines[n+1])
            ligne3 = re.split("[\s]+",lines[n+2])
            ligne4 = re.split("[\s]+",lines[n+3])
            ligne6 = re.split("[\s]+",lines[n+5])
            code =lines[n][17:25]
            code=code.replace(" ","")
            dj = float(ligne2[0])
            self.comete_dj[code] = dj
            self.comete_Yi[code] = [float(ligne3[0]),float(ligne3[1]),float(ligne3[2]),float(ligne4[0]),float(ligne4[1]),float(ligne4[2])]
            nom = lines[n][27:56]
            nom=nom.replace(" ","")
            e = float(ligne6[2])
            self.comete_nom[code] = nom
            self.comete_e[code] = e
            #g.write("%s\t%s\t DJ=%0.1f\t e=%0.3f\n"%(code,nom,dj,e))
        #g.close()
        f.close()
    def dateJulienne(self,annee,mois,jour,heure):
        pass
    def t(self,DJ):
        pass
    def equationKepler(self,e,M,epsilon):
        pass
    def position_xy(self,planete,t):
        pass
    def ellipse_xy(self,planete,t,N=1000):
        pass
    def xy_XYZ(self,planete,t,x,y):
        pass
    def position_XYZ(self,planete,t):
        pass
    def ellipse_XYZ(self,planete,t,N=1000):
        pass
              