2010-04-09 47 views
5

Attualmente sto utilizzando this code per calcolare i tempi di alba/tramonto. (Per essere più precisi, sto cercando i tempi di alba civile/crepuscolo civile che sono definiti come il tempo in cui il sole è tra 0 ° e -6 ° di altitudine). Come passo successivo, mi piacerebbe calcolare l'ora di inizio e di fine del tramonto. Credo che i calcoli debbano essere molto simili.Come calcolare i tempi di alba/tramonto

La mia idea è che se voglio calcolare l'ora di inizio dell'alba (fine del tramonto) per un luogo, ho appena calcolato i tempi di alba (tramonto) per un luogo 6 ° più a est (ovest).

Qualcuno può confermare questa ipotesi o sto pensando male?

Grazie per le risposte!

- Ry

EDIT: ci pensò un po 'di più ed è giunta alla conclusione che la mia ipotesi è sbagliata. Spostare 6 ° Est è sbagliato, spostando 6 ° ortogonale al bordo luce/ombra sarebbe giusto. (Diventa ovvio se immaginate che l'asse della Terra non sia inclinato di 23.xx ° ma 90 ° - spostarsi verso est non cambierebbe nulla).

+0

Qui vale la soluzione http://stackoverflow.com/questions/7064531/ sunrise-sunset-times-in-c/9425781 # 9425781 – Geetha

risposta

2

Il codice a cui si fa il collegamento utilizza una costante (90.833) nei metodi calcHourAngle*. Se guardi allo these definitions all'alba/al tramonto, noterai la stessa costante 90.833 in Definizioni tecniche e Dettagli computazionali. Un po 'più in basso, sotto il crepuscolo civile, viene usata la costante simile a 96. Forse cambiare quella costante otterrebbe quello che stai cercando?

+0

Grazie! È proprio quello che stavo cercando! – ryyst

0

Questo funziona, ma solo se va bene assumere che l'elevazione è insignificante. A seconda di quanto esatto devi essere, qualcuno in cima a una montagna alta sperimenterà l'alba (o il tramonto) leggermente prima (o dopo) qualcuno al livello del mare. Ad esempio, se ti trovi sul Monte Everest, l'alba e il tramonto vengono spostati di circa 16 minuti, rispetto al livello del mare (fonte: parte posteriore della busta matematica).

Nota che più estremo è la tua latitudine, più i contrasti sono più intensi tra le lunghe giornate estive e le notti invernali più lunghe. Alcuni luoghi sulla Terra ricevono la luce del sole tutte le 24 ore del giorno durante l'estate e sono avvolti nell'oscurità tutte le 24 ore della notte. Questi luoghi non hanno un "alba" o "crepuscolo" al giorno, anche se puoi scegliere i tempi a metà strada tra il sole più basso e il più alto nel cielo.

+0

Bene, gli algoritmi utilizzati per calcolare la posizione del sole sono comunque molto imprecisi in punti sopra il circolo polare artico, quindi escludo tutti quei punti del mio programma. L'altezza non è supportata al momento. Ma tu pensi che l'algoritmo funzioni per luoghi come New York City (cioè non luoghi estremi)? – ryyst

+0

Se sei d'accordo, allora sì, dovrebbe funzionare. –

+0

Ri: New York, probabilmente dipende da che piano stai .. ..-) –

0

Questo non funziona. Un modo semplice per dimostrarlo a te stesso è che ai poli, l'elevazione del sole non cambia mentre ruoti il ​​tuo corpo, quindi andare a est oa ovest di 6 gradi non influirà sui tuoi tempi.

Se sei più vicino all'equatore, questo calcolo sarà probabilmente più preciso, ma non penso che sia mai perfetto.

+0

@clahey: Penso che la tua affermazione sia disattivata. Ai poli, c'è una singolarità.Non puoi spostare N gradi "est" dal Polo Nord, perché non c'è nessun altro posto dove andare. Inoltre non stiamo parlando di rotazione sul posto, stiamo parlando di spostare una distanza angolare attraverso un parallelo, che è una traduzione diversa. –

+0

Ok, cammina 10 passi dal polo nord. 6 gradi ad est di te è un passo a sinistra. Noterai che l'ora del tramonto è cambiata di un importo minuscolo. Tuttavia, l'inizio e la fine del crepuscolo civile sono ancora giorni (settimane, mesi?) Separati l'uno dall'altro. – clahey

Problemi correlati