A simple tool for exporting from a PostGIS table to EPANET INP file (You can find specification of INP file from here) in Rwanda. Assumes
Python 3.6+,
psycopg2,
Shapely,
PyShp,
light-progress,
are already installed and in your PATH
.
You can install using pip by requirements.txt as follow.
pip install -r requirements.txt
Or the following is example of installation procedures by pip installation manually.
The following is example of installation procedures by pip installation.
pip install psycopg2
pip install shapely
pip install pyshp
pip install light-progress
Shapely can be downloaded from here. You can chose the file depends on your platform(32bit or 64bit, Python version, etc).
The tool was designed for RWSS department of WASAC in Rwanda.
To export water pipeline network
from database rwss_assets
as user user
to EPANET INP file(.inp) and ESRI Shapefiles for each WSS and Districts:
Before running the script, kindly check the database settings at command line parameters.
python postgis2epanet.py -d yourdatabase -H localhost -p 5432 -u user -w securePassword
If you want to filter only specific dictricts, use -l
parameter to list ID of district by comma(,)
python postgis2epanet.py -l 51,52,53
If you want to update elevation from DEM file, use -e
parameter to update elevation. The script will not update elevation as default.
python postgis2epanet.py -e
Firstly, please configure docker-compose.yml
.
- db_user=postgres
- db_password={your password}
- db_host=host.docker.internal
- db_port=5432
- database=rwss_assets
# If you want to specify districts to be exported, please put here like "51,52,53"
- districts=
Just execute the below command.
docker-compose up
If you changed any source code, please do the below.
docker-compose up --build
A ZIP archive file as below will be created through this script.
20190813_170355_epanet_data.zip
After extracting ZIP archive, you will find other ZIP archive for each Districts as follows.
C:.
21_Nyanza.zip
22_Gisagara.zip
23_Nyaruguru.zip
24_Huye.zip
25_Nyamagabe.zip
26_Ruhango.zip
27_Muhanga.zip
28_Kamonyi.zip
(skip)
Let us extract 24_Huye.zip here, you will see the following files as below. Name of file and folder is ID for water supply system. You can use INP file for EPANET, and you can also use Shapefiles for QGIS plugin.
C:.
│ 2041.inp <- This INP file is for EPANET application
│ 20410.inp
│ 20411.inp
│ (skip)
│
├─2041 <- These Shapefiles under WSS_ID folder are for QGIS Plugin.
│ 2041_junctions.dbf
│ 2041_junctions.shp
│ 2041_junctions.shx
│ 2041_pipes.dbf
│ 2041_pipes.shp
│ 2041_pipes.shx
│ 2041_reservoirs.dbf
│ 2041_reservoirs.shp
│ 2041_reservoirs.shx
│ 2041_tanks.dbf
│ 2041_tanks.shp
│ 2041_tanks.shx
│
├─20410
│ 20410_junctions.dbf
│ 20410_junctions.shp
│ 20410_junctions.shx
│ (skip)
There are 3 options as follows.
-
Use EPANET application to do analysis. You can directly import INP file to EPANET.
-
Use QGIS to analyse by
QWater
Plugin.- You can double-click .qgz file to launch QGIS3.
- Install
QWater
Plugin on QGIS3. See manual of QWater here. - To do settings of layers again.
- To do make model again.
- If necessary, you can revise the following values for some layers. 1.diameter of pipes (some diameter might be missing) 1.demand of junctions (some no of users might be missing) 1.water level & diameter of tanks (our DB don't have water level and diameter information, so I put the same values as default)
- Do analysis by
QWater
-
If you want to import existing INP file to QWater, please use both
ImportEpanetInpFiles
andQWater
Plugin.- Install
ImportEpanetInpFiles
plugin to import INP file to QGIS3. - You can rename column name as following table.
- Install
QWater
to do analysis.
- Install
Table. Renaming columnname for QEPANET from ImportEpanetInpFiles plugin
Layer | Old column name | New column name |
---|---|---|
Junctions | ID | DC_ID |
Junctions | Demand1 | DEMAND |
Junctions | Pattern1 | PATTERN |
Pipes | ID | DC_ID |
Pipes | NodeFrom | NODE1 |
Pipes | NodeTo | NODE2 |
Reservoirs | ID | DC_ID |
Reservoirs | Pattern1 | PATTERN |
Tanks | ID | DC_ID |
Tanks | InitLevel | INITIALLEV |
Tanks | MinLevel | MINIMUMLEV |
Tanks | MaxLevel | MAXIMUMLEV |
Tanks | MinVolume | MINIMUMVOL |
Pumps | ID | DC_ID |
Pumps | NodeFrom | Initi |
Pumps | NodeTo | NODE2 |
Valves | ID | DC_ID |
Valves | NodeFrom | NODE1 |
Valves | NodeTo | NODE2 |
This script was developed by Jin IGARASHI, JICA Expert
from The Project for Strengthening Operation and Maintenance of Rural Water Supply Systems in Rwanda (RWASOM)
.