/ / comportamiento impar de libnova para 89.5 grados de latitud norte - Perl, astronomía

Comportamiento impar de libnova para 89.5 grados latitud norte - perl, astronomía

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

enter image description here

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 № 1

Me 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