Au cours de l’année, le Soleil passe au-dessus des lieux situés dans la zone intertropicales.
En cherchant quel lieu se trouve sous le Soleil à un instant donné, on remarque qu’il s’agit rarement d’une terre émergée, vue la proportion d’océans à la surface du globe.
D’où l’idée de rechercher la latitude pour laquelle, au cours d’une journée, le Soleil survole le plus de terres émergées. Ce script apporte la réponse.
Cette carte a été générée avec un script Python et la bibliothèque Geopandas (gestion de données géographiques).
Les étapes du calcul :
L’ensemble des pays est importé depuis un fichier shapefile (.shp) contenant les frontières des pays.
Ensuite on fusionne toutes les données de géométries pour créer une variable ‘union’ de type Geoseries.
# import des contours des pays :
chemin = '/home/david/Documents/CARTOGRAPHIE/donnees SIG/world-administrative-boundaries/world-administrative-boundaries.shp'
df = gpd.read_file(chemin)
# union de toutes les terres en une seule géométrie :
polygones = df.geometry
union = gpd.GeoSeries(unary_union(polygones))
On crée une variable de type LineString pour calculer la longueur de l’équateur (référence pour le calcul de % de terres émergées).
equateur = gpd.GeoSeries(LineString([[-180,0], [180,0]]))
On peut calculer sa longueur simplement avec
equateur.length
Pour une série de latitudes rapprochées entre -23.4° et 23.4°, on crée une variable LineString correspondant à un parallèle terrestre de latitude donnée. Ensuite on calcule l’intersection de cette ligne avec la variable ‘union’ des terres émergées. Enfin, on calcule la longueur de l’intersection
def trace(latitude):
"""
latitude : float.
Trace les points terrestres de la latitude donnée.
Renvoie le pourcentage de terres émergées par
rapport à la longitude totale.
"""
parallele = gpd.GeoSeries(LineString([[-180,latitude], [180,latitude]]))
intersec = union.intersection(parallele)
fraction = intersec.length[0] / equateur.length[0] * 100
# tracé de la ligne sur la carte :
intersec.plot(ax=ax, color= cmap(norm(fraction)), linewidth=0.2)
# tracé de la ligne dans l'histogramme axe2 :
ax2.plot([0, fraction],[latitude, latitude],
c=cmap(norm(fraction)), lw=0.2)
return fraction
La ligne est tracée avec une couleur qui reflète le pourcentage de terres émergées survolées par le Soleil.
En insérant un second graphique, on trace un histogramme à barres horizontales pour tracer le % en fonction de la latitude.
En consultant des éphémérides de déclinaison du Soleil (un jour donné, la déclinaison du Soleil est égal à la latitude des lieux qu’il survole), on lit que le Soleil survole la latitude 22.97° autour du 10 juin et du 4 juillet.
Le script :
Soyez le premier à commenter