Comment prendre en compte l'élévation de l'observateur lors du calcul du lever/coucher de soleil?Comment prendre en compte l'altitude de l'observateur lors du calcul du lever/coucher de soleil?
Calculer sunrise/set pour n'importe quel lat/longitude n'est pas un problème, mais comment tenir compte de l'élévation au lieu du niveau de la mer ??? Je n'ai plus de combinaisons pour essayer, et après avoir passé plus de trois jours sur ce coup, je mets ma main à l'aide
J'utilise l'excellente source C du domaine public de Paul Schlyter qui semble être la plus courante. Il vous permet de définir "l'altitude que le soleil doit traverser", par exemple -12 pour le crépuscule nautique ou -35/60 etc, mais je ne suis pas sûr de savoir comment modifier cela pour tenir compte de l'élévation de l'observateur au-dessus du niveau de la mer. Par exemple, Quito en Equateur est l'une des villes les plus hautes à 2850m d'altitude.
Lat + Lon: -78,46784, -0,18065
Fuseau horaire: -5
Elév: 2850m
En utilisant la calculatrice de Casio (http://keisan.casio.com/exec/system/1224686065), l'un des rares que j'ai trouvé que compte le fait pour l'élévation, il retourne les éléments suivants (date = 1 janvier 2017):
Sunrise = 6: 14 Sunset = 18: 22 élévation = 0 m <- je peux déjà obtenir ce
Sunrise = 6: 05 Sunset = 18: 30 Altitude = 2850m < - mais comment puis-je l'obtenir?
Je suis en mesure d'obtenir le premier (Asc = 0) en réglant l'altitude = -35/60 (-0,58333) = 1,0 membre supérieur Mais comment obtenir le second?
J'utilise la fonction suivante:
int sunriset(int year, int month, int day, double lon, double lat,
double altit, int upper_limb, double *trise, double *tset)
/*************************************************************/
/* altit = the altitude which the Sun should cross */
/* Set to -35/60 degrees for rise/set, -6 degrees */
/* for civil, -12 degrees for nautical and -18 */
/* degrees for astronomical twilight. */
/* upper_limb: non-zero -> upper limb, zero -> center */
/* Set to non-zero (e.g. 1) when computing rise/set */
/* times, and to zero when computing start/end of */
/* twilight. */
/**************************************************************/
SUNRISE.C (je l'ai fait ce PRÊT-À-RUN Exemple): avec Quito codé en dur lat/long/etc: https://pastebin.com/XSWR2Hby Compile: gcc sunrise.c -o sunrise.exe
Le dernier paragraphe de [cette section] (https://en.wikipedia.org/wiki/Sunrise_equation#Hour_angle)? –
C'est ce que je pensais mais j'avais déjà essayé toutes les combinaisons de ces exemples, par exemple. alt = -0,8333 + -0,5536
alt = -0,8333--1,388
alt = -0,8333 + -101,378
alt = -0,8333 - (0,347 * SQR (mètres))
etc –
leur exemple est également source de confusion, comme l'algorithme affiché semble utiliser à la fois Division et Square Root? mais leur exemple utilise seulement Division !? –