命令行中的日出和其他天文数据


18

是否有一个简单的开源命令行程序可以显示给定日期和位置的日出和日落时间,还可能显示月亮和行星数据?

浏览Debian软件包数据库和Google搜索,我找不到任何相关的信息。令我感到惊讶的是-考虑到既是天文学极客又是unix极客的人数,我本以为事实上的标准sunrise(1)(或也许是sunrise(6))。

我对偶然执行计算的更复杂程序不感兴趣,例如天空图(天体,kstar,星图,恒星),地球图(日光,xplanet),日历/ agendas(emacs,提醒),时钟(glunarclock,wmsun) ),潮汐年历(xtide)。也许有aa天文年历),但我没有看到一种简单的方法来询问在这个经度和纬度下这个日期太阳何时几点升起。

我错过了什么?

Answers:


1

对于我这样的懒骨头,有一个非常简单的程序称为hdate,可以在许多发行版中使用(apt-get install hdate在Debian / Ubuntu / ...上):

hdate -s -l N50 -L E14 -z2

输出:

Wednesday, 26 June 2019, 23 Sivan 5779
sunrise: 04:55
sunset: 21:17

选项

  • -s sunset sunrise
  • -l-L:布拉格的海拔和纬度(50°05′N 14°25′E)
  • -z zone:SELC = + 2

םודהרבהיהודיםחכמים。:-)


好吧,这当然很方便,而且根本不会出现我想去的地方(在软件包说明中没有关于此功能的暗示)。谢谢!
吉尔斯(Gillles)“所以-别再邪恶了”

好吧,我不得不和一些古代的天文/天文工作人员打交道,有关“白求林之星”(betlemskahvezda.klimes.us)。这确实是一件复杂且晦涩的事情,所以我无意中创建了它……:-)
xerostomus


6

我最终使用了Perl DateTime::Event::Sunrise,因为从CPAN部署模块比编译C程序更容易。

用法示例:

use DateTime;
use DateTime::Astro::Sunrise;
$latitude = "+48.857"; $longitude = "+2.351"; 
$sr = DateTime::Astro::Sunrise->new($longitude, $latitude, 0, 3);
$date = DateTime->now; $date->set_time_zone("local");
($rise, $set) = $sr->sunrise($date);
$rise->set_time_zone("local"); $set->set_time_zone("local");
print $rise, " to ", $set, "\n";

我的sunrise剧本



3

看看这个 Linux家庭自动化 Linux家庭自动化站点,并在页面上搜索“ sunrise”。c中有一些命令行程序。1985年的产品极简主义。我拥有那个时代的许多相关程序的源代码,但是我无法在网络上找到它们。

更新:我刚刚在此事件记录器页面上找到了其他一些源,包括日期。在页面上搜索“ rise_set”。

2017年12月23日更新:Linux家庭自动化项目已经移动,但是看起来日出,日落等命令行程序仍然在此处此处可用。我删去了指向原始页面的链接,但保留了该链接以供参考,并添加了指向新页面的链接。


链接Linux家庭自动化已损坏!
nath

1
@nath:更新。感谢您指出了这一点。
garyjohn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.