stringtranslate.com

Ecuación del amanecer

Un gráfico de contorno de las horas de luz del día en función de la latitud y el día del año, utilizando los modelos más precisos descritos en este artículo. Se puede ver que el área de día y noche constantes llega hasta los círculos polares (aquí denominados "Anta. c." y "Arct. c."), lo cual es una consecuencia de la inclinación de la Tierra.
Un gráfico de horas de luz diurna en función de la fecha para el cambio de latitudes. Este gráfico se creó utilizando la ecuación simple de la salida del sol, aproximando el sol como un solo punto y no tiene en cuenta los efectos causados ​​por la atmósfera o el diámetro del Sol.

La ecuación de la salida del sol o la ecuación del atardecer se pueden utilizar para derivar la hora del amanecer o del atardecer para cualquier declinación y latitud solar en términos de hora solar local cuando realmente ocurren el amanecer y el atardecer.

Formulación

Está formulado como:

dónde:

es el ángulo horario solar al amanecer (cuando se toma el valor negativo) o al atardecer (cuando se toma el valor positivo);
es la latitud del observador en la Tierra ;
es la declinación del sol .

Principios

La Tierra gira a una velocidad angular de 15°/hora. Por lo tanto, la expresión , donde está en grados, da el intervalo de tiempo en horas desde la salida del sol hasta el mediodía solar local o desde el mediodía solar local hasta la puesta del sol .

La convención de signos suele ser que la latitud del observador es 0 en el ecuador , positiva para el hemisferio norte y negativa para el hemisferio sur , y la declinación solar es 0 en los equinoccios de primavera y otoño cuando el sol está exactamente encima del ecuador, positiva durante el verano del hemisferio norte y negativo durante el invierno del hemisferio norte.

La expresión anterior siempre es aplicable para latitudes entre el Círculo Polar Ártico y el Círculo Antártico . Al norte del Círculo Polar Ártico o al sur del Círculo Antártico, hay al menos un día al año sin salida ni puesta de sol. Formalmente, hay un amanecer o un atardecer durante el verano del hemisferio norte y durante el invierno del hemisferio sur. Para ubicaciones fuera de estas latitudes, el horario es de 24 horas de día o de 24 horas de noche .

Expresiones para el ángulo horario solar.

En la ecuación dada al principio, la función coseno del lado izquierdo da resultados en el rango [-1, 1], pero el valor de la expresión del lado derecho está en el rango . Una expresión aplicable en el formato de Fortran 90 es la siguiente:

omegao = acos(max(min(-tan(delta*rpd)*tan(phi*rpd), 1.0), -1.0))*dpr

donde omegao está en grados, delta está en grados, phi está en grados, rpd es igual a y dpr es igual a .

La expresión anterior da resultados en grados en el rango . Cuando , significa que es noche polar, o día de 0 horas; cuando , significa que es día polar o luz diurna de 24 horas.

relación hemisférica

Supongamos que es una latitud dada en el hemisferio norte, y es el ángulo horario de salida del sol correspondiente que tiene un valor negativo, y de manera similar, es la misma latitud pero en el hemisferio sur, lo que significa , y es el ángulo horario de salida del sol correspondiente, entonces es evidente que

,

lo que significa

.

La relación anterior implica que en el mismo día, la duración del día desde el amanecer hasta el atardecer a las y suman 24 horas si , y esto también se aplica a las regiones donde ocurren días polares y noches polares. Esto sugiere además que el promedio global de la duración del día en un día determinado es de 12 horas sin considerar el efecto de la refracción atmosférica.

Ecuación generalizada

Procedimiento de reducción de visión sextante que muestra correcciones de altitud solar para refracción y elevación.

La ecuación anterior ignora la influencia de la refracción atmosférica (que eleva el disco solar, es decir, hace que el disco solar parezca más alto en el cielo, aproximadamente 0,6° cuando está en el horizonte) y el ángulo distinto de cero subtendido por el disco solar. es decir, el diámetro aparente del sol (aproximadamente 0,5°). Los tiempos de salida y puesta del limbo solar superior, tal como figuran en los almanaques astronómicos, corrigen esto utilizando la ecuación más general.

con el ángulo de altitud (a) del centro del disco solar fijado en aproximadamente −0,83° (o −50 minutos de arco).

La ecuación general anterior también se puede utilizar para cualquier otra altitud solar. La NOAA proporciona expresiones aproximadas adicionales para las correcciones de refracción en estas otras altitudes. [1] También existen formulaciones alternativas, como una expresión no fragmentada de GG Bennett utilizada en el "Software de astronomía vectorial" del Observatorio Naval de EE. UU. [2]

Cálculo completo en la Tierra

La ecuación generalizada se basa en una serie de otras variables que deben calcularse antes de poder calcularse ella misma. Estas ecuaciones tienen las constantes solar-terrestres sustituidas por constantes angulares expresadas en grados.

Calcular el día juliano actual

dónde:

es el número de días desde el 1 de enero de 2000 a las 12:00.
es la fecha juliana ;
2451545.0 es el año juliano equivalente a los días julianos del 1 de enero de 2000 a las 12:00:00.
0,0008 es la fracción del día juliano para segundos intercalares y tiempo terrestre (TT).
El TT se fijó en 32,184 segundos por detrás del TAI el 1 de enero de 1958. En 1972, cuando se introdujo el segundo intercalar, se agregaron 10 segundos. El 1 de enero de 2017, se agregaron 27 segundos más, llegando a un total de 69,184 segundos. 0,0008=69,184/86400 sin DUT1 .
La operación redondea al siguiente número entero del día n.

tiempo solar medio

dónde:

es una aproximación del tiempo solar medio en números enteros expresado como día juliano con la fracción de día.
es la longitud (el oeste es negativo, el este es positivo) del observador en la Tierra;

Anomalía media solar

dónde:

M es la anomalía media solar utilizada en las siguientes tres ecuaciones.

Ecuación del centro

dónde:

C es la ecuación del valor central necesario para calcular lambda (consulte la siguiente ecuación).
1,9148 es el coeficiente de la ecuación del centro del planeta en el que se encuentra el observador (en este caso, la Tierra)

longitud de la eclíptica

dónde:

λ es la longitud de la eclíptica .
102,9372 es un valor para el argumento del perihelio .

Tránsito solar

dónde:

El tránsito J es la fecha juliana para el tránsito solar verdadero local (o mediodía solar ).
2451545.0 es el mediodía de la referencia del año juliano equivalente .
es una versión simplificada de la ecuación del tiempo . Los coeficientes son días fraccionarios.

Declinación del Sol

dónde:

es la declinación del sol.
23,4397° es la inclinación axial máxima de la Tierra hacia el sol [3]

Ángulo horario

Esta es la ecuación anterior con correcciones por refracción atmosférica y diámetro del disco solar.

dónde:

ω o es el ángulo horario desde el meridiano del observador ;
es la latitud norte del observador (el norte es positivo, el sur es negativo) en la Tierra.

Para observaciones en un horizonte marino que necesitan una corrección de la elevación del observador, agregue , o al −0,833° en el término del seno del numerador. Esto corrige tanto la inclinación aparente como la refracción terrestre. Por ejemplo, para un observador a 10.000 pies, sume (−115°/60) o aproximadamente −1,92° a −0,833°. [4]

Calcular el amanecer y el atardecer

dónde:

J rise es la fecha juliana real de salida del sol;
J set es la fecha juliana real de la puesta del sol.

Ejemplo de implementación en Python

#!/usr/bin/env python3importar  registro desde  fecha y hora  importar  fecha y hora ,  timedelta ,  zona horaria ,  tzinfo desde  matemáticas  importar  acos ,  asin ,  ceil ,  cos ,  grados ,  fmod ,  radianes ,  sin ,  sqrt desde  hora  importar  horainiciar sesión  =  iniciar sesión . obtenerLogger ()def  _ts2human ( ts :  int  |  float ,  debugtz :  tzinfo  |  Ninguno )  ->  str :  return  str ( datetime . fromtimestamp ( ts ,  debugtz ))def  j2ts ( j :  flotante  |  int )  ->  flotante :  retorno  ( j  -  2440587.5 )  *  86400def  ts2j ( ts :  flotante  |  int )  ->  flotante :  devolver  ts  /  86400.0  +  2440587.5def  _j2human ( j :  float  |  int ,  debugtz :  tzinfo  |  Ninguno )  ->  str :  ts  =  j2ts ( j )  return  f ' { ts } = { _ts2human ( ts , debugtz ) } ' def  _deg2human ( grados :  float  |  int )  ->  str :  x  =  int ( grados  *  3600.0 )  num  =  f '∠ { grados : .3f } °'  rad  =  f '∠ { radianes ( grados ) : .3f } rad'  humano  =  f '∠ { x // 3600 } ° { x // 60 % 60 } { x % 60 } ″' return f ' { rad } = { humano } = { num } '          def  calc (  marca_hora_actual :  flotante ,  f :  flotante ,  l_w :  flotante ,  elevación :  flotante  =  0.0 ,  * ,  debugtz :  tzinfo  |  Ninguno  =  Ninguno , )  ->  tupla [ flotante ,  flotante ,  Ninguno ]  |  tupla [ Ninguno ,  Ninguno ,  bool ]:  iniciar sesión . depuración ( f 'Latitud f = { _deg2human ( f ) } ' )  registro . depuración ( f 'Longitud l_w = { _deg2human ( l_w ) } ' )  registro . depurar ( f 'Ahora ts = { _ts2human ( current_timestamp , debugtz ) } ' )  J_date  =  ts2j ( actual_timestamp )  registro . depuración ( f 'fecha juliana j_date = { J_date : .3f } días' ) # Día juliano  # TODO: ceil ?  n  =  techo ( J_date  -  ( 2451545,0  +  0,0009 )  +  69,184  /  86400,0 )  registro . depuración ( f 'día juliano n = { n : .3f } días' ) # Tiempo solar medio  J_  =  n  +  0,0009  -  l_w  /  360,0  log . depuración ( f 'Tiempo solar medio J_ = { J_ : .9f } días' ) # Anomalía media solar  # M_grados = 357.5291 + 0.98560028 * J_ # Lo mismo, pero se ve feo  M_grados  =  fmod ( 357.5291  +  0.98560028  *  J_ ,  360 )  M_radianes  =  radianes ( M_grados )  log . depuración ( f 'Anomalía media solar M = { _deg2human ( M_grados ) } ' ) # Ecuación del centro  C_grados  =  1.9148  *  sin ( M_radianes )  +  0.02  *  sin ( 2  *  M_radianes )  +  0.0003  *  sin ( 3  *  M_radianes )  # La diferencia para el resultado final del programa es de unos pocos milisegundos  # https://www.astrouw. edu.pl/~jskowron/pracownia/praca/sunspot_answerbook_expl/expl-4.html  # e = 0.01671  # C_grados = \  # grados(2 * e - (1/4) * e ** 3 + (5/96) * e ** 5) * sin(M_radianes) \  # + grados(5/4 * e ** 2 - (11/24) * e ** 4 + (17/192) * e ** 6) * sin(2 * M_radianes) \  # + grados(13 / 12 * e ** 3 - (43 / 64) * e ** 5) * sin(3 * M_radianes) \  # + grados ((103 / 96) * e ** 4 - (451/480) * e ** 6) * sin(4 * M_radianes) \  # + grados ((1097/960) * e ** 5) * sin (5 * M_radianes) \  # + grados ((1223 / 960) * e ** 6) * sin(6 * M_radianes) registro . debug ( f 'Ecuación del centro C = { _deg2human ( C_grados ) } ' ) # Longitud de la eclíptica  # L_grados = M_grados + C_grados + 180.0 + 102.9372 # Lo mismo, pero se ve feo  L_grados  =  fmod ( M_grados  +  C_grados  +  180.0  +  102.9372 ,  360 )  log . depurar ( f 'Longitud de la eclíptica L = { _deg2human ( L_grados ) } ' ) Lambda_radians  =  radianes ( L_grados ) # Tránsito solar (fecha juliana)  J_transit  =  2451545.0  +  J_  +  0.0053  *  sin ( M_radianes )  -  0.0069  *  sin ( 2  *  Lambda_radians )  log . debug ( f 'Tiempo de tránsito solar J_trans = { _j2human ( J_transit , debugtz ) } ' )  # Declinación del Sol  sin_d  =  sin ( Lambda_radians )  *  sin ( radians ( 23.4397 ))  # cos_d = sqrt(1-sin_d**2) # exactamente la misma precisión, pero 1,5 veces más lento  cos_d  =  cos ( asin ( sin_d )) # Ángulo horario  some_cos  =  ( sin ( radianes ( - 0,833  -  2,076  *  sqrt ( elevación )  /  60,0 ))  -  sin ( radianes ( f ))  *  sin_d )  /  ( cos ( radianes ( f ))  *  cos_d )  prueba :  w0_radians  =  acos ( some_cos )  excepto  ValueError :  devuelve  Ninguno ,  Ninguno ,  some_cos  >  0.0  w0_grados  =  grados ( w0_radianes )  # 0...180 registro . depurar ( f 'Ángulo horario w0 = { _deg2human ( w0_grados ) } ' ) j_rise  =  J_transit  -  w0_grados  /  360  j_set  =  J_transit  +  w0_grados  /  360 registro . depuración ( f 'Sunrise j_rise = { _j2human ( j_rise , debugtz ) } ' ) registro . depuración ( f 'Sunset j_set = { _j2human ( j_set , debugtz ) } ' ) registro . depuración ( f 'Duración del día { w0_grados / ( 180/24 ) : .3f } horas ' )         devolver  j2ts ( j_rise ),  j2ts ( j_set ),  Ningunodef  principal ():  registro . basicConfig ( nivel = registro . DEBUG )  latitud  =  33.00801  longitud  =  35.08794  elevación  =  0  print ( calc ( hora (),  latitud ,  longitud ,  elevación ,  debugtz = zona horaria ( timedelta ( horas = 3 ),  'zona falsa' )))si  __nombre__  ==  '__main__' :  principal ()

Ver también

Referencias

  1. ^ NOAA (Departamento de Comercio de EE. UU.). "Detalles del cálculo solar". Laboratorio de Monitoreo Global ESRL - Radiación y Aerosoles Globales .
  2. ^ "Tablas de corrección de la altitud del sextante". www.siranah.de .
  3. ^ "Hoja informativa sobre la Tierra".
  4. ^ La fuente exacta de estos números es difícil de rastrear, pero Notes on the Dip of the Horizon proporciona una descripción que arroja una cifra menos significativa, y otra página de la serie proporciona -2,075.

enlaces externos