È possibile calcolare i tempi di alba, tramonto e tramonto utilizzando PyEphem? Ho usato per produrre PyEphem giorno e notte tempo, ma non ho trovato nulla sul tramonto/tramonto/albaCalcolo dei tempi di alba e tramonto utilizzando PyEphem
risposta
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.
Si potrebbe provare a impostare il parametro di horizon
below the horizon secondo le diverse definizioni di tramonto/alba.
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.
- 1. Come calcolare i tempi di alba/tramonto
- 2. Libreria Objective-C per alba e tramonto?
- 3. C# alba/tramonto con la latitudine/longitudine
- 4. Calcoli alba/set
- 5. Calcolo di quanti minuti ci sono tra due tempi
- 6. Il calcolo del tempo di alba non corrisponde al risultato di Google
- 7. Accelerazione dei tempi di compilazione in ASP.NET
- 8. Pyephem Algorithms Riferimento
- 9. Tempi di raccolta dei rifiuti estremamente lunghi
- 10. Stampa dei tempi di esecuzione del test e analisi dei test lenti con py.test
- 11. Calcolo dei percorsi SVG
- 12. Suggerimenti per l'ottimizzazione dei tempi di costruzione in Android Studio?
- 13. calcolo delle distanze utilizzando l'accelerometro
- 14. MS-Excel Tempi negativi
- 15. Calcolo dei percentili al volo
- 16. Calcolo dei vertici di un rettangolo ruotato
- 17. Calcolo utilizzando la matrice di strutture?
- 18. Modifica dei livelli di servizio o del livello di prestazioni e tempi di inattività del database
- 19. server di calcolo laterale utilizzando Firebase
- 20. Accesso a Google fogli di calcolo con C# utilizzando l'API dei dati di Google
- 21. NumPy matrice inganno - somma dei tempi inversi matrici
- 22. Confronto tempi in D
- 23. Tracciamento satellitare Python con spg4, posizioni di pyephem non corrispondenti
- 24. Calcolo del turnover dei dipendenti con R
- 25. Calcolo della somiglianza dei dati binari
- 26. Come lavorare con tempi, distanze e velocità?
- 27. Risultati per Observer() apparentemente non conteggiano gli effetti di elevazione in PyEphem
- 28. Tempi precisi con RequestAnimationFrame
- 29. Aggiornamento dei valori di database esistenti dal foglio di calcolo
- 30. Tempo di calcolo! =