web-development-kb-pt.site

Sunrise e outros dados astronômicos da linha de comando

Existe um programa de linha de comando de código aberto simples que pode mostrar os horários do nascer e do pôr do sol em uma determinada data e local, e talvez dados da lua e do planeta também?

Navegando no banco de dados de pacotes Debian e pesquisas no Google, não consigo encontrar nada relevante. Isso me surpreende - considerando o número de pessoas que são geeks de astronomia e geeks de unix, eu esperava um padrão de fato sunrise(1) (ou talvez sunrise(6)).

Não estou interessado em programas mais complexos que incidentalmente realizam os cálculos, como mapas do céu (celestia, kstars, starplot, stellarium), mapas da terra (sunclock, xplanet), calendários/agendas (emacs, lembre), relógios (glunarclock, wmsun ), almanaques de maré (xtide). Talvez haja aa ( astronomical-almanac ), mas não vejo uma maneira simples de perguntar a que horas o Sol nascerá nesta data nesta longitude e latitude.

O que eu perdi?

19

Para ossos preguiçosos como eu, existe um programa muito simples chamado hdate , disponível em muitas distribuições (apt-get install hdate no Debian/Ubuntu /…):

hdate -s -l N50 -L E14 -z2

Resultado:

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

Opções :

  • -s sunset sunrise
  • -l, -L: Altitude e Latitude de Praga (50 ° 05′N 14 ° 25′E)
  • -z zone: SELC = + 2

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

2
xerostomus

Você tentou sunwait?

http://www.risacher.org/sunwait/

Sunwait é um pequeno programa em C para calcular o nascer e o pôr do sol, bem como crepúsculos civis, náuticos e astronômicos. [..]

11
echox

Acabei usando o Perl DateTime::Event::Sunrise , porque tende a ser mais fácil para mim implantar um módulo do CPAN do que compilar programas C.

Uso de amostra:

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";

Meu sunrise script .

6

Veja isso Linux Home AutomationLinux Home Automation site e procure na página por "amanhecer". Existem alguns programas de linha de comando lá de c. 1985 que são bem minimalistas. Tenho o código-fonte de vários programas relacionados daquela época, mas não consigo encontrá-los na web.

Update: Acabei de encontrar a fonte de alguns outros, incluindo sdate, nesta página Event Logger . Procure na página por "rise_set".

Atualização 2017-12-23: O projeto Linux Home Automation foi movido, mas parece que os programas de linha de comando para o nascer do sol, pôr do sol etc. ainda estão disponíveis aqui e aqui . Risou o link da página original, mas o mantive para referência e adicionei um link para a nova página.

3
garyjohn

Para Python há o módulo astral . Não é linha de comando, mas implementar um programa de linha de comando usando-o deve ser trivial (como seu exemplo Perl). Documentação e exemplos são em http://astral.readthedocs.io/en/latest/index.html .

3
Robie Basak