Retour au blog

Mettre en place un serveur d’élévation topographique (OpenTopoData) : Docker, datasets et service systemd

Publié le 04 mar. 2026

Un serveur topographique (ou serveur d’élévation) expose une API HTTP permettant de récupérer l’altitude pour une ou plusieurs coordonnées GPS. C’est typiquement utilisé pour :

  • profil altimétrique (dénivelé) d’un itinéraire,

  • enrichissement de traces GPX,

  • calculs de pente / analyse terrain,

  • affichage d’altitude côté application.

Dans ce guide, on met en place OpenTopoData, une API d’élévation open source, avec Docker, puis on la rend “prod-friendly” via systemd, et on détaille la gestion des datasets (SRTM / EU-DEM).

 

OpenTopoData

 

1) Installation

Pré-requis

Installer Docker.

OpenTopoData est fourni avec une image Docker ; c’est le chemin le plus simple et le plus reproductible.

 

Récupérer le projet et construire l’image

Cloner puis builder :

git clone https://github.com/ajnisbet/opentopodata.git cd opentopodata/ make build make run
  • make build : construit l’image Docker

  • make run : lance le container (optionnel, pour test rapide)

 

Lancer le serveur via Docker (commande directe)

Il est aussi possible de lancer sans make run, directement en CLI, en montant le répertoire des données en lecture seule :

docker run --rm -it --volume "/home/www/opentopodata/data:/app/data:ro" -p 5000:5000 opentopodata:`cat VERSION`

Explications :

  • --volume "/home/www/opentopodata/data:/app/data:ro" : expose vos datasets au container

  • -p 5000:5000 : expose l’API sur le port 5000

  • opentopodata:\cat VERSION`` : lance la version taggée identique au repo

 

Tracez votre propre parcours

MapPlanner vous aide à calculer les distances, le dénivelé, la durée et à planifier vos randonnées, courses à pied et sorties vélo sur une carte interactive.

  • Calcul automatique des distances et du dénivelé
  • Cartes topographiques, satellite et IGN
  • Export GPX/KML pour votre GPS
  • Suivi GPS en temps réel

2) Créer un service systemd (démarrage automatique)

L’objectif : démarrer OpenTopoData comme un service, redémarrable automatiquement, et gérable avec systemctl.

Créer le service :

sudo nano /etc/systemd/system/elevation.service

Contenu :

[Unit] Description=OpenTopoData elevation API After=network.target [Service] Type=simple User=lx Group=lx WorkingDirectory=/home/www/opentopodata ExecStart=docker run --rm --volume '/home/www/opentopodata/data:/app/data:ro' -p 5000:5000 --network host opentopodata:1.10.0 # if we crash, restart TimeoutSec=30 Restart=on-failure #Type=notify #NotifyAccess=all TimeoutStartSec=120 TimeoutStopSec=30 # output goes to /var/log/syslog StandardOutput=journal StandardError=journal SyslogIdentifier=opentopodata-elevation [Install] WantedBy=multi-user.target

Points importants pour que le service fonctionne :

  • déclarer la version (1.10.0)

  • ne pas utiliser les options t et i

  • utiliser docker en mode network pour pouvoir être appelé localement

Activer et démarrer :

sudo systemctl daemon-reload sudo systemctl enable elevation.service sudo systemctl start elevation.service sudo systemctl status elevation.service

Alternative : installation sans Docker

Il est possible d’installer sans Docker :

https://www.opentopodata.org/notes/running-without-docker/

Mais les performances sont les mêmes avec ou sans docker.

 

3) Choisir et configurer les données topographiques

OpenTopoData supporte plusieurs datasets. Deux pages utiles :

Après ajout de données, il faut rebuild le docker.

 

Datasets utilisés : historique et situation actuelle

Dans la version actuelle, seul les données SRTM30 sont utilisés pour le monde entier.

Ancienne configuration :

  • Europe : EUDEM

  • Amérique du Nord : SRTM30

  • Autre : SRTM90

 

Comparaison des données

  • SRTM30 : données les plus précises (2x plus lent que SRTM90m)

  • SRTM90 : données approximatives (le plus rapide)

  • EU-DEM : 25m mais données moins précises que SRTM30 (3x plus lent que SRTM90m)

 

4) Monde : SRTM (SRTM30m / SRTM GL1)

Dataset OpenTopoData (SRTM) :

Créer un compte sur Opentopography :

Taille totale des tif : 126Go.

Les données sont stockées sur S3, pour les télécharger les données, installer d'abord aws-cli :

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install

Puis dans le répertoire voulu :

aws s3 cp s3://raster/SRTM_GL1/ . --recursive --endpoint-url https://opentopography.s3.sdsc.edu --no-sign-request

Le fichier global VRT sera aussi téléchargé (-32768 pour les no values).

 

Optimiser : convertir en GeoTIFF compressé

Si les fichiers ne sont pas déjà en tif (ou si vous voulez optimiser l’I/O), convertir en GeoTIFF compressé :

Installer GDAL :

sudo apt install gdal-bin

Conversion :

for f in *.hgt.zip; do gdal_translate -co COMPRESS=DEFLATE -co PREDICTOR=2 "$f" "${f%.*}.tif"; done

Nettoyage :

rm *.zip

Temps pour Nord Amérique de génération des TIF : 30min.

 

Déployer les données sur le serveur et rebuild

Recopier les fichier tif générés vers le serveur puis mettre à jour le fichier config.yml et rebuild le docker :

make build

Redémarrer le service :

sudo systemctl restart elevation.service

Tester (si serveur accepte requête en local) :

curl http://localhost:5000/v1/srtm30m?locations=57.688709,11.97


5) Europe : EU-DEM

Dataset OpenTopoData (EU-DEM) :

Téléchargement (Copernicus DEM) :

Étapes :

  1. Télécharger toutes les données en une fois

  2. Extraire tous les fichiers

  3. Ne garder que les fichiers TIF

Taille totale des tif : 38Go.

 

Ajouter EU-DEM dans OpenTopoData

Dans le répertoire d'opentopodata :

mkdir ./data/eudem

Copier les TIF dans ce répertoire (les renommer : https://www.opentopodata.org/datasets/eudem/)

Créer le fichier config.yaml en spécifiant la base de donnée :

datasets: - name: eudem25m path: data/eudem/ filename_epsg: 3035 filename_tile_size: 1000000

Rebuilder et relancer le docker :

make build && make run

Test (si serveur accepte requête en local) :

curl http://0.0.0.0:5000/v1/eudem25m?locations=57.688709,11.976404

6) Récupérer un continent spécifique pour SRTM

Référence :

https://github.com/graphhopper/graphhopper/blob/master/core/src/main/resources/com/graphhopper/reader/dem/

Il faut renommer l'extension du fichier et ajouter l'URL au début de chaque ligne.

 

7) Autres services d’élévation (alternatives)

Essayez toutes les fonctionnalités gratuitement

Profitez de 7 jours d'essai gratuit avec un accès complet à toutes les fonctionnalités Explorer. Sans engagement — découvrez la planification d'itinéraires, le suivi GPS, les exports illimités et bien plus.

  • Planification d'itinéraires illimitée
  • Position GPS en temps réel
  • Exports GPX/KML/FIT illimités
  • Import de fichiers depuis vos appareils GPS

Articles similaires

Ce que disent nos utilisateurs Explorer

⭐⭐⭐⭐⭐

Grâce à MapPlanner, j’ai planifié un parcours de jogging de 8 km autour de chez moi en quelques minutes. La distance et le temps estimé étaient parfaits pour ma séance matinale avant le travail.

Claire M. Nouvelle joggeuse
⭐⭐⭐⭐⭐

Grâce au mode isochrone, je planifie mes randos en un clin d'œil ! Je vois directement où je peux aller avec mon temps disponible. Le suivi GPS est top pour ne jamais me perdre en montagne.

Marie L. Randonneuse passionnée
⭐⭐⭐⭐⭐

On a préparé une boucle vélo de 40 km entre amis et exporté la trace en GPX. Tout le monde a pu suivre le même parcours sur sa montre, sans se perdre. Organisation parfaite !

Julien R. Sortie vélo du dimanche
⭐⭐⭐⭐⭐

Avant une randonnée en forêt, j’ai vérifié le dénivelé et la durée. Le tracé a suivi les vrais sentiers, ce qui m’a évité de mauvaises surprises. Très fiable !

Sophie L. Randonneuse débutante
⭐⭐⭐⭐⭐

Je voulais une balade facile pour mes enfants. J’ai défini 5 km max et MapPlanner m’a permis de tracer une boucle idéale. On a passé un super moment en famille.

Nicolas D. Balade en famille
⭐⭐⭐⭐⭐

J’aime planifier mes sorties à l’avance. J’ai sauvegardé plusieurs tracés pour les week-ends. Je gagne un temps fou.

Martine G. Randonneuse par intermittence
⭐⭐⭐⭐⭐

En explorant les parcours autour de chez moi, j’ai découvert de super itinéraires que je ne connaissais pas du tout. MapPlanner m’a ouvert de nouvelles zones à explorer.

Olivier P. Découverte de parcours
⭐⭐⭐⭐⭐

Je garde un œil sur mon évolution grâce à l’historique. Je compare mes vitesses et distances de course au fil des mois, c’est motivant !

Anaïs T. Suivi des performances
⭐⭐⭐⭐⭐

Pour notre sortie VTT en club, on a créé le parcours et envoyé le GPX à tout le monde. Résultat : aucun écart, tout le groupe ensemble du début à la fin.

Romain B. Sortie en club
⭐⭐⭐⭐⭐

J’adore prendre des photos en randonnée. MapPlanner place automatiquement mes photos sur la carte. C’est génial pour revoir le parcours et partager avec mes amis.

Laetitia F. Sortie découverte
⭐⭐⭐⭐⭐

Selon l’activité, je change la carte : topo pour la montagne, rue pour la ville, satellite pour repérer les zones. Ça rend la préparation super intuitive.

Hugo S. Randonneur expérimenté
⭐⭐⭐⭐⭐

MapPlanner estime désormais mes temps selon mon propre rythme. Je sais précisément combien de temps durera ma prochaine sortie. Parfait pour m'organiser au dernier moment.

Isabelle J. Joggeuse en devenir