Mesure de la déclinaison d'un mur par la longueur de l'ombre d'un gnomon

D'après une idée proposée par Jorge Ramalho


RESUME: En gnomonique, les méthodes de mesure de la déclinaison d'un mur ou d'un plan sont nombreuses. Elles utilisent généralement le soleil et consistent à relever l'ombre portée par un point ou un fil à plomb sur une planchette ou directement sur le plan considéré. Voici une variante de ces méthodes basée sur le relevé de la longueur de l'ombre d'un gnomon, tige perpendiculaire au plan à mesurer dont l'inclinaison est connue.
Le principe du calcul utilisé est exposé dans cette page ainsi qu'un petit programme d'application. Celui-ci est adapté du programme orient.bas qui contient une éphéméride assez précise car calculée sur le cycle de 4 ans des années bissextiles et corrigée de la réfraction. Les résultats intermédiaires de hauteur et d'azimut du soleil sont affichés avec une précision de l'ordre de la minute d'angle.

La connaissance de la longueur de l'ombre du gnomon nous permet de calculer la hauteur A du soleil au dessus du plan à mesurer (Fig. 1). Nous pouvons écrire:

  tg A = G/L
ou encore:
  sin A = cos B = G/Rac (G² + L²)  (1)

Fig. 1

Représentons, figure 2, la sphère céleste de centre O. Soient Z le zénith, S la position du soleil et T le prolongement du gnomon. Nous avons un triangle sphérique dont nous connaissons deux cotés: ZS correspond au complément de la hauteur H du soleil au dessus de l'horizon et ZT à l'inclinaison I du plan. Enfin, remarquons que ST correspond à l'angle B de la figure 1.

Fig. 2

Les relations des triangles sphériques nous donnent:

  cos ST = cos B = cos (90° - H).cos I + sin (90° - H).sin I.cos (Az - D)
D'après (1) on obtient:
                  G/Rac (G² + L²) - sin H.cos I
  cos (Az - D) = -------------------------------
                           cos H.sin I

                    G/Rac (G² + L²) - sin H.cos I
  D = Az ± Arccos (-------------------------------)
                             cos H.sin I
Le signe de l'Arccos dépend de la position de l'ombre par rapport à la ligne de plus grande pente qui passe par le pied du gnomon. Si l'ombre est à gauche en regardant la planchette, il faut ajouter l'Arccos et si elle est à droite, bien sûr, il faut le soustraire.
Quand le plan est vertical, I = 90°, la relation se simplifie et on obtient:
                    G/Rac (G² + L²)
  D = Az ± Arccos (-----------------)
                        cos H
Le programme d'application proposé ci-dessous est écrit pour Qbasic de Microsoft mais il est facilement adaptable à tout autre langage.

Remarque: Ce programme est valable en tout point du globe sans aucune modification.


DECLARE FUNCTION asin! (y!)
DECLARE FUNCTION acos! (x!)
DECLARE FUNCTION angl! (x!, y!)

REM Constantes
k = .0172024
jm = 674.03
jl = 752.2
e = .0167
ob = .4091
pi = 3.141593: dr = pi / 180: hr = pi / 12

REM Fuseau horaire et coordonnées géographiques
INPUT "Fuseau horaire"; fh
INPUT "Longitude (en degré, positive à l'ouest)"; lo: lo = lo * dr
INPUT "Latitude (en degré)"; la: dp = (90 - la) * dr

REM Date
INPUT "Jour, Mois, Année"; jo, mo, an
IF mo < 3 THEN mo = mo + 12: an = an - 1
INPUT "Heure (légale), Minute"; hh, mn

REM Nombre de jours écoulés depuis
REM le 1 Mars O h TU de la dernière année bissextile + 2 ans

h = hh + mn / 60 - fh
j = 365 * (an - 4 * INT(an / 4)) + INT(30.61 * (mo + 1)) + jo + h / 24 - 853

REM Longitude vraie du soleil
m = k * (j - jm): l = k * (j - jl)
s = l + 2 * e * SIN(m) + 1.25 * e * e * SIN(2 * m)

REM Coordonnées locales du soleil
x = COS(s): y = COS(ob) * SIN(s): z = SIN(ob) * SIN(s)
r = l + h * hr - lo - pi: GOSUB 1300: r = dp: GOSUB 1200

REM Correction de la réfraction
ht = asin(z): rf = 0
IF ht < 1.56 THEN rf = .000291 / TAN(ht + .00223 / (ht + .077))

REM Hauteur et azimut du soleil
ht = ht + rf
az = angl(x, -y)

REM Affichage de la position du soleil en degrés
PRINT "Azimut="; az / dr
PRINT "hauteur="; ht / dr

INPUT "Hauteur du gnomon"; g
INPUT "Longueur de l'ombre (dans la même unité)"; lg
INPUT "Inclinaison du plan (90° pour un mur vertical)"; i: i = i * dr

dl = acos((g / SQR(g * g + lg * lg) - SIN(ht) * COS(i)) / COS(ht) / SIN(i))

REM affichage des résultats en degrés
PRINT
PRINT "En regardant la planchette, par rapport à la ligne"
PRINT "de plus grande pente passant par le pied du gnomon"
PRINT "si l'ombre est à gauche: d="; (az + dl) / dr
PRINT "si l'ombre est à droite: d="; (az - dl) / dr

END

1200 REM Rotation de l'angle r autour de l'axe y
rx = COS(r) * x - SIN(r) * z: rz = SIN(r) * x + COS(r) * z
x = rx: z = rz: RETURN

1300 REM Rotation de l'angle r autour de l'axe z
rx = COS(r) * x + SIN(r) * y: ry = -SIN(r) * x + COS(r) * y
x = rx: y = ry: RETURN

FUNCTION acos (x)
REM Fonction Arc Cosinus
SHARED pi
IF x = 0 THEN
  a = pi / 2
ELSE
  a = ATN(SQR(1 - x * x) / x)
  IF x < 0 THEN a = a + pi
END IF
acos = a
END FUNCTION

FUNCTION angl (x, y)
REM Angle d'un vecteur par rapport à l'axe des x
SHARED pi
IF x = 0 THEN
  a = SGN(y) * pi / 2
ELSE
  a = ATN(y / x)
  IF x < 0 AND y >= 0 THEN a = a + pi
  IF x < 0 AND y < 0 THEN a = a - pi
END IF
angl = a
END FUNCTION

FUNCTION asin (y)
REM Fonction Arc Sinus
SHARED pi
IF ABS(y) = 1 THEN asin = y * pi / 2 ELSE asin = ATN(y / SQR(1 - y * y))
END FUNCTION


Télécharger le fichier source

Retour à la page d'accueil -o- Reveno al la akcepta retpagho

Date de création: 21 Février 2000
Date de la dernière mise à jour: 28 Octobre 2000 (Merci Guido)