2010-04-14 9 views

risposta

14

Per all'alba AMD tramonto, vedi pyephem documentation regarding twilight
In poche parole, all'alba e al tramonto esprimono il momento in cui il centro del Sole è in un angolo particolare sotto l'orizzonte; l'angolo utilizzato per questo calcolo varia per la definizione dei "civili", di navigazione (nautica) e dei crepuscoli astronomici che usano rispettivamente 6, 12 e 18 gradi.

In opposizione alba corrisponde al momento in cui il bordo del Sole appare (o scompare, per il tramonto) appena sopra/sotto l'orizzonte (0 gradi). Quindi, tutti, i civili, i marinai e gli appassionati di astronomia hanno gli stessi tempi di salita/uscita. (vedi Naval Observatory risings and settings in pyephem documentation).

In sintesi, una volta che si è correttamente parametrizzata un pyephem.Observer (impostando il suo lat, long, data, ora, la pressione (? Per l'altitudine?), Etc.), i vari momenti del crepuscolo (alba, tramonto) e il alba e tramonto sono ottenuti dai metodi
Observer.previous_rising() e Observer.next_setting(),
  cui   il primo argomento è ephem.Sun() e
  l'argomento use_center= deve essere impostato a True per i calcoli crepuscolo, e
  l'orizzonte è 0 (o 0:34 se si conta per la rifrazione dell'atmosfera) o -6, -12 o -18.

4

Si potrebbe provare a impostare il parametro di horizonbelow the horizon secondo le diverse definizioni di tramonto/alba.

21

Il seguente script calcolerà i tempi di alba, tramonto e tramonto utilizzando PyEphem. I commenti dovrebbero essere adeguati per spiegare cosa sta facendo ciascuna parte.

import ephem 

#Make an observer 
fred  = ephem.Observer() 

#PyEphem takes and returns only UTC times. 15:00 is noon in Fredericton 
fred.date = "2013-09-04 15:00:00" 

#Location of Fredericton, Canada 
fred.lon = str(-66.666667) #Note that lon should be in string format 
fred.lat = str(45.95)  #Note that lat should be in string format 

#Elevation of Fredericton, Canada, in metres 
fred.elev = 20 

#To get U.S. Naval Astronomical Almanac values, use these settings 
fred.pressure= 0 
fred.horizon = '-0:34' 

sunrise=fred.previous_rising(ephem.Sun()) #Sunrise 
noon =fred.next_transit (ephem.Sun(), start=sunrise) #Solar noon 
sunset =fred.next_setting (ephem.Sun()) #Sunset 

#We relocate the horizon to get twilight times 
fred.horizon = '-6' #-6=civil twilight, -12=nautical, -18=astronomical 
beg_twilight=fred.previous_rising(ephem.Sun(), use_center=True) #Begin civil twilight 
end_twilight=fred.next_setting (ephem.Sun(), use_center=True) #End civil twilight 

Spostare gli account di orizzonte per la rifrazione della luce attorno alla curvatura della Terra. PyEphem ha la capacità di calcolare questo più esattamente data una temperatura e una pressione, ma l'Almanacco Astronomico Navale degli Stati Uniti preferisce ignorare l'atmosfera e semplicemente spostare l'orizzonte. Mi riferisco all'USNAA qui perché è una fonte autorevole contro cui è possibile controllare questi tipi di calcoli. Puoi anche verificare le risposte su NOAA's website.

Si noti che PyEphem accetta e restituisce valori nel tempo UTC. Ciò significa che devi convertire l'ora locale in UTC e quindi convertire l'ora UTC in ora locale per trovare le risposte che stai probabilmente cercando. Alla data in cui ho scritto questa risposta Fredericton, Canada, nello ADT timezone era 3 ore indietro rispetto all'ora UTC.

Per i calci, ho anche gettato un calcolo del mezzogiorno solare. Tieni presente che questa è un'ora in più rispetto a quello che ti aspetteresti: questo è un effetto collaterale del nostro utilizzo dell'ora legale.

Tutto questo ritorna:

begin civil twilight: 2013/9/4 09:20:46 
sunrise:    2013/9/4 09:51:25 
noon:     2013/9/4 16:25:33 
sunset:    2013/9/4 22:58:49 
end civil twilight: 2013/9/4 23:29:22 

noti che avremmo dovuto sottrarre 3 ore per convertirli al fuso orario ADT.

This La pagina di documentazione di PyEphem contiene molti dei precedenti, anche se ho cercato di chiarire entrambi i punti che ho trovato confuso e includere le parti importanti di quel collegamento qui su StackOverflow.

Problemi correlati