Skip to content

qwat/QWAT

Repository files navigation

qwat.png

QWAT: QGIS Water Module

Documentation

Hosted version here: https://qwat.github.io/docs/

The documentation has its own repository at https://github.com/qwat/docs

Requirements

Server side software components are:

Supported and tested versions are PostgreSQL 9.6 and Postgis 2.3.

The exact required hardware configuration is very dependant on the data sizes. However, water network data tend not to be huge volumes, and the minimal required configuration is very low.

A comfortable configuration would be the following:

  • 4x Core Intel
  • >= 8GB RAM
  • SSD Storage (40GB+) with Raid capabilities for data redundancy

We recommend using Linux as Operating System when running PostgreSQL, for performance and stability.

Install

Assuming you have installed a postgresql server, there are two ways to set up the QWAT database: - The first way is to create an empty database with init_qwat.sh. - The second way is to create a database from the sample dump using pg_restore.

First way. Create an empty database with init_qwat.sh

Get the repositories. In a shell:

git clone https://github.com/qwat/qwat
cd qwat

Update data-model submodule:

git submodule update --init --recursive

In order to create the database model you need to create a postgresql database. Do to this you may execute for example:

psql -U postgres -c 'create database qwat'

You can choose whatever name for the database and whatever user as its owner. The script that is used to create the database model looks for the .pg_service.conf file in the users home directory or in the directory specified by the PGSYSCONFDIR or PGSERVICEFILE variables.

Assuming you named your database qwat, edit the .pg_service.conf file and make it look like:

[qwat]
#enter your database ip
host=127.0.0.1
#database name
dbname=qwat
port=5432
user=postgres
#you can also add your password if you like
password=YourPassword

Now go to the data-model directory and run the ./init_qwat.sh script:

cd data-model
./init_qwat.sh -p qwat -s 21781 -d -r

The script has the following options:

  • -p PG service to connect to the database.
  • -s or --srid PostGIS SRID. Default to 21781 (ch1903)
  • -d or --drop-schema drop schemas (cascaded) if they exist
  • -r or --create-roles create roles in the database

Optionally, you can restore a sample dataset. For that you need to download the data sample dump and restore it into the QWAT database:

QWAT_VERSION=`cat system/CURRENT_VERSION.txt`
wget -q -O qwat_dump.backup "https://github.com/qwat/qwat-data-model/releases/download/$QWAT_VERSION/qwat_v"$QWAT_VERSION"_data_only_sample.backup"
pg_restore -U postgres --dbname qwat -e --no-owner --verbose --jobs=3 --disable-triggers --port 5432 qwat_dump.backup

Second way. Create a database from the sample dump using pg_restore

QWAT can be tested by downloading the QGS project repository here and restoring the latest data_and_structure_sample.backup in PostgreSQL.

In your shell:

# Create the database and the extensions
psql -U postgres -c 'create database qwat;'
psql -U postgres -d qwat -c 'create extension postgis;'
psql -U postgres -d qwat -c 'create extension hstore;'

# Create the roles for QWAT
psql -c 'CREATE ROLE qwat_viewer NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;' -U postgres
psql -c 'CREATE ROLE qwat_user NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;' -U postgres
psql -c 'CREATE ROLE qwat_manager NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;' -U postgres
psql -c 'CREATE ROLE qwat_sysadmin NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;' -U postgres

# And restore it into your QWAT database
pg_restore -U postgres --dbname qwat -e --no-owner --verbose --jobs=3 --disable-triggers --port 5432 qwat_dump.backup

Open the project

After your model gets created, in QGIS you should be able now to connect to the database by creating a new connection with Name=qwat, Service=qwat, SSL mode=prefer.

If that works then open the qgis-projetct/qwat.qgs project in QGIS.

Credits

see CREDITS

License

This work is free software and licenced under the GNU GPL version 2 or any later version.

You can get the LICENSE here .