Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 北纬89.5度的libnova奇数行为_Perl_Astronomy - Fatal编程技术网

Perl 北纬89.5度的libnova奇数行为

Perl 北纬89.5度的libnova奇数行为,perl,astronomy,Perl,Astronomy,我写了这个程序: #!/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); $obse

我写了这个程序:

#!/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: $i\n"; 
  ($status,$rst) = get_lunar_rst($i, $observer); 
  print "STATUS: $status\n"; 

  $rst->get_transit(); 

  $rise = $rst->get_rise(); 
  print "RISE: $rise\n"; 
  $set = $rst->get_set(); 
  print "SET: $set\n\n"; 
} 
得到了这些结果:

DAY: 2456623 
STATUS: 1 
RISE: 5.5664193588601e-309 
SET: 1.55254159695923e-267 

DAY: 2456624 
STATUS: -1 
RISE: 1.9634470382202e-153 
SET: 2.26294632209635e+137 
DAY: 2456623 
STATUS: 1 
RISE: 5.5664193588601e-309 
SET: 1.14372958360957e-268 

DAY: 2456624 
STATUS: -1 
RISE: 6.80740365931403e+199 
SET: 4.81766816905579e+151 
换句话说,月球从绕极(总是向上)到下 没有实际上升或下降的地平线

我意识到89.5度是一种极端情况,但为什么呢 这个代码不应该工作吗

正如上面的注释所示 是这段时间内的月落(JD 2456623=2013-11-26 12:00:00):

另一个奇怪之处是:如果我注释掉“$rst->get_transit();”行,我 获得以下结果:

DAY: 2456623 
STATUS: 1 
RISE: 5.5664193588601e-309 
SET: 1.55254159695923e-267 

DAY: 2456624 
STATUS: -1 
RISE: 1.9634470382202e-153 
SET: 2.26294632209635e+137 
DAY: 2456623 
STATUS: 1 
RISE: 5.5664193588601e-309 
SET: 1.14372958360957e-268 

DAY: 2456624 
STATUS: -1 
RISE: 6.80740365931403e+199 
SET: 4.81766816905579e+151 
上升/设置仍然很奇怪(因为状态为-1,所以这很好),但是 他们是不同的。我一直认为get_lunar_rst()返回了一个固定的 结构,但显然不是?检查运输的行为 时间改变结构

编辑:好的,我运行了两次程序,完全没有更改它,得到:

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

换言之,2456623设置会无缘无故地更改。

我已经联系了libnova的作者,他们已经确认这是一个bug,并正在努力纠正它

libnova错误地认为,如果正北时天体在地平线以上,那么它们就是绕极体。这是不真实的:

我写了一个修正,它没有假设这一点,但如果物体的磁偏角是非单峰的,它可能仍然是不准确的: