2010-04-09 7 views
5

J'utilise actuellement this code pour calculer l'heure du lever/coucher du soleil. (Pour être plus précis, je suis à la recherche de temps civil aube/crépuscule civil qui sont définis comme étant le moment où le soleil se situe entre 0 ° et -6 ° d'altitude). Dans une prochaine étape, je voudrais calculer les heures de début et de fin du crépuscule. Je crois que les calculs doivent être très similaires. Mon idée est que si je veux calculer l'heure de début de l'aube (fin du crépuscule) pour un lieu, je calcule juste le lever du soleil (coucher du soleil) fois pour un endroit 6 ° plus à l'est (ouest). Est-ce que quelqu'un peut confirmer cette hypothèse ou est-ce que je me trompe?Comment calculer l'aube/le crépuscule

Merci pour les réponses!

- Ry

EDIT: PRIVER un peu plus et est venu à la conclusion que mon hypothèse est fausse. Déplacer 6 ° Est est faux, déplacer 6 ° orthogonale à la frontière lumière/ombre serait juste. (Cela devient évident si vous imaginez que l'axe de la Terre n'est pas incliné de 23.xx ° mais de 90 ° - le déplacement vers l'est ne changerait rien).

+0

va ici la solution http://stackoverflow.com/questions/7064531/ sunrise-sunset-times-in-c/9425781 # 9425781 – Geetha

Répondre

2

Le code auquel vous liez utilise une constante (90.833) dans les méthodes calcHourAngle*. Si vous regardez these definitions du lever/coucher du soleil, vous remarquerez la même constante 90.833 sous Définitions techniques et détails de calcul. Un peu plus bas, sous le crépuscule civil, la constante similaire de 96 est utilisée. Peut-être que changer cette constante obtiendrait ce que vous cherchez?

+0

Merci! C'est juste ce que je cherchais! – ryyst

0

Cela fonctionne, mais seulement s'il est acceptable de supposer que l'élévation est insignifiante. Selon votre degré d'exactitude, quelqu'un sur un sommet de montagne verra un lever de soleil (ou un coucher de soleil) légèrement avant (ou après) quelqu'un au niveau de la mer. Par exemple, si vous êtes debout sur le mont Everest, le lever et le coucher du soleil sont décalés de ~ 16 minutes, par rapport au niveau de la mer (source: dos de l'enveloppe mathématique).

Notez que plus votre latitude est extrême, plus les contrastes entre les longues journées d'été et les longues nuits d'hiver sont importants. Certains endroits sur Terre reçoivent la lumière du soleil toutes les 24 heures du jour pendant l'été et sont enveloppés dans l'obscurité toutes les 24 heures de la nuit. Ces endroits n'ont pas une «aube» ou un «crépuscule» quotidien, bien que vous puissiez choisir les temps intermédiaires entre le moment où le soleil est le plus bas et le plus haut dans le ciel.

+0

Eh bien, les algorithmes utilisés pour calculer la position du soleil sont très imprécis dans les endroits au-dessus du cercle arctique, de toute façon, donc j'exclus tous ces endroits dans mon programme. L'élévation n'est pas non plus supportée pour le moment. Mais vous pensez que l'algorithme fonctionne pour des endroits comme New York (c'est-à-dire pas de lieux extrêmes)? – ryyst

+0

Si vous êtes d'accord avec cela, alors oui, cela devrait fonctionner. –

+0

Re: New York, cela dépend probablement de quel étage vous êtes .. ;-) –

0

Cela ne fonctionne pas. Un moyen facile de le prouver à vous-même est qu'aux pôles, l'élévation du soleil ne change pas lorsque vous faites pivoter votre corps, donc aller à l'est ou à l'ouest de 6 degrés n'affectera pas votre temps.

Si vous êtes plus proche de l'équateur, ce calcul sera probablement plus précis, mais je ne pense pas qu'il soit parfait.

+0

@clahey: Je pense que votre assertion est éteint. Aux pôles, il y a une singularité.Vous ne pouvez pas déplacer N degrés «est» du pôle Nord, car il n'y a pas d'autre endroit où aller. Nous ne parlons pas non plus de tourner en place, nous parlons de déplacer une distance angulaire à travers un parallèle, ce qui est une traduction différente. –

+0

Bon, marchez à 10 pas du pôle nord. 6 degrés à l'est de vous est un pas vers la gauche. Vous remarquerez que l'heure du coucher du soleil a changé d'un montant minuscule. Cependant, le début et la fin du crépuscule civil sont encore des jours (semaines, mois?) Séparés les uns des autres. – clahey