Comment obtenir l’altitude de surface pour une latitude et une longitude spécifiques avec Python
Published:
18 mai 2026
Published:
18 mai 2026
Introduction
Une manière simple d’obtenir l’altitude de surface pour un point défini par une latitude et une longitude consiste à échantillonner un modèle numérique d’élévation. Ici, nous utilisons le Copernicus DEM GLO-30, un modèle numérique de surface global à 30 m, disponible sous forme de fichiers Cloud Optimized GeoTIFF sur AWS. Il représente la surface terrestre, incluant le terrain, les bâtiments et la végétation. Les valeurs d’altitude sont exprimées en mètres.
Rasterio peut ouvrir des fichiers locaux, des URLs ou des chemins virtuels compatibles avec GDAL, comme /vsis3/. La méthode sample() permet d’extraire les valeurs d’un raster à partir de coordonnées géographiques.
Visualiser le point sur une carte satellite avec Folium
importfolium# Coordonnées du Mont Blanclon=6.8652lat=45.8326# Créer la cartem=folium.Map(location=[lat,lon],zoom_start=12,tiles=None)# Ajouter l’imagerie satellite Esrifolium.TileLayer(tiles=("https://server.arcgisonline.com/ArcGIS/rest/services/""World_Imagery/MapServer/tile/{z}/{y}/{x}"),attr="Esri World Imagery",name="Esri Satellite",overlay=False,control=True,).add_to(m)# Ajouter un marqueurfolium.CircleMarker(location=[lat,lon],radius=8,color="red",fill=True,fill_color="red",fill_opacity=0.9,popup=(f"<b>Mont Blanc</b><br>"f"Latitude: {lat}<br>"f"Longitude: {lon}"),).add_to(m)# Contrôle des couches, optionnelfolium.LayerControl().add_to(m)# Afficher la cartem
Comment obtenir l’altitude de surface pour une latitude et une longitude spécifiques avec Python
Cet exemple fonctionne uniquement si tous les points se trouvent dans la même tuile DEM. Pour des jeux de données plus grands, il faut d’abord regrouper les points par nom de tuile, puis échantillonner chaque tuile séparément.
Visualiser plusieurs points sur une carte satellite avec Folium
importfolium# Centre de la cartecenter_lat=lats.mean()center_lon=lons.mean()m=folium.Map(location=[center_lat,center_lon],zoom_start=12,tiles=None)# Imagerie satellitefolium.TileLayer(tiles=("https://server.arcgisonline.com/ArcGIS/rest/services/""World_Imagery/MapServer/tile/{z}/{y}/{x}"),attr="Esri World Imagery",name="Esri Satellite",overlay=False,control=True,).add_to(m)# Ajouter les pointsfori,(lat,lon,elev)inenumerate(zip(lats,lons,elevations_m)):popup_text=(f"<b>Point {i}</b><br>"f"Latitude: {lat:.4f}<br>"f"Longitude: {lon:.4f}<br>"f"Altitude: {elev:.1f} m")folium.CircleMarker(location=[lat,lon],radius=7,color="red",fill=True,fill_color="red",fill_opacity=0.9,popup=popup_text,).add_to(m)folium.LayerControl().add_to(m)m
Enregistrer la carte au format HTML :
1
m.save("mont_blanc_elevation_map.html")
Trouver la bonne tuile Copernicus DEM pour une latitude et une longitude
Le Copernicus DEM est organisé en tuiles géographiques de 1° × 1°.
importnumpyasnpdefget_copernicus_tile(lat,lon):lat_floor=int(np.floor(lat))lon_floor=int(np.floor(lon))# Chaîne pour la latitudeiflat_floor>=0:lat_str=f"N{lat_floor:02d}"else:lat_str=f"S{abs(lat_floor):02d}"# Chaîne pour la longitudeiflon_floor>=0:lon_str=f"E{lon_floor:03d}"else:lon_str=f"W{abs(lon_floor):03d}"tile=(f"Copernicus_DSM_COG_10_"f"{lat_str}_00_"f"{lon_str}_00_DEM")returntile
contient une grille d’altitude à 30 m de résolution.
Note importante concernant les coordonnées négatives :
Coordonnée
Préfixe
Latitude positive
N
Latitude négative
S
Longitude positive
E
Longitude négative
W
Exemples :
Localisation
Tuile
France
N45 E006
Colorado
N40 W105
Chili
S33 W071
Références
Ressource
Pourquoi c’est utile
Copernicus DEM sur AWS
Accès au jeu de données et structure S3
Manuel produit Copernicus DEM
Référence verticale et détails du produit
Documentation Rasterio
Lecture de GeoTIFFs et échantillonnage raster
Author
Benjamin
Scientifique en observation de la Terre et développeur, j’explore les données satellitaires, la détection des incendies et l’analyse environnementale avec Python et le machine learning. Passionné par l’open science et le partage d’outils pratiques.