Phone: +33 184 170 757


Tour de l’Horloge
4 place Louis Armand - 75012 PARIS

Premiers pas avec qgis-epanet

EPANET est un logiciel de simulation du comportement hydraulique et qualitatif de l'eau dans les réseaux sous pression. Il s'agît donc d'un logiciel permettant de déterminer pression, débit et qualité de l'eau dans un réseau d'adduction.


Oslandia a développé une extension pour QGIS permettant de réaliser des simulations hydrauliques directement dans ce logiciel SIG, et de visualiser les résultats. Oslandia fournit du service autour de ces outils ( infos@oslandia.com ) et développe actuellement l'extension pour les réseaux d'assainissement (SWMM).


Ce document présente l'installation et les premiers pas de l'extension de simulation hydraulique pour QGIS.


Une documentation traduite en français de EPANET est disponible. Les tables et couches géographiques qui sont utilisées par le plugin sont calquées sur les sections du fichier d'entrée d'EPANET présentées en Annexe C du document.

Étape 1: Installation d'EPANET

Télécharger l'installeur d'EPANET et l'exécuter.



Dans le première fenêtre cliquer sur Next. Dans la seconde fenêtre, notez l'endroit où sera installé EPANET, ici C:Program Files (x86)EPANET2, puis cliquer sur Next.



Dans la troisième et la quatrième fenêtre cliquer sur Next



Cliquer sur Finish.

Étape 2: Installation du plugin

Dans le menu Extension cliquer sur Installer/Gérer les extensions



Note : pour le moment l'extension est encore en mode "expérimental". Il faut donc pour la voir, activer les extensions expérimentales de QGIS en allant cocher la case à cet effet dans l'onglet des paramètres de la fenêtre de gestion des extensions.

Dans l'onglet Non installé rechercher l'extension qgis_epanet, la sélectionner et cliquer sur Installer l'extension.



Fermer la boîte de dialogue vous signalant que l'installation est réussie en cliquant sur OK puis fermer le gestionnaire d'extensions en cliquant sur Fermer.



Étape 3: Configuration du plugin

Pour lancer une simulation, le plugin doit savoir où trouver le programme EPANET.

Dans le menu Traitements choisir Options.



Dérouler le menu Epanet dans Prestaire de service et double-cliquer à droite de Epanet command line tool (zone bleue sur la figure ci-dessous), puis cliquer sur ...



Sélectionner l'application epanet2d (ou epanet2d.exe) qui se trouve dans le répertoire d'installation d'EPANET (ici C:Program Files (x86)EPANET2). Puis cliquer sur ouvrir.



De retour dans la fenêtre des options des Traitements, cliquer sur OK.



Dans le menu Traitements cliquer sur Boîte à outils.



epanetico Epanet devrait apparaître dans la liste des outils de traitement disponible. Si ce n'est pas le cas, vérifier que l'interface des outils de traitement est en mode avancé (Advanced interface en bas de la fenêtre)



Étape 4: Création du réseau

Pour prendre en main le plugin, nous allons créer un réseau simple: un réservoir se vidant dans un tuyau.

Nous proposons dans ce qui suit une création pas à pas. Vous pouvez aussi télécharger l'exemple complet et charger les couches à partir du fichier simple_network.sqlite:

  • junctions
  • pipes
  • tanks

ainsi que les tables (couches sans géométrie):

  • times
  • report

Créer une nouvelle couche shapefile pour les nœuds du réseau (junctions dans EPANET):



Supprimer le champ id (présent par défaut) et créer les champs:

  • id_node de type texte,
  • altitude de type décimal avec un précision de 4,
  • base_demand de type décimal avec un précision de 4,
  • modulation_curve de type texte

Cliquer sur OK et nommer le fichier junctions.shp.



Sélectionner la couche nouvellement créee, passer en mode édition et ajouter un nœud et saisir la valeur ci-dessous.



Créer une nouvelle couche shapefile pour les réservoirs (tanks dans EPANET) avec les champs suivants:

  • id_node de type texte,
  • altitude de type décimal avec une précision de 4,
  • init_level de type décimal avec une précision de 4,
  • min_level de type décimal avec une précision de 4,
  • max_level de type décimal avec une précision de 4,
  • diameter de type décimal avec une précision de 4,
  • min_volume de type décimal avec une précision de 4,
  • volume_curve de type texte

Ne pas oublier de supprimer le champ id présent par défaut. Cliquer sur OK et nommer le fichier tanks.shp.



Sélectionner la couche nouvellement créee, passer en mode édition, ajouter un nœud et saisir la valeur ci-dessous.



Ajouter une nouvelle couche shapefile pour les tuyaux (pipes dans EPANET) avec les champs suivants:

  • id_arc de type texte,
  • start_node de type texte,
  • end_node de type texte,
  • length de type décimal avec une précision de 4,
  • diameter de type décimal avec une précision de 4,
  • rugosity de type décimal avec une précision de 4,
  • minor_loss de type décimal avec une précision de 4,
  • status de type texte

Ne pas oublier de mettre le type de la couche à Ligne (le défaut est Point) et de supprimer le champ id présent par défaut.



Sélectionner la couche nouvellement créee, passer en mode édition et ajouter une ligne joignant les deux nœuds puis saisir la valeur ci-dessous.



Dans le cas d'un réseau existant, il est aisé de créer des vues sur les données pour satisfaire à cette contrainte. On peut se référer au fichier qwat_to_epanet_views.sql pour un exemple de vues sur un modèle de données de réseau de distribution d'eau.

Étape 5: Définition des paramètres de simulation

Deux types de paramètres sont nécessaires: ceux relatifs au temps (times pour EPANET) et ceux relatifs à la génération de résultats (report pour EPANET).

Les champs pour la table times sont:

  • "simulation title" de type texte,
  • duration de type texte,
  • "hydraulic timestep" de type texte,
  • "quality timestep" de type texte,
  • "pattern timestep" de type texte,
  • "pattern start" de type texte,
  • "report timestep" de type texte,
  • "report start" de type texte,
  • "start clocktime" de type texte,
  • statistic de type texte

Les champs nécessaires pour la table report sont (ils peuvent être plus nombreux):

  • "simulation title" de type texte,
  • status de type texte,
  • summary de type texte,
  • nodes de type texte,
  • links de type texte,

Les paramètres de simulation sont stockés sous la forme d'une ligne dans une table indexée par le nom de la simulation. Autrement dit, pour chaque simulation on a une ligne dans la la table times et une ligne dans la table report avec une valeur identique dans le champ simulation title.

Lancer le programme Bloc-notes (ou tout autre éditeur de texte) et copier les lignes suivantes:


"simulation title",  "status", "summary", "nodes", "links"
'Epanet Simulation', 'Full',   'No',      'ALL',   'ALL'


Enregistrer le fichier sous le nom report.csv. Dans le menu Fichier, cliquer sur Nouveau et copier les lignes suivantes:

"simulation title", duration, "hydraulic timestep", "quality timestep", "pattern timestep", "pattern start", "report timestep", "report start", "start clocktime", statistic
Epanet Simulation, 48:00, 0:05, 0:05, 0:05, 0:00, 0:05, 0:00, 12:00 AM, None

Enregistrer le fichier sous le nom times.csv

Dans QGIS, ajouter une couche texte délimité, sélectionner le fichier report.csv que vous venez de créer, cocher CSV (virgule) et Pas de géométrie



Ajouter de la même façon times.csv dans QGIS comme couche texte délimité.

Étape 6: Simulation

Votre projet devrait maintenant ressembler à ceci :



Dans la boîte à outils de Traitements, double-cliquer sur Simulate flow in drinking water network. Donner les valeurs suivantes aux paramètres en sélectionnant dans les menus déroulants:

  • Title -> Epanet Simulation
  • Junctions Layer -> junctions
  • Pipes Layer -> pipes
  • Tanks Layer -> tanks
  • Simulation Time -> times
  • Report options -> report

Note : dans les prochaines versions de QGIS, ces menus déroulant se rempliront automatiquement avec les couches portant les noms déterminés



Cliquer sur Run. Quatre couches sans géométries devraient être ajoutées au projet à l'issue de la simulation.

Étape 7: Analyse des résultats

Il y a deux type de tables de résultat:

  • résultats bruts de la simulation: pressions et débits en tout point du réseau, à chaque étape de la simulation
  • résultats d'agrégations temporelles: minima, maxima, moyennes de valeurs en tout point du réseau

Les résultats bruts sont utilisés pour tracer l'évolution temporelle d'une valeur en fonction du temps : pression pour un nœud, débit pour un tuyau et niveau pour un réservoir.

Pour voir l'évolution du niveau du réservoir en fonction du temps, sélectionner la couche tanks (1) puis l'outil de sélection d'entités (2), sélectionner le réservoir (3) et cliquer sur le bouton timeplot (4)



Les agrégats temporels servent à créer des cartes. Pour cette raison les tables sont liées (grâce à une jointure) aux couches géographiques. Des attributs additionnels sont donc disponibles pour les couches junctions, pipes et tanks. Grâce à une symbologie par règle, l'utilisateur peut, par exemple, visualiser en rouge les tuyaux du réseau dans lesquels la vitesse moyenne était insuffisante (stagnation) ou les nœud du réseau où la pression maximum était trop grande.


Dans le cas de notre réseau trop simple cette représentation n'est pas pertinente, mais vous pouvez en voir une démonstration sur la vidéo de présentation de l'extension :


Vous pouvez aussi lire la présentation du plugin en anglais.


Oslandia peut vous aider dans la mise en place de ces outil, ou l'intégration dans votre système d'information, par de la formation, du conseil, support, ou du développement pour améliorer les fonctionnalités actuels de cette extension : infos@oslandia.com


Nous travaillons également sur une intégration équivalente de SWMM, outil pour la modélisation de réseaux d'assainissement, qui devrait être publié dans les mois à venir. Si vous voulez participer au financement de cette extension pour la voir sortir plus rapidement, n'hésitez pas à nous contacter.