Escribí este programa:
#!/usr/bin/perl
use Astro::Nova qw(get_solar_equ_coords get_lunar_equ_coords get_hrz_from_equ
get_solar_rst_horizon get_timet_from_julian
get_julian_from_timet get_lunar_rst get_lunar_phase);
$observer = Astro::Nova::LnLatPosn->new("lng"=>0,"lat"=>89.5);
for $i (2456623..2456624) {
print "DAY: $in";
($status,$rst) = get_lunar_rst($i, $observer);
print "STATUS: $statusn";
$rst->get_transit();
$rise = $rst->get_rise();
print "RISE: $risen";
$set = $rst->get_set();
print "SET: $setnn";
}
y obtuve estos resultados:
DAY: 2456623
STATUS: 1
RISE: 5.5664193588601e-309
SET: 1.55254159695923e-267
DAY: 2456624
STATUS: -1
RISE: 1.9634470382202e-153
SET: 2.26294632209635e+137
En otras palabras, la luna va de circumpolar (siempre arriba) a abajo El horizonte sin levantarse ni ponerse nunca realmente.
Me doy cuenta de que 89.5 grados es una especie de caso de esquina, pero ¿por qué ¿No debería funcionar este código?
Como nota http://aa.usno.navy.mil/data/docs/RS_OneYear.php muestra allí es una puesta de la luna en este intervalo (JD 2456623 = 2013-11-26 12:00:00):
Otra rareza: si comento el "$ rst-> get_transit ();" línea, yo obtener estos resultados:
DAY: 2456623
STATUS: 1
RISE: 5.5664193588601e-309
SET: 1.14372958360957e-268
DAY: 2456624
STATUS: -1
RISE: 6.80740365931403e+199
SET: 4.81766816905579e+151
El aumento / conjunto sigue siendo extraño (lo que está bienya que el estado es -1), pero ellos son diferentes. Siempre asumí que get_lunar_rst () devolvía un error fijo. Estructura, pero al parecer no? El mismo acto de controlar el tránsito. ¿El tiempo altera la estructura?
EDIT: OK, ejecuté el programa dos veces sin cambiarlo en absoluto y obtuve:
DAY: 2456623
STATUS: 1
RISE: 5.5664193588601e-309
SET: 2.99352717623831e-264
DAY: 2456624
STATUS: -1
RISE: 1.9634470382202e-153
SET: 2.26294632209635e+137
DAY: 2456623
STATUS: 1
RISE: 5.5664193588601e-309
SET: 3.04770606791278e-262
DAY: 2456624
STATUS: -1
RISE: 1.9634470382202e-153
SET: 2.26294632209635e+137
En otras palabras, el 2456623 establece cambios sin ninguna razón.
Respuestas
1 para la respuesta № 1Me he contactado con los autores de libnova, quienes han confirmado que se trata de un error y están trabajando para corregirlo.
libnova asume incorrectamente que los cuerpos son circumpolar si están por encima del horizonte cuando se dirigen hacia el norte. Esto es falso: https://astronomy.stackexchange.com/q/963
He escrito una solución que no asume esto, pero aún puede ser inexacta si la declinación de un cuerpo no es unimodal: https://astronomy.stackexchange.com/questions/962/is-lunar-elevation-at-a-given-location-for-a-given-day-unimodal