Está en la página 1de 33

#!

/usr/bin/python
#calcula datos astronomicos de pyephem, necesita tkinter,pyephem,math y sys
from sys import exit
from Tkinter import *
from math import sin,cos,tan,asin,acos,atan2,atan,pi,log
import ephem
class Eti: #etiqueta o label
def __init__(self,marco,texto,color,fila,columna):
self.marco,self.texto,self.color,self.fila,self.columna=marco,texto,color,fila,columna
label=Label(marco,text=texto,bg=color)
label.grid(row=fila,column=columna)
return
def Entra(marco,num,entrada,fila,columna):#entrada entry
nombre=Entry(marco)
nombre.grid(row=fila,column=columna)
nombre.insert(num,entrada)
return nombre
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
def jdyjde(a,m,d,h,mi,s): #define el dia juliano y el jde de una fecha
anno=a
mess=m
#correcciones enero y febrero
if m<3:
ano=a-1
mes=m+12
if m>=3:
ano=a
mes=m
#definiciones
dia1=float(d)+(h/24.0)+(mi/1440.0)+(s/86400.0) #dia con decimales
ano1=int(ano/100.0)
bano1=2-ano1+int(ano1/4.0)
JD=0.0
#distincion entre juliano(hasta 14_10_1582) o gregoriano
corte=1582.0+(10.0/12.0)+(14.0/365.0)
distincion=float(ano)+(mes/12.0)+(d/365.0)
if distincion<corte:
bano1=0
#calculo
JD=int(365.25*(ano+4716))+int(30.6001*(mes+1))+dia1+bano1-1524.5
#deltat
y=anno+(mess-0.5)/12.0
if anno<-500:
u=(anno-1820)/100.0
dt=-20+32.0*u**2

elif -500<=anno<500:
u=y/100.0
dt=10583.6-1014.41*u+33.78311*u**2-5.952053*u**30.1798452*u**4+0.022174192*u**5+0.0090316521*u**6
elif 500<=anno<1600:
u=(y-1000.)/100.
dt=1574.2-556.01*u+71.23472*u**2+0.319781*u**3-0.8503463*u**40.005050998*u**5+0.0083572073*u**6
elif 1600<=anno<1700:
u=y-1600.0
dt=120-0.9808*u-0.01532*u**2+(u**3)/7129.0
elif 1700<=anno<1800:
u=y-1700
dt=8.83+0.1603*u-0.0059285*u**2+0.00013336*u**3-(u**4)/1174000.0
elif 1800<=anno<1860:
u=y-1800.0
dt=13.72-0.332447*u+0.0068612*u**2+0.0041116*u**30.00037436*u**4+0.0000121272*u**5-0.0000001699*u**6
elif 1860<=anno<1900:
u=y-1860.0
dt=7.62+0.5737*u-0.251754*u**2+0.01680668*u**3-0.0004473624*u**4+(u**5)/233174
elif 1900<=anno<1920:
u=y-1900
dt=-2.79+1.494119*u-0.0598939*u**2+0.0061966*u**3-0.000197*u**4
elif 1920<=anno<1941:
u=y-1920
dt=21.20+0.84493*u-0.076100*u**2+0.0020936*u**3
elif 1941<=anno<1961:
u=y-1950
dt=29.07+0.407*u-(u**2)/233.0+(u**3)/2547.0
elif 1961<=anno<1986:
u=y-1975
dt=45.45+1.067*u-(u**2)/260.0-(u**3)/718.0
elif 1986<=anno<2005:
u=y-2000
dt=63.86+0.3345*u0.060374*u**2+0.0017275*u**3+0.000651814*u**4+0.00002373599*u**5
elif 2005<=anno<2050:
u=y-2000
dt=62.92+0.32217*u+0.005589*u**2
elif 2050<=anno<2150:
dt=-20+32*((y-1820)/100.0)**2-0.5628*(2150-y)
elif 2150<=anno<3000:
u=(anno-1820)/100.0
dt=-20+32*u**2
elif anno>2999:
print "despues de 2999,datos no fiables por dt"
dt=100.0
#anado dt a los segundos
s=s+dt #y recalculo jd que sera jde
#definiciones
dia1=float(d)+(h/24.0)+(mi/1440.0)+(s/86400.0) #dia con decimales

#calculo
jde=int(365.25*(ano+4716))+int(30.6001*(mes+1))+dia1+bano1-1524.5
return [JD,jde,dt]
def GMSTfuncion(a,m,d,h,mi,s):
[jdm,jdem,dtm]=jdyjde(a,m,d,h,mi,s) #calculo greenwich mean sidereal time de aries este hasta
greenwich
[jd0i,k,l]=jdyjde(a,m,d,0,0,0.0)
H=(jdm-jd0i)*24.0
D=jdm-2451545.0
D0=jd0i-2451545.0
T=D/36525.0
GMST=6.697374558+0.06570982441908*D0+1.00273790935*H+0.000026*T**2 #media
GMSTgra=GMST*15.0 #GRAD
[dfi,dep,epsilon]=nutacionfuncion(k) #GRADOS
epsilon=epsilon*pi/180.0
GMSTgra=GMSTgra+dfi*cos(epsilon)
GMSTgra=GMSTgra%360
GMSThor=GMSTgra/15.0
return [GMSTgra,GMSThor]
def julianoinverso(jd):
JD=jd+0.5
Z=int(JD)
F=JD-Z
b=int((Z-1867216.25)/36524.25)
A=Z+1+b-int(b/4)
if Z<2299161:
A=Z
B=A+1524
C=int((B-122.1)/365.25)
D=int(365.25*C)
E=int((B-D)/30.6001)
#calculos
dia=B-D-int(30.6001*E)
hora1=F*24.0
hora=int(hora1)
resthora=hora1-hora
min1=resthora*60.0
minuto=int(min1)
resmin=min1-minuto
segundo=resmin*60.0
if E<14:
mes=E-1
if E>=14:
mes=E-13
if mes<3:
ano=C-4715
if mes>2:
ano=C-4716
return [ano,mes,dia,hora,minuto,segundo]
def julinormal():
warning2.delete(0, END)
ano2.delete(0,END)

mes2.delete(0,END)
dia2.delete(0,END)
hora2.delete(0,END)
minuto2.delete(0,END)
segundo2.delete(0,END)
dfi2.delete(0,END)
deps2.delete(0,END)
dt2.delete(0,END)
gmsthor2.delete(0,END)
gmstgra2.delete(0,END)
oblic2.delete(0,END)
jde2.delete(0,END)
while True:
try:
juliana=float(juliana2.get())
break
except ValueError:
name="corregir dato"
warning2.insert(0, name)
return
[ano,mes,dia,hora,minuto,segundo]=julianoinverso(juliana)
[jd,jde,dt]=jdyjde(ano,mes,dia,hora,minuto,segundo)
[dfi,deps,epsilon]=nutacionfuncion(jde)
[gmstgra,gmsthor]=GMSTfuncion(ano,mes,dia,hora,minuto,segundo)
ano2.insert(0,ano)
mes2.insert(0,mes)
dia2.insert(0,dia)
hora2.insert(0,hora)
minuto2.insert(0,minuto)
segundo2.insert(0,segundo)
jde2.insert(0,jde)
dt2.insert(0,dt)
dfi2.insert(0,dfi)
deps2.insert(0,deps)
gmsthor2.insert(0,gmsthor)
gmstgra2.insert(0,gmstgra)
oblic2.insert(0,epsilon)
return
def normaljuli():
warning2.delete(0, END)
juliana2.delete(0,END)
dfi2.delete(0,END)
deps2.delete(0,END)
dt2.delete(0,END)
gmsthor2.delete(0,END)
gmstgra2.delete(0,END)
oblic2.delete(0,END)
jde2.delete(0,END)
while True:
try:
ano1=float(ano2.get())
mes1=float(mes2.get())

dia1=float(dia2.get())
hora1=float(hora2.get())
minu1=float(minuto2.get())
segu1=float(segundo2.get())
break
except ValueError:
name="corregir dato"
warning2.insert(0, 'corregir algun dato')
return
[jd,jde,dt]=jdyjde(ano1,mes1,dia1,hora1,minu1,segu1)
[dfi,deps,epsilon]=nutacionfuncion(jde)
[gmstgra,gmsthor]=GMSTfuncion(ano1,mes1,dia1,hora1,minu1,segu1)
juliana2.insert(0,jd)
jde2.insert(0,jde)
dt2.insert(0,dt)
dfi2.insert(0,dfi)
deps2.insert(0,deps)
gmsthor2.insert(0,gmsthor)
gmstgra2.insert(0,gmstgra)
oblic2.insert(0,epsilon)
return
def catalogo1(cod):
if cod==0:
ma=ephem.Moon()
if cod==1:
ma=ephem.Sun()
if cod==2:
ma=ephem.Venus()
if cod==3:
ma=ephem.Mars()
if cod==4:
ma=ephem.Jupiter()
if cod==5:
ma=ephem.Saturn()
if cod==6:
ma=ephem.star("Achernar")
if cod==7:
ma=ephem.star("Adara")
if cod==8:
ma=ephem.star("Agena")
if cod==9:
ma=ephem.star("Albereo")
if cod==10:
ma=ephem.star("Alcaid")
if cod==11:
ma=ephem.star("Alcor")
if cod==12:
ma=ephem.star("Alcyone")
if cod==13:
ma=ephem.star("Aldebaran")
if cod==14:

ma=ephem.star("Alderamin")
if cod==15:
ma=ephem.star("Alfirk")
if cod==16:
ma=ephem.star("Algenib")
if cod==17:
ma=ephem.star("Algieba")
if cod==18:
ma=ephem.star("Algol")
if cod==19:
ma=ephem.star("Alhena")
if cod==20:
ma=ephem.star("Alioth")
if cod==21:
ma=ephem.star("Almach")
if cod==22:
ma=ephem.star("Alnair")
if cod==23:
ma=ephem.star("Alnilam")
if cod==24:
ma=ephem.star("Alnitak")
if cod==25:
ma=ephem.star("Alphard")
if cod==26:
ma=ephem.star("Alphecca")
if cod==27:
ma=ephem.star("Alshain")
if cod==28:
ma=ephem.star("Altair")
if cod==29:
ma=ephem.star("Antares")
if cod==30:
ma=ephem.star("Arcturus")
if cod==31:
ma=ephem.star("Arkab Posterior")
if cod==32:
ma=ephem.star("Arkab Prior")
if cod==33:
ma=ephem.star("Arneb")
if cod==34:
ma=ephem.star("Atlas")
if cod==35:
ma=ephem.star("Bellatrix")
if cod==36:
ma=ephem.star("Betelgeuse")
if cod==37:
ma=ephem.star("Canopus")
if cod==38:
ma=ephem.star("Capella")
if cod==39:
ma=ephem.star("Caph")
if cod==40:

ma=ephem.star("Castor")
if cod==41:
ma=ephem.star("Cebalrai")
if cod==42:
ma=ephem.star("Deneb")
if cod==43:
ma=ephem.star("Denebola")
if cod==44:
ma=ephem.star("Dubhe")
if cod==45:
ma=ephem.star("Electra")
if cod==46:
ma=ephem.star("Elnath")
if cod==47:
ma=ephem.star("Enif")
if cod==48:
ma=ephem.star("Etamin")
if cod==49:
ma=ephem.star("Fomalhaut")
if cod==50:
ma=ephem.star("Gienah Corvi")
if cod==51:
ma=ephem.star("Hamal")
if cod==52:
ma=ephem.star("Izar")
if cod==53:
ma=ephem.star("Kaus Australis")
if cod==54:
ma=ephem.star("Kochab")
if cod==55:
ma=ephem.star("Maia")
if cod==56:
ma=ephem.star("Markab")
if cod==57:
ma=ephem.star("Megrez")
if cod==58:
ma=ephem.star("Menkalinan")
if cod==59:
ma=ephem.star("Menkar")
if cod==60:
ma=ephem.star("Merak")
if cod==61:
ma=ephem.star("Merope")
if cod==62:
ma=ephem.star("Mimosa")
if cod==63:
ma=ephem.star("Minkar")
if cod==64:
ma=ephem.star("Mintaka")
if cod==65:
ma=ephem.star("Mirach")
if cod==66:

ma=ephem.star("Mirzam")
if cod==67:
ma=ephem.star("Mizar")
if cod==68:
ma=ephem.star("Naos")
if cod==69:
ma=ephem.star("Nihal")
if cod==70:
ma=ephem.star("Nunki")
if cod==71:
ma=ephem.star("Peacock")
if cod==72:
ma=ephem.star("Phecda")
if cod==73:
ma=ephem.star("Polaris")
if cod==74:
ma=ephem.star("Pollux")
if cod==75:
ma=ephem.star("Procyon")
if cod==76:
ma=ephem.star("Rasalgethi")
if cod==77:
ma=ephem.star("Rasalhague")
if cod==78:
ma=ephem.star("Regulus")
if cod==79:
ma=ephem.star("Rigel")
if cod==80:
ma=ephem.star("Rukbat")
if cod==81:
ma=ephem.star("Sadalmelik")
if cod==82:
ma=ephem.star("Sadr")
if cod==83:
ma=ephem.star("Saiph")
if cod==84:
ma=ephem.star("Scheat")
if cod==85:
ma=ephem.star("Schedar")
if cod==86:
ma=ephem.star("Shaula")
if cod==87:
ma=ephem.star("Sheliak")
if cod==88:
ma=ephem.star("Sirius")
if cod==89:
ma=ephem.star("Sirrah")
if cod==90:
ma=ephem.star("Spica")
if cod==91:
ma=ephem.star("Sulafat")
if cod==92:

ma=ephem.star("Tarazed")
if cod==93:
ma=ephem.star("Taygeta")
if cod==94:
ma=ephem.star("Thuban")
if cod==95:
ma=ephem.star("Unukalhai")
if cod==96:
ma=ephem.star("Vega")
if cod==97:
ma=ephem.star("Vindemiatrix")
if cod==98:
ma=ephem.star("Wezen")
if cod==99:
ma=ephem.star("Zaurak")
if cod==100:
ma=ephem.Mercury()
if cod==101:
ma=ephem.Uranus()
if cod==102:
ma=ephem.Neptune()
if cod==103:
ma=ephem.Pluto()
return ma
def moondatafuncion(jde):
T=(jde-2451545.0)/36525.0
L1=218.3164591+481267.88134236*T-0.0013268*T**2+(T**3)/538841.0-(T**4)/65194000.0
L1=L1%360 #MODULO 360
L11=L1 #grados
L1=L1*pi/180.0 #rad
D=297.8502042+445267.1115168*T-0.00163*T**2+(T**3)/545868.0-(T**4)/113065000.0
D=D%360
D=D*pi/180.0
M=357.5291092+35999.0502909*T-0.0001536*T**2+(T**3)/24490000.0
M=M%360
M=M*pi/180.0
M1=134.9634114+477198.8676313*T+0.008997*T**2+(T**3)/69699.0-(T**4)/14712000.0
M1=M1%360
M1=M1*pi/180.0
F=93.2720993+483202.0175273*T-0.0034029*T**2-(T**3)/3526000.0+(T**4)/863310000.0
F=F%360
F=F*pi/180.0
A1=119.75+131.849*T
A1=A1%360
A1=A1*pi/180.0
A2=53.09+479264.29*T
A2=A2%360
A2=A2*pi/180.0
A3=313.45+481266.484*T
A3=A3%360

A3=A3*pi/180.0
VECTOR=[D,M,M1,F]
MATRIZ=[]
for i in range(60):
MATRIZ.append([0]*11)
MATRIZ[0]=[0,0,1,0,6288774,-20905355,0,0,0,1,5128122]
MATRIZ[1]=[2,0,-1,0,1274027,-3699111,0,0,1,1,280602]
MATRIZ[2]=[2,0,0,0,658314,-2955968,0,0,1,-1,277693]
MATRIZ[3]=[0,0,2,0,213618,-569925,2,0,0,-1,173237]
MATRIZ[4]=[0,1,0,0,-185116,48888,2,0,-1,1,55413]
MATRIZ[5]=[0,0,0,2,-114332,-3149,2,0,-1,-1,46271]
MATRIZ[6]=[2,0,-2,0,58793,246158,2,0,0,1,32573]
MATRIZ[7]=[2,-1,-1,0,57066,-152138,0,0,2,1,17198]
MATRIZ[8]=[2,0,1,0,53322,-170733,2,0,1,-1,9266]
MATRIZ[9]=[2,-1,0,0,45758,-204586,0,0,2,-1,8822]
MATRIZ[10]=[0,1,-1,0,-40923,-129620,2,-1,0,-1,8216]
MATRIZ[11]=[1,0,0,0,-34720,108743,2,0,-2,-1,4324]
MATRIZ[12]=[0,1,1,0,-30383,104755,2,0,1,1,4200]
MATRIZ[13]=[2,0,0,-2,15327,10321,2,1,0,-1,-3359]
MATRIZ[14]=[0,0,1,2,-12528,0,2,-1,-1,1,2463]
MATRIZ[15]=[0,0,1,-2,10980,79661,2,-1,0,1,2211]
MATRIZ[16]=[4,0,-1,0,10675,-34782,2,-1,-1,-1,2065]
MATRIZ[17]=[0,0,3,0,10034,-23210,0,1,-1,-1,-1870]
MATRIZ[18]=[4,0,-2,0,8548,-21636,4,0,-1,-1,1828]
MATRIZ[19]=[2,1,-1,0,-7888,24208,0,1,0,1,-1794]
MATRIZ[20]=[2,1,0,0,-6766,30824,0,0,0,3,-1749]
MATRIZ[21]=[1,0,-1,0,-5163,-8379,0,1,-1,1,-1565]
MATRIZ[22]=[1,1,0,0,4987,-16675,1,0,0,1,-1491]
MATRIZ[23]=[2,-1,1,0,4036,-12831,0,1,1,1,-1475]
MATRIZ[24]=[2,0,2,0,3994,-10445,0,1,1,-1,-1410]
MATRIZ[25]=[4,0,0,0,3861,-11650,0,1,0,-1,-1344]
MATRIZ[26]=[2,0,-3,0,3665,14403,1,0,0,-1,-1335]
MATRIZ[27]=[0,1,-2,0,-2689,-7003,0,0,3,1,1107]
MATRIZ[28]=[2,0,-1,2,-2602,0,4,0,0,-1,1021]
MATRIZ[29]=[2,-1,-2,0,2390,10056,4,0,-1,1,833]
MATRIZ[30]=[1,0,1,0,-2348,6322,0,0,1,-3,777]
MATRIZ[31]=[2,-2,0,0,2236,-9884,4,0,-2,1,671]
MATRIZ[32]=[0,1,2,0,-2120,5751,2,0,0,-3,607]
MATRIZ[33]=[0,2,0,0,-2069,0,2,0,2,-1,596]
MATRIZ[34]=[2,-2,-1,0,2048,-4950,2,-1,1,-1,491]
MATRIZ[35]=[2,0,1,-2,-1773,4130,2,0,-2,1,-451]
MATRIZ[36]=[2,0,0,2,-1595,0,0,0,3,-1,439]
MATRIZ[37]=[4,-1,-1,0,1215,-3958,2,0,2,1,422]
MATRIZ[38]=[0,0,2,2,-1110,0,2,0,-3,-1,421]
MATRIZ[39]=[3,0,-1,0,-892,3258,2,1,-1,1,-366]
MATRIZ[40]=[2,1,1,0,-810,2616,2,1,0,1,-351]
MATRIZ[41]=[4,-1,-2,0,759,-1897,4,0,0,1,331]
MATRIZ[42]=[0,2,-1,0,-713,-2117,2,-1,1,1,315]
MATRIZ[43]=[2,2,-1,0,-700,2354,2,-2,0,-1,302]
MATRIZ[44]=[2,1,-2,0,691,0,0,0,1,3,-283]
MATRIZ[45]=[2,-1,0,-2,596,0,2,1,1,-1,-229]
MATRIZ[46]=[4,0,1,0,549,-1423,1,1,0,-1,223]

MATRIZ[47]=[0,0,4,0,537,-1117,1,1,0,1,223]
MATRIZ[48]=[4,-1,0,0,520,-1571,0,1,-2,-1,-220]
MATRIZ[49]=[1,0,-2,0,-487,-1739,2,1,-1,-1,-220]
MATRIZ[50]=[2,1,0,-2,-399,0,1,0,1,1,-185]
MATRIZ[51]=[0,0,2,-2,-381,-4421,2,-1,-2,-1,181]
MATRIZ[52]=[1,1,1,0,351,0,0,1,2,1,-177]
MATRIZ[53]=[3,0,-2,0,-340,0,4,0,-2,-1,176]
MATRIZ[54]=[4,0,-3,0,330,0,4,-1,-1,-1,166]
MATRIZ[55]=[2,-1,2,0,327,0,1,0,1,-1,-164]
MATRIZ[56]=[0,2,1,0,-323,1165,4,0,1,-1,132]
MATRIZ[57]=[1,1,-1,0,299,0,1,0,-1,-1,-119]
MATRIZ[58]=[2,0,3,0,294,0,4,-1,0,-1,115]
MATRIZ[59]=[2,0,-1,-2,0,8752,2,-2,0,1,107]
E=1-0.002516*T-0.0000074*T**2 #excentricidad
#SUMA DE SERIE
l=0.0
r=0.0
b=0.0
for i1 in range(60):
B1=0.0
B2=0.0
for j1 in range(4):
B1=B1+MATRIZ[i1][j1]*VECTOR[j1]
B2=B2+MATRIZ[i1][(j1+6)]*VECTOR[j1]
if abs(MATRIZ[i1][1])==1:
correccion=1
elif abs(MATRIZ[i1][1])==2:
correccion=2
elif abs(MATRIZ[i1][1])>2 or MATRIZ[i1][1]==0:
correccion=0
l=l+MATRIZ[i1][4]*sin(B1)*(E**correccion)
r=r+MATRIZ[i1][5]*cos(B1)*(E**correccion)
if abs(MATRIZ[i1][7])==1:
correccion1=1
elif abs(MATRIZ[i1][7])==2:
correccion1=2
elif abs(MATRIZ[i1][7])>2 or MATRIZ[i1][7]==0:
correccion1=0
b=b+MATRIZ[i1][10]*sin(B2)*(E**correccion1)
l=l+3958.0*sin(A1)+1962.0*sin(L1-F)+318.0*sin(A2)
b=b-2235.0*sin(L1)+382.0*sin(A3)+175.0*sin(A1-F)+175.0*sin(A1+F)+127.0*sin(L1-M1)115.0*sin(L1+M1)
longigra=L11+(l/1000000.0) #longit ecliptica grados
latigra=b/1000000.0 #lat eclipt en grados
distanci=385000.56+r/1000.0 #distancia km
paralaje=asin(6378.14/distanci)
paralaje=paralaje*180.0/pi #paralaje ecuatorial en grados
return [longigra,latigra,distanci,paralaje]

def Houranglefuncion(GMST,longihor,ra):
#calcula el hourangle,todos en horas, del sur por el oeste
LHA=GMST-longihor-ra #local hour angle del objeto
LHA=LHA%24 #modulo 24
return LHA
def ecuaahorizfuncion(Houranglerad,latirad,decrad):
Azirad=atan2(sin(Houranglerad),(cos(Houranglerad)*sin(latirad)-tan(decrad)*cos(latirad)))#rad
Azigra=Azirad*180.0/pi
Azigra=Azigra%360 #para que salga posit
haltrad=asin(sin(latirad)*sin(decrad)+cos(latirad)*cos(decrad)*cos(Houranglerad))#rad
haltgra=haltrad*180.0/pi
return [Azigra,haltgra]
def altura(lonrad,larad,jd,ma1):
obso=ephem.Observer()
obso.long,obs.lat=-lonrad,larad
obso.date=jd
obso.elev=0.0
o=jd-2415020.0
ma1.compute(o)
ma1.compute(obso)
altest=ma1.alt
#altest=altest*180.0/pi #altura estimada grados
azest=ma1.az
return [azest,altest]
def botonastro():
warning2.delete(0,END)
longeclipg.delete(0,END)
longeclipm.delete(0,END)
longeclips.delete(0,END)
lateclipg.delete(0,END)
lateclipm.delete(0,END)
lateclips.delete(0,END)
longecuatoh.delete(0,END)
longecuatom.delete(0,END)
longecuatos.delete(0,END)
latecuatoh.delete(0,END)
latecuatom.delete(0,END)
latecuatos.delete(0,END)
althorizg.delete(0,END)
althorizm.delete(0,END)
althorizs.delete(0,END)
azhorizg.delete(0,END)
azhorizm.delete(0,END)
azhorizs.delete(0,END)
salida91.delete(0,END)
salida92.delete(0,END)
salida93.delete(0,END)
salida94.delete(0,END)
transito91.delete(0,END)

transito92.delete(0,END)
transito93.delete(0,END)
transito94.delete(0,END)
puesta91.delete(0,END)
puesta92.delete(0,END)
puesta93.delete(0,END)
puesta94.delete(0,END)
antitransito91.delete(0,END)
antitransito92.delete(0,END)
antitransito93.delete(0,END)
antitransito94.delete(0,END)
distancia.delete(0,END)
paralaje.delete(0,END)
ref.delete(0,END)
sem.delete(0,END)
fase.delete(0,END)
astrr.delete(0,END)
crepm.delete(0,END)
crepv.delete(0,END)
crepm2.delete(0,END)
crepv2.delete(0,END)
solst1.delete(0,END)
solst2.delete(0,END)
equi1.delete(0,END)
equi2.delete(0,END)
constelacion.delete(0,END)
aparentemagnitud.delete(0,END)
radiussize.delete(0,END)
elongacion.delete(0,END)
circumpola.delete(0,END)
neveru.delete(0,END)
illumi.delete(0,END)
fechagmt.delete(0,END)
nosale1.delete(0,END)
nosale2.delete(0,END)
while True:
try:
ano1=float(ano2.get())
mes1=float(mes2.get())
dia1=float(dia2.get())
hora1=float(hora2.get())
minu1=float(minuto2.get())
segu1=float(segundo2.get())
longra3=float(obslong.get())+float(obslonm.get())/60.0+float(obs.get())/3600.0
latgra3=float(obslatg.get())+float(obslatm.get())/60.0+float(obslats.get())/3600.0
elev=float(elevacion9.get())
astr=int(jdy2.get())
pres=float(press.get())
tem=float(temp.get())
desfase=float(desfas.get())
if astr<104 and astr>=0:
break

else:
warning2.insert(0, 'corregir algun dato')
return
except ValueError:
warning2.insert(0, 'corregir algun dato')
return
m=catalogo1(astr)
m1=m
astrr.insert(0,str(m))
#corregir local a gmt
hora1=hora1-desfase
[jd,jde,dt]=jdyjde(ano1,mes1,dia1,hora1,minu1,segu1)
[ano1,mes1,dia1,hora1,minu1,segu1]=julianoinverso(jd)
fechagmt.insert(0,str(ephem.date(jd-2415020.0)))
#luna
[longi,late,distanciakm,paralaj]=moondatafuncion(jde)
paralaje.insert(0,str(paralaj))
sem.insert(0,str(distanciakm))
[jd0,jde0,dt0]=jdyjde(ano1,mes1,dia1,-24,0,segu1-dt) #jd0 dia juliano a las 0h0m0s td dia
anterior
longirad=longra3*pi/180.0
latirado=latgra3*pi/180.0
r=jd-2415020.0
m.compute(r)
aparentemagnitud.insert(0,str(m.mag))
radiussize.insert(0,str(m.radius))
elongacion.insert(0,str(m.elong))
constelacion.insert(0,str(ephem.constellation(m)))
global lun
lun=ephem.Moon(r)
fas=lun.phase
fase.insert(0,str(fas))
[gmstgra,gmsthor]=GMSTfuncion(ano1,mes1,dia1,hora1,minu1,segu1)
longihor=longra3/15.0
ra=((m.g_ra)*12.0/pi)
Lha=Houranglefuncion(gmsthor,longihor,ra)
#calcula el hourangle,todos en horas, del sur por el oeste
ref.insert(0,str(Lha))
declin2=(m.g_dec)*180.0/pi
minut2=(abs(declin2) - abs(int(declin2)))*60.0
minuti2=int(minut2)
segun2=(abs(minut2) - abs(int(minut2)))*60.0
declin3=(m.g_ra)*12.0/pi
minut3=(abs(declin3) - abs(int(declin3)))*60.0
minuti3=int(minut3)
segun3=(abs(minut3) - abs(int(minut3)))*60.0
latecuatoh.insert(0,(m.g_dec)*180.0/pi)

latecuatom.insert(0,str(minuti2))
latecuatos.insert(0,str(segun2))
longecuatoh.insert(0,(m.g_ra)*12.0/pi)
longecuatom.insert(0,str(minuti3))
longecuatos.insert(0,str(segun3))
gatech = ephem.Observer()
gatech.long = -longra3*pi/180.0
gatech.lat = latgra3*pi/180.0
gatech.elevation = elev
gatech.date=r
gatech.pressure=pres
gatech.temp=tem
m.compute(gatech)

circumpola.insert(0,str(m.circumpolar))
if m.circumpolar :
nosale2.insert(0,"circumpolar")
if m.neverup :
nosale1.insert(0,"no_visible")
neveru.insert(0,str(m.neverup))
if (astr < 6) or (astr > 99):
illumi.insert(0,str(m.phase))
else:
illumi.insert(0,"-")
al=m.alt*180.0/pi
azi=m.az*180.0/pi
azhorizg.insert(0,str(m.alt))
azhorizs.insert(0, str(m.az))
longihor=longra3/15.0
latirad=latgra3*pi/180.0
decrad=m.g_dec
arhor=(m.g_ra)*12.0/pi
[GMSTgra,GMSThor]=GMSTfuncion(ano1,mes1,dia1,hora1,minu1,segu1)
Houranglehor=Houranglefuncion(GMSThor,longihor,arhor) #horas
Houranglerad=Houranglehor*pi/12.0#rad
[Azigra,haltgra]=ecuaahorizfuncion(Houranglerad,latirad,decrad)
Azigra=(Azigra+180.0)%360
#azigram=(abs(Azigra) - abs(int(Azigra)))*60.0
azhorizm.insert(0,Azigra)
#azhorizm.insert(0,azigram)
althorizg.insert(0,haltgra)
altm=(abs(haltgra) - abs(int(haltgra)))*60.0
althorizm.insert(0,altm)
alts=int((abs(altm) - abs(int(altm)))*60.0)
althorizs.insert(0,alts)

if (99<astr<104) or (0<=astr<6):
distancia.insert(0,m.earth_distance)
else:
warning2.insert(0, 'no planeta')
distancia.insert(0,'no distance')
ec=ephem.Ecliptic(m).long
es=ephem.Ecliptic(m).lat
lo9=(ec)*180.0/pi
la9=(es)*180.0/pi
minu4=(abs(lo9) - abs(int(lo9)))*60.0
minuti4=int(minu4)
segu4=(abs(minu4)-abs(int(minu4)))*60.0
minu5=(abs(la9) - abs(int(la9)))*60.0
minuti5=int(minu5)
segu5=(abs(minu5)-abs(int(minu5)))*60.0
longeclipg.insert(0,lo9)
longeclipm.insert(0,minuti4)
longeclips.insert(0,segu4)
lateclipg.insert(0,la9)
lateclipm.insert(0,minuti5)
lateclips.insert(0,segu5)
moon=ephem.Observer()
longirado=-1.0*longirad #porque ephem es oeste negat
moon.long=longirado
moon.lat=latirado
moon.date=r
moon.elevation=elev
moon.pressure=pres
moo=ephem.Observer()
moo.long=longirado
moo.lat=latirado
moo.date=r
moo.elevation=elev
moo.pressure=0
moo.horizon = '-6'
#para imprimir desfase
anadir=desfase/24.0
#solst y equinox
mii=(ephem.next_summer_solstice(r))+anadir
solst1.insert(0,str(ephem.Date(mii)))
sol2=ephem.next_winter_solstice(r)+anadir
solst2.insert(0,str(ephem.Date(sol2)))
sol3=ephem.next_vernal_equinox(r)+anadir
equi1.insert(0,str(ephem.Date(sol3)))
sol4=ephem.next_autumnal_equinox(r)+anadir
equi2.insert(0,str(ephem.Date(sol4)))

#salidas crepusc sol


while True:
try:
mii=(moo.previous_rising(ephem.Sun(), use_center=True))+anadir
crepm.insert(0,str(ephem.Date(mii)))
break
except ValueError:
crepm.insert(0,"-----")
break
while True:
try:
mii=(moo.previous_setting(ephem.Sun(), use_center=True))+anadir
crepv.insert(0,str(ephem.Date(mii)))
break
except ValueError:
crepv.insert(0,"-----")
break
while True:
try:
mii=(moo.next_rising(ephem.Sun(), use_center=True))+anadir
crepm2.insert(0,str(ephem.Date(mii)))
break
except ValueError:
crepm2.insert(0,"-----")
break
while True:
try:
mii=(moo.next_setting(ephem.Sun(), use_center=True))+anadir
crepv2.insert(0,str(ephem.Date(mii)))
break
except ValueError:
crepv2.insert(0,"-----")
break
#salidas etc astro
while True:
try:
mi=moon.previous_rising(m)+anadir
salida91.insert(0,str(ephem.Date(mi)))
break
except ValueError:
salida91.insert(0,"no hay salida")
break
while True:
try:
mi=moon.next_rising(m)+anadir
salida92.insert(0,str(ephem.Date(mi)))
break
except ValueError:
salida92.insert(0,"no hay salida")
break
while True:

try:
mi=moon.next_rising(m)+anadir
salida93.insert(0,str(ephem.Date(mi)))
break
except ValueError:
salida93.insert(0,"no hay salida")
break
while True:
try:
mi=moon.previous_rising(m)+anadir
salida94.insert(0,str(ephem.Date(mi)))
break
except ValueError:
salida94.insert(0,"no hay salida")
break
r=jd-2415020.0
m.compute(r)
moon=ephem.Observer()
longirado=-1.0*longirad #porque ephem es oeste negat
moon.long=longirado
moon.lat=latirado
moon.date=r
moon.elevation=elev
while True:
try:
mi=moon.previous_transit(m)+anadir
transito91.insert(0,str(ephem.Date(mi)))
break
except ValueError:
transito91.insert(0,"no hay transito")
break
while True:
try:
mi=moon.next_transit(m)+anadir
transito92.insert(0,str(ephem.Date(mi)))
break
except ValueError:
transito92.insert(0,"no hay transito")
break
while True:
try:
mi=moon.next_transit(m)+anadir
transito93.insert(0,str(ephem.Date(mi)))
break
except ValueError:
transito93.insert(0,"no hay transito")
break
while True:
try:
mi=moon.next_transit(m)+anadir
transito94.insert(0,str(ephem.Date(mi)))
break

except ValueError:
transito94.insert(0,"no hay transito")
break
r=jd-2415020.0
m.compute(r)
moon=ephem.Observer()
longirado=-1.0*longirad #porque ephem es oeste negat
moon.long=longirado
moon.lat=latirado
moon.date=r
moon.elevation=elev
while True:
try:
mi=moon.previous_setting(m)+anadir
puesta91.insert(0,str(ephem.Date(mi)))
break
except ValueError:
puesta91.insert(0, "no hay puesta")
break
while True:
try:
mi=moon.next_setting(m)+anadir
puesta92.insert(0,str(ephem.Date(mi)))
break
except ValueError:
puesta92.insert(0, "no hay puesta")
break
while True:
try:
mi=moon.next_setting(m)+anadir
puesta93.insert(0,str(ephem.Date(mi)))
break
except ValueError:
puesta93.insert(0, "no hay puesta")
break
while True:
try:
mi=moon.next_setting(m)+anadir
puesta94.insert(0,str(ephem.Date(mi)))
break
except ValueError:
puesta94.insert(0, "no hay puesta")
break
r=jd-2415020.0
m.compute(r)
moon=ephem.Observer()
longirado=-1.0*longirad #porque ephem es oeste negat
moon.long=longirado
moon.lat=latirado
moon.date=r
moon.elevation=elev

while True:
try:
mi=moon.previous_antitransit(m)+anadir
antitransito91.insert(0,str(ephem.Date(mi)))
break
except ValueError:
antitransito91.insert(0,"no hay antitransito")
break
while True:
try:
mi=moon.next_antitransit(m)+anadir
antitransito92.insert(0,str(ephem.Date(mi)))
break
except ValueError:
antitransito92.insert(0,"no hay antitransito")
break
while True:
try:
mi=moon.next_antitransit(m)+anadir
antitransito93.insert(0,str(ephem.Date(mi)))
break
except ValueError:
antitransito93.insert(0,"no hay antitransito")
break
while True:
try:
mi=moon.next_antitransit(m)+anadir
antitransito94.insert(0,str(ephem.Date(mi)))
break
except ValueError:
antitransito94.insert(0,"no hay antitransito")
break

return
def ayuda():
otrav9=Toplevel(root)
otrav9.title("ayuda")
warning8yu=Text(otrav9,bg="white",height=26)
warning8yu.insert(END,"Asegurate de poner tu zona horaria y si calculas solsticios y equinocios
es posible que debas cambiarla solo para esto (variara + menos 1 por horario verano invierno);
si hay algun error saldra en el recuadro de errores;
cada astro tiene su codigo que ves con el
boton de codigos; datos basados en pyephem,
para coordenadas horizontales necesitas
introducir tu posicion ,ojo que longitudes Este poner negativas ,
gmst es horario astro desde
aries a greenwich por el este, 1UA unidad astronomic son 149.597.870.700 metros, lha es el
angulo desde sur a astro por oeste, ar es angulo de aries a astro por este , formula lha=gmstlongitud de observador(oeste positivo)-ar , el azimut es desde norte a oeste, los distintos tipos de
coordenadas se devuelven en grados por ej 55.5 y despues la parte decimal 0.5 se cambia en

minutos (30) y lo mismo para segundos, se ofrecen 2 alturas y azzimuths horizontales la de formula
y la que da ephem corrigiendo press,temp y elevacion de observador. como norma general casillas
amarillas para introducir datos (o la verde si introduces fecha juliana), con los botones de juliana
salen ademas los datos ecliptica,gmst,etc..., si no hubiera salida,puesta,etc de un astro(luna) mirar
el dia anterior o siguiente porque el dato no sucede el dia del calculo(no sale pero no se avisa
especialmente) , ojo las horas que salen son locales segun zona horaria introducida,elongacion es
Es la distancia angular de un planeta al Sol, o bien el angulo entre el Sol y el planeta visto desde la
Tierra, Para los planetas internos (Mercurio y Venus) se distingue una elongacin oriental, cuando el
planeta visto desde la Tierra se encuentra al Este con respecto al Sol, y una occidental cuando se
encuentra al Oeste.")
warning8yu.pack()
def nutacionfuncion(jdeb):
#nutacion calculada de theory of nutation 1980 iau
#con precis de menos de 0.0003 seg de arco
#centuria juliana para fecha J2000.0
T=(jdeb-2451545)/36525.0
# Elongacion media de la Luna con respecto del Sol D
D=297.85036+445267.111480*T-0.0019142*T**2+(T**3)/189474.0 #grados
#Anomalia media del Sol desde la Tierra M
M=357.52772+35999.050340*T-0.0001603*T**2-(T**3)/300000.0 #grados
#anomalia media de la luna M1
Mp=134.96298+477198.867398*T+0.0086972*T**2+T**3/56250.0 #grados
# Argumento de latitud de la Luna F
F=93.27191+483202.017538*T-0.0036825*T**2+(T**3)/327270.0 #grados
#Long del nodo asc de la Luna de la orbita media de la eclipt,medido desde el equinoc medio
#de la fecha dada p
p=125.04452-1934.136261*T+0.0020708*T**2+(T**3)/450000.0 #grad
#los 5 en un vector
VECTOR=[D,M,Mp,F,p]
#matriz de terminos periodicos
MATRIZ=[]
for i in range(63):
MATRIZ.append([0]*9)
MATRIZ[0]=[0,0,0,0,1,-171996,-174.2,92025,8.9]
MATRIZ[1]=[-2,0,0,2,2,-13187,-1.6,5736,-3.1]
MATRIZ[2]=[0,0,0,2,2,-2274,-0.2,977,-0.5]
MATRIZ[3]=[0,0,0,0,2,2062,0.2,-895,0.5]
MATRIZ[4]=[0,1,0,0,0,1426,-3.4,54,-0.1]
MATRIZ[5]=[0,0,1,0,0,712,0.1,-7,0]
MATRIZ[6]=[-2,1,0,2,2,-517,1.2,224,-0.6]
MATRIZ[7]=[0,0,0,2,1,-386,-0.4,200,0]
MATRIZ[8]=[0,0,1,2,2,-301,0,129,-0.1]
MATRIZ[9]=[-2,-1,0,2,2,217,-0.5,-95,0.3]
MATRIZ[10]=[-2,0,1,0,0,-158,0,0,0]
MATRIZ[11]=[-2,0,0,2,1,129,0.1,-70,0]
MATRIZ[12]=[0,0,-1,2,2,123,0,-53,0]
MATRIZ[13]=[2,0,0,0,0,63,0,0,0]
MATRIZ[14]=[0,0,1,0,1,63,0.1,-33,0]
MATRIZ[15]=[2,0,-1,2,2,-59,0,26,0]
MATRIZ[16]=[0,0,-1,0,1,-58,-0.1,32,0]
MATRIZ[17]=[0,0,1,2,1,-51,0,27,0]

MATRIZ[18]=[-2,0,2,0,0,48,0,0,0]
MATRIZ[19]=[0,0,-2,2,1,46,0,-24,0]
MATRIZ[20]=[2,0,0,2,2,-38,0,16,0]
MATRIZ[21]=[0,0,2,2,2,-31,0,13,0]
MATRIZ[22]=[0,0,2,0,0,29,0,0,0]
MATRIZ[23]=[-2,0,1,2,2,29,0,-12,0]
MATRIZ[24]=[0,0,0,2,0,26,0,0,0]
MATRIZ[25]=[-2,0,0,2,0,-22,0,0,0]
MATRIZ[26]=[0,0,-1,2,1,21,0,-10,0]
MATRIZ[27]=[0,2,0,0,0,17,-0.1,0,0]
MATRIZ[28]=[2,0,-1,0,1,16,0,-8,0]
MATRIZ[29]=[-2,2,0,2,2,-16,0.1,7,0]
MATRIZ[30]=[0,1,0,0,1,-15,0,9,0]
MATRIZ[31]=[-2,0,1,0,1,-13,0,7,0]
MATRIZ[32]=[0,-1,0,0,1,-12,0,6,0]
MATRIZ[33]=[0,0,2,-2,0,11,0,0,0]
MATRIZ[34]=[2,0,-1,2,1,-10,0,5,0]
MATRIZ[35]=[2,0,1,2,2,-8,0,3,0]
MATRIZ[36]=[0,1,0,2,2,7,0,-3,0]
MATRIZ[37]=[-2,1,1,0,0,-7,0,0,0]
MATRIZ[38]=[0,-1,0,2,2,-7,0,3,0]
MATRIZ[39]=[2,0,0,2,1,-7,0,3,0]
MATRIZ[40]=[2,0,1,0,0,6,0,0,0]
MATRIZ[41]=[-2,0,2,2,2,6,0,-3,0]
MATRIZ[42]=[-2,0,1,2,1,6,0,-3,0]
MATRIZ[43]=[2,0,-2,0,1,-6,0,3,0]
MATRIZ[44]=[2,0,0,0,1,-6,0,3,0]
MATRIZ[45]=[0,-1,1,0,0,5,0,0,0]
MATRIZ[46]=[-2,-1,0,2,1,-5,0,3,0]
MATRIZ[47]=[-2,0,0,0,1,-5,0,3,0]
MATRIZ[48]=[0,0,2,2,1,-5,0,3,0]
MATRIZ[49]=[-2,0,2,0,1,4,0,0,0]
MATRIZ[50]=[-2,1,0,2,1,4,0,0,0]
MATRIZ[51]=[0,0,1,-2,0,4,0,0,0]
MATRIZ[52]=[-1,0,1,0,0,-4,0,0,0]
MATRIZ[53]=[-2,1,0,0,0,-4,0,0,0]
MATRIZ[54]=[1,0,0,0,0,-4,0,0,0]
MATRIZ[55]=[0,0,1,2,0,3,0,0,0]
MATRIZ[56]=[0,0,-2,2,2,-3,0,0,0]
MATRIZ[57]=[-1,-1,1,0,0,-3,0,0,0]
MATRIZ[58]=[0,1,1,0,0,-3,0,0,0]
MATRIZ[59]=[0,-1,1,2,2,-3,0,0,0]
MATRIZ[60]=[2,-1,-1,2,2,-3,0,0,0]
MATRIZ[61]=[0,0,3,2,2,-3,0,0,0]
MATRIZ[62]=[2,-1,0,2,2,-3,0,0,0]
#SUMA DE SERIE
dfi1=0.0
deps1=0.0
for i1 in range(63):
B1=0.0
for j1 in range(5):
B1=B1+MATRIZ[i1][j1]*VECTOR[j1] #grados

B2=(B1*2*pi)/360 #radianes
dfi1=dfi1+sin(B2)*((MATRIZ[i1][6])*T+MATRIZ[i1][5])
deps1=deps1+cos(B2)*((MATRIZ[i1][8])*T+MATRIZ[i1][7])
dfi=(dfi1*0.0001)/3600 #grados
depsilon=(deps1*0.0001)/3600 #grados
#calculo oblicuidad eliptica
U2=T/100.0
eps2=84381.488-4680.93*U2-1.55*U2**2+1999.25*U2**3-51.38*U2**4-249.67*U2**539.05*U2**6
eps2=eps2+7.12*U2**7+27.87*U2**8+5.79*U2**9+2.45*U2**10
eps2=eps2/3600.0 #mean oblic
epsilon=eps2+depsilon #grados true oblic
return [dfi,depsilon,epsilon] #grados

root=Tk()
root.geometry("700x600")
canvas = Canvas(root, borderwidth=0, background="#ffffff")
frame = Frame(canvas, background="#ffffff")
vsb = Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
hsb = Scrollbar(root, orient="horizontal", command=canvas.xview)
canvas.configure(xscrollcommand=hsb.set)
hsb.pack(side="bottom", fill="x")
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
listbox = Listbox(frame,bg="yellow", width=20, height=20)
listbox.grid(row=22, column=7,rowspan=40)
yscroll = Scrollbar(frame,command=listbox.yview, orient=VERTICAL)
yscroll.grid(row=22, column=8,rowspan=40, sticky='ns')
listbox.configure(yscrollcommand=yscroll.set)
# now load the listbox with data
friend_list = ["0-luna"," 1-sol"," 2-venus"," 3-marte"," 4-jupiter"," 5-saturno","6-achernar"," 7adara", " 8-agena"," 9-albereo"," 10-alcaid"," 11-alcor"," 12-alcyone"," 13-aldebaran" ", 14alderamin"," 15-alfirk"," 16-algenib"," 17-algieba"," 18-algol"," 19-alhena"," 20-alioth"," 21almach" ," 22-alnair"," 23-alnilam"," 24-alnitak"," 25-alphard"," 26-alphecca"," 27-alshain","28altair" ," 29-antares"," 30-arcturus"," 31-arkab posterior"," 32-arcab prior"," 33-arneb"," 34-atlas","
35-bellatrix"," 36-betelgeuse"," 37-canopus"," 38-capella"," 39-caph"," 40-castor"," 41-cebalrai","
42-deneb"," 43-denebola"," 44-dubhe"," 45-electra"," 46-elnath"," 47-enif"," 48-etamin"," 49fomalhaut"," 50-gienah corvi"," 51-hamal"," 52-izar"," 53-kaus australis"," 54-kochab"," 55maia"," 56-markab"," 57-megrez"," 58-menkalinan"," 59-menkar"," 60-merak"," 61-merope"," 62mimosa"," 63-minkar"," 64-mintaka "," 65-mirach"," 66-mirzam"," 67-mizar"," 68-naos"," 69nihal"," 70-nunki"," 71-peacock"," 72-phecda","73-polaris"," 74-pollux"," 75-procyon"," 76rasalgethi"," 77-rasalhague"," 78-regulus"," 79-rigel"," 80-rukbat"," 81-sadalmelik"," 82-sadr","
83-saiph"," 84-scheat"," 85-schedar"," 86-shaula"," 87-sheliak"," 88-sirius"," 89-sirrah"," 90spica"," 91-sulafat"," 92-tarazed"," 93-taygeta"," 94-thuban"," 95-unukalhai"," 96-vega"," 97vindemiatrix"," 98-wezen"," 99-zaurak", "100-mercury"," 101-uranus"," 102-neptune"," 103-pluto

"]
for item in friend_list:
# insert each new item to the end of the listbox
listbox.insert('end', item)
anio22=Label(frame,text="
anio
",bg="yellow")
anio22.grid(row=0,column=0)
mes22=Label(frame,text="
mes
",bg="yellow")
mes22.grid(row=0,column=1)
dia22=Label(frame,text="
dia
",bg="yellow")
dia22.grid(row=0,column=2)
hora22=Label(frame,text="
hora ",bg="yellow")
hora22.grid(row=0,column=3)
minuto22=Label(frame,text="
minuto ",bg="yellow")
minuto22.grid(row=0,column=4)
segundo22=Label(frame,text="
segundo
",bg="yellow")
segundo22.grid(row=0,column=5)
global ano2
ano2=Entry(frame)
ano2.grid(row=1,column=0)
ano2.insert(0,"2016")
global mes2
mes2=Entry(frame)
mes2.grid(row=1,column=1)
mes2.insert(0,"2")
global dia2
dia2=Entry(frame)
dia2.grid(row=1,column=2)
dia2.insert(0,"24")
global hora2
hora2=Entry(frame)
hora2.grid(row=1,column=3)
hora2.insert(0,"0")
global minuto2
minuto2=Entry(frame)
minuto2.grid(row=1,column=4)
minuto2.insert(0,"0")
global segundo2
segundo2=Entry(frame)
segundo2.grid(row=1,column=5)
segundo2.insert(0,"0")
juli2=Label(frame,text=" fecha juliana ",bg="#157B3E")
juli2.grid(row=6,column=0)
global juliana2
juliana2=Entry(frame)
juliana2.grid(row=7,column=0)
juliana2.insert(0,"0")
global gmsthor2
gmsthor22=Label(frame,text=" gmst en horas ",bg="cyan")
gmsthor22.grid(row=9,column=1)

gmsthor2=Entry(frame)
gmsthor2.grid(row=10,column=1)
gmsthor2.insert(0,"-")
gmstgra22=Label(frame,text=" gmst en grados ",bg="cyan")
gmstgra22.grid(row=9,column=2)
global gmstgra2
gmstgra2=Entry(frame)
gmstgra2.grid(row=10,column=2)
gmstgra2.insert(0,"-")
oblic20=Label(frame,text="oblicuid eclitica grados ",bg="cyan")
oblic20.grid(row=9,column=3)
global oblic2
oblic2=Entry(frame)
oblic2.grid(row=10,column=3)
oblic2.insert(0,"-")
dfi22=Label(frame,text="nutacion en longitud dfi ",bg="cyan")
dfi22.grid(row=9,column=4)
global dfi2
dfi2=Entry(frame)
dfi2.grid(row=10,column=4)
dfi2.insert(0,"-")
dt22=Label(frame,text="dt=td-ut en segundos",bg="cyan")
dt22.grid(row=9,column=5)
global dt2
dt2=Entry(frame)
dt2.grid(row=10,column=5)
dt2.insert(0,"-")
jde22=Label(frame,text="jde tiempo dinamico ",bg="cyan")
jde22.grid(row=12,column=0)
global jde2
jde2=Entry(frame)
jde2.grid(row=13,column=0)
jde2.insert(0,"-")
deps22=Label(frame,text="nutacin en oblic depsilon",bg="cyan")
deps22.grid(row=12,column=1)
global deps2
deps2=Entry(frame)
deps2.grid(row=13,column=1)
deps2.insert(0,"-")
jj=Label(frame,text="aviso de errores ",bg="#F4B2E2")
jj.grid(row=6,column=1)
global warning2
warning2=Entry(frame,bg="white",fg="red",font = "Helvetica 14 bold italic")
warning2.grid(row=7,column=1)
warning2.insert(0,".")
jd2=Label(frame,text="codigo astro(mirar) ",bg="yellow")
jd2.grid(row=6,column=3)
jd92=Label(frame,text="coordenadas ",bg="#16F00B")
jd92.grid(row=18,column=3)
global jdy2

jdy2=Entry(frame)
jdy2.grid(row=7,column=3)
jdy2.insert(0,"0")
jde226=Label(frame,text="c eclipticas long grad",bg="#5EEC56")
jde226.grid(row=20,column=0)
jde226u=Label(frame,text="parte decimal en minutos",bg="#5EEC56")
jde226u.grid(row=20,column=1)
jde226uu=Label(frame,text="parte decimal en segundos",bg="#5EEC56")
jde226uu.grid(row=20,column=2)
jde226j=Label(frame,text="c eclipticas lat grad",bg="#5EEC56")
jde226j.grid(row=20,column=3)
jde226um=Label(frame,text="parte dec en minutos",bg="#5EEC56")
jde226um.grid(row=20,column=4)
jde226uk=Label(frame,text="parte dec ensegundos",bg="#5EEC56")
jde226uk.grid(row=20,column=5)
global longeclipg
longeclipg=Entry(frame)
longeclipg.grid(row=21,column=0)
longeclipg.insert(0,"-")
global longeclipm
longeclipm=Entry(frame)
longeclipm.grid(row=21,column=1)
longeclipm.insert(0,"-")
global longeclips
longeclips=Entry(frame)
longeclips.grid(row=21,column=2)
longeclips.insert(0,"-")
global lateclipg
lateclipg=Entry(frame)
lateclipg.grid(row=21,column=3)
lateclipg.insert(0,"-")
global lateclipm
lateclipm=Entry(frame)
lateclipm.grid(row=21,column=4)
lateclipm.insert(0,"-")
global lateclips
lateclips=Entry(frame)
lateclips.grid(row=21,column=5)
lateclips.insert(0,"-")
jde226q=Label(frame,text="c ecua asc rec horas",bg="#3DC310")
jde226q.grid(row=23,column=0)
jde226uv=Label(frame,text="parte decimal en minutos",bg="#3DC310")
jde226uv.grid(row=23,column=1)
jde226uum=Label(frame,text="parte decimal ensegundos",bg="#3DC310")
jde226uum.grid(row=23,column=2)
jde226qi=Label(frame,text="c ecua declinac grad",bg="#3DC310")
jde226qi.grid(row=23,column=3)
jde226uiv=Label(frame,text="parte decimal en minutos",bg="#3DC310")
jde226uiv.grid(row=23,column=4)
jde226uuom=Label(frame,text="parte dec en segundos",bg="#3DC310")
jde226uuom.grid(row=23,column=5)

jde226jc=Label(frame,text="c horiz altura formula grad",bg="green")


jde226jc.grid(row=26,column=0)
jde226umn=Label(frame,text="parte dec en min",bg="green")
jde226umn.grid(row=26,column=1)
jde226ukm=Label(frame,text="parte dec en segundos",bg="green")
jde226ukm.grid(row=26,column=2)
jde226jz=Label(frame,text="alt eph corr elev,p,t",bg="green")
jde226jz.grid(row=26,column=3)
jde226uml=Label(frame,text="azi formula nort a oest",bg="green")
jde226uml.grid(row=26,column=4)
jde226ukk=Label(frame,text="azimut ephem",bg="green")
jde226ukk.grid(row=26,column=5)
jde226jckk=Label(frame,text="observador long grad",bg="yellow")
jde226jckk.grid(row=3,column=0)
jde226umnl=Label(frame,text="minutos",bg="yellow")
jde226umnl.grid(row=3,column=1)
jde226ukmmm=Label(frame,text="segundos",bg="yellow")
jde226ukmmm.grid(row=3,column=2)
jde226jzo=Label(frame,text="latitud grad",bg="yellow")
jde226jzo.grid(row=3,column=3)
jde226umll=Label(frame,text="minutos",bg="yellow")
jde226umll.grid(row=3,column=4)
jde226ukkb=Label(frame,text="segundos",bg="yellow")
jde226ukkb.grid(row=3,column=5)
jde226umllj=Label(frame,text="press en mb",bg="yellow")
jde226umllj.grid(row=6,column=5)
jde226ukkhb=Label(frame,text="temp celsius",bg="yellow")
jde226ukkhb.grid(row=6,column=2)
jde226ukkohb=Label(frame,text="no hay si fuera circumpolar o nunca visible",bg="cyan")
jde226ukkohb.grid(row=29,column=3,columnspan=3)
global planeti
global press
press=Entry(frame)
press.grid(row=7,column=5)
press.insert(0,"1013")
global temp
temp=Entry(frame)
temp.grid(row=7,column=2)
temp.insert(0,"15")
global longecuatoh
longecuatoh=Entry(frame)
longecuatoh.grid(row=24,column=0)
longecuatoh.insert(0,"-")
global longecuatom
longecuatom=Entry(frame)
longecuatom.grid(row=24,column=1)

longecuatom.insert(0,"-")
global longecuatos
longecuatos=Entry(frame)
longecuatos.grid(row=24,column=2)
longecuatos.insert(0,"-")
global latecuatoh
latecuatoh=Entry(frame)
latecuatoh.grid(row=24,column=3)
latecuatoh.insert(0,"-")
global latecuatom
latecuatom=Entry(frame)
latecuatom.grid(row=24,column=4)
latecuatom.insert(0,"-")
global latecuatos
latecuatos=Entry(frame)
latecuatos.grid(row=24,column=5)
latecuatos.insert(0,"-")
global althorizg
althorizg=Entry(frame)
althorizg.grid(row=27,column=0)
althorizg.insert(0,"-")
global althorizm
althorizm=Entry(frame)
althorizm.grid(row=27,column=1)
althorizm.insert(0,"-")
global althorizs
althorizs=Entry(frame)
althorizs.grid(row=27,column=2)
althorizs.insert(0,"-")
global azhorizg
azhorizg=Entry(frame)
azhorizg.grid(row=27,column=3)
azhorizg.insert(0,"-")
global azhorizm
azhorizm=Entry(frame)
azhorizm.grid(row=27,column=4)
azhorizm.insert(0,"-")
global azhorizs
azhorizs=Entry(frame)
azhorizs.grid(row=27,column=5)
azhorizs.insert(0,"-")
global obslong
obslong=Entry(frame)
obslong.grid(row=4,column=0)
obslong.insert(0,"3")
global obslonm
obslonm=Entry(frame)
obslonm.grid(row=4,column=1)
obslonm.insert(0,"0")
global obs

obs=Entry(frame)
obs.grid(row=4,column=2)
obs.insert(0,"0")
global obslatg
obslatg=Entry(frame)
obslatg.grid(row=4,column=3)
obslatg.insert(0,"42")
global obslatm
obslatm=Entry(frame)
obslatm.grid(row=4,column=4)
obslatm.insert(0,"0")
global obslats
obslats=Entry(frame)
obslats.grid(row=4,column=5)
obslats.insert(0,"0")
info3j=Label(frame,text="ortos ocasos etc segun tu zona horaria",bg="cyan")
info3j.grid(row=29,column=0,columnspan=3)
salidask3=Label(frame,text="orto ",bg="#89ECD6")
#salidas,puestas..
salidask3.grid(row=31,column=0)
global salida91
salida91=Entry(frame)
salida91.grid(row=32,column=0)
salida91.insert(0,"-")
global salida92
salida92=Entry(frame)
salida92.grid(row=33,column=0)
salida92.insert(0,"-")
global salida93
salida93=Entry(frame)
salida93.grid(row=34,column=0)
salida93.insert(0,"-")
global salida94
salida94=Entry(frame)
salida94.grid(row=35,column=0)
salida94.insert(0,"-")
info31gk=Label(frame,text=" transitos",bg="#89ECD6")
info31gk.grid(row=31,column=1)
global transito91
transito91=Entry(frame)
transito91.grid(row=32,column=1)
transito91.insert(0,"-")
global transito92
transito92=Entry(frame)
transito92.grid(row=33,column=1)
transito92.insert(0,"-")
global transito93
transito93=Entry(frame)
transito93.grid(row=34,column=1)
transito93.insert(0,"-")
global transito94
transito94=Entry(frame)

transito94.grid(row=35,column=1)
transito94.insert(0,"-")
puestas3f=Label(frame,text="puestas",bg="#89ECD6")
puestas3f.grid(row=31,column=2)
global puesta91
puesta91=Entry(frame)
puesta91.grid(row=32,column=2)
puesta91.insert(0,"-")
global puesta92
puesta92=Entry(frame)
puesta92.grid(row=33,column=2)
puesta92.insert(0,"-")
global puesta93
puesta93=Entry(frame)
puesta93.grid(row=34,column=2)
puesta93.insert(0,"-")
global puesta94
puesta94=Entry(frame)
puesta94.grid(row=35,column=2)
puesta94.insert(0,"-")
ant3a=Label(frame,text="antitransitos",bg="#89ECD6")
ant3a.grid(row=31,column=3)
global antitransito91
antitransito91=Entry(frame)
antitransito91.grid(row=32,column=3)
antitransito91.insert(0,"-")
global antitransito92
antitransito92=Entry(frame)
antitransito92.grid(row=33,column=3)
antitransito92.insert(0,"-")
global antitransito93
antitransito93=Entry(frame)
antitransito93.grid(row=34,column=3)
antitransito93.insert(0,"-")
global antitransito94
antitransito94=Entry(frame)
antitransito94.grid(row=35,column=3)
antitransito94.insert(0,"-")
dist35k=Label(frame,text="elevcion observador",bg="yellow")
dist35k.grid(row=6,column=4)
global elevacion9
elevacion9=Entry(frame)
elevacion9.grid(row=7,column=4)
elevacion9.insert(0,"0")
global desfas
desfas=Entry(frame)
desfas.grid(row=1,column=6)
desfas.insert(0,"1")
desfaselabel=Label(frame,text="zona horaria",bg="yellow")
desfaselabel.grid(row=0,column=6)
jde226ukkbl=Label(frame,text="nombre astro",bg="#E18313")

jde226ukkbl.grid(row=12,column=3)
global astrr
astrr=Entry(frame)
astrr.grid(row=13,column=3)
astrr.insert(0,"-")
de226ukkbl=Label(frame,text="distancia astro U.A.",bg="#E18313")
de226ukkbl.grid(row=15,column=4)
global distancia
distancia=Entry(frame)
distancia.grid(row=16,column=4)
distancia.insert(0,"-")
e226ukkbl=Label(frame,text="paralaje luna",bg="#6653E6")
e226ukkbl.grid(row=15,column=0)
global paralaje
paralaje=Entry(frame)
paralaje.grid(row=16,column=0)
paralaje.insert(0,"-")
jde226ukkblo=Label(frame,text="LHA de sur hacia oeste(horas)",bg="#33CCFF")
jde226ukkblo.grid(row=12,column=2)
global ref
ref=Entry(frame)
ref.grid(row=13,column=2)
ref.insert(0,"-")
de226ukkbli=Label(frame,text="DISTANC LUNA KM",bg="#6653E6")
de226ukkbli.grid(row=15,column=1)
global sem
sem=Entry(frame)
sem.grid(row=16,column=1)
sem.insert(0,"-")
e226ukkblk=Label(frame,text="% iluminacion luna",bg="#6653E6")
e226ukkblk.grid(row=15,column=2)
global fase
fase=Entry(frame)
fase.grid(row=16,column=2)
fase.insert(0,"-")
julinorm=Button(frame,text="juliana a normal",
command=julinormal,activebackground="#F50743",bg="#157B3E",relief="raised",
borderwidth=4,font = "Helvetica 10 bold italic")
julinorm.grid(row=40,column=1)
normjuli=Button(frame,text="normal a juliana",
command=normaljuli,activebackground="#F50743",bg="#157B3E",relief="raised",
borderwidth=4,font = "Helvetica 10 bold italic")
normjuli.grid(row=40,column=2)
calcular=Button(frame,text="calculo coordenadas",
command=botonastro,activebackground="#F50743",bg="#157B3E",relief="raised",

borderwidth=4,font = "Helvetica 10 bold italic")


calcular.grid(row=40,column=3)
ayuda=Button(frame,text="instrucciones",
command=ayuda,activebackground="#F50743",bg="#157B3E",relief="raised", borderwidth=4,font
= "Helvetica 10 bold italic")
ayuda.grid(row=40,column=4)
crepusculom=Label(frame,text="crep mat civil -6grados",bg="#89ECD6")
crepusculom.grid(row=31,column=4)
crepusculov=Label(frame,text="crepusculo vesp civil -6g",bg="#89ECD6")
crepusculov.grid(row=31,column=5)
solsti=Label(frame,text="solsticio(comprobar zona)",bg="#EABB57")
solsti.grid(row=3,column=6)
equin=Label(frame,text="equinocio(compr zona)",bg="#EABB57")
equin.grid(row=7,column=6)
global nosale1
nosale1=Entry(frame,bg="white",fg="red",font = "Helvetica 14 bold italic")
nosale1.grid(row=16,column=7)
nosale1.insert(0,"-")
global nosale2
nosale2=Entry(frame,bg="white",fg="red",font = "Helvetica 14 bold italic")
nosale2.grid(row=17,column=5)
nosale2.insert(0,"-")
global crepm
crepm=Entry(frame)
crepm.grid(row=32,column=4)
crepm.insert(0,"-")
global crepv
crepv=Entry(frame)
crepv.grid(row=32,column=5)
crepv.insert(0,"-")
global crepm2
crepm2=Entry(frame)
crepm2.grid(row=33,column=4)
crepm2.insert(0,"-")
global crepv2
crepv2=Entry(frame)
crepv2.grid(row=33,column=5)
crepv2.insert(0,"-")
global solst1
solst1=Entry(frame)
solst1.grid(row=4,column=6)
solst1.insert(0,"-")
global solst2
solst2=Entra(frame,0,"-",5,6)
global equi1
equi1=Entra(frame,0,"-",8,6)
global equi2
equi2=Entra(frame,0,"0",9,6)
Eti(frame,"constelacion","#E18313",15,3)
Eti(frame,"magnitud","#E18313",12,4)
Eti(frame,"radio","#E18313",12,5)

Eti(frame,"elongacion","#E18313",12,6)
Eti(frame,"circumpolar","#E18313",15,5)
Eti(frame,"nunca visible","#E18313",15,6)
Eti(frame,"fecha en greenwich","#33CCFF",9,0)
Eti(frame,"%iluminacion astro","#E18313",18,6)
global mapa
mapa = PhotoImage(file = 'gato1.gif')
global fechagmt
fechagmt=Entry(frame)
fechagmt.grid(row=10,column=0)
fechagmt.insert(0,"-")
global constelacion
constelacion=Entry(frame)
constelacion.grid(row=16,column=3)
constelacion.insert(0,"-")
global aparentemagnitud
aparentemagnitud=Entry(frame)
aparentemagnitud.grid(row=13,column=4)
aparentemagnitud.insert(0,"-")
global radiussize
radiussize=Entry(frame)
radiussize.grid(row=13,column=5)
radiussize.insert(0,"-")
global elongacion
elongacion=Entry(frame)
elongacion.grid(row=13,column=6)
elongacion.insert(0,"-")
global circumpola
circumpola=Entry(frame)
circumpola.grid(row=16,column=5)
circumpola.insert(0,"-")
global neveru
neveru=Entry(frame)
neveru.grid(row=16,column=6)
neveru.insert(0,"-")
global illumi
illumi=Entry(frame)
illumi.grid(row=19,column=6)
illumi.insert(0,"-")
root.mainloop()

También podría gustarte