PostGIS

PostGIS is a PostgreSQL database with spatial extensions installed. RiskScape can use PostGIS databases for:

  • loading input data into a model

  • saving the output data, or results, from a model

Passwords

In most cases, the PostGIS database will require a password to be used. This password will need to be made available to RiskScape, but this should be done in a way that will reduce the risk of the password being compromised.

The recommended way to make the password available to RiskScape is to set it to a PGPASSWORD environment variable. The following examples show you how to set a PGPASSWORD environment variable on various operating systems.

Windows

For Command Prompt:

set /p PGPASSWORD=Enter you PostGIS Password (check no one is watching):
cls

For Power Shell:

$ENV:PGPASSWORD = Read-Host Enter you PostGIS Password (check no one is watching):
cls

Linux

read -sp "Enter you PostGIS Password:" PGPASSWORD
export PGPASSWORD

PostGIS location format

RiskScape uses a custom location format for PostGIS connections. The format is:

postgis://USER@DB_HOST[:PORT]/DATABASE

where:

  • USER is the username to connect to the PostGIS database.

  • DB_HOST is the host name or IP address of the database host machine.

  • PORT optional port to connect to (defaults to 5432).

  • DATABASE is the database to connect to.

Warning

Your PostGIS password can also be specified in the bookmark location, however this is not recommended. Storing your password in a plain-text file makes it easier for your login credentials to be compromised, for example if you share your project.ini file with other people.

Bookmarks for input data

A PostGIS table can be used as a RiskScape data source. You can create PostGIS bookmarks with:

[bookmark postgis1]
location = postgis://USER@DB_HOST/DATABASE
layer = TABLE

[bookmark postgis2]
location = postgis://USER@DB_HOST/DATABASE?layer=TABLE

Note

Currently the table must contain a geometry attribute in order to be used in RiskScape.

Saving results

RiskScape can also save results to a PostGIS database. To do this, in the riskscape model run command simply specify a PostGIS location for the --output CLI option. E.g --output postgis://USER@DB_HOST/DATABASE

Note

Saving results to PostGIS is currently a beta feature. You must enable the Beta plugin before you can output results to a PostGIS database.

Saving results to a PostGIS works similarly to saving results to files. The main difference is that the results are saved into a database table rather than a file.

Note

In order to save results, the database USER will need to have privileges to create and drop tables in the PostGIS database. Dropping tables will occur if you use the --replace CLI option when running your model.

RiskScape will name the results tables the same way it would name output files. If the database already contains a table with the output name (e.g event_loss) then the output name will be incremented the same as with files (e.g event_loss_1). However, if the --replace CLI option is used, then the existing table is deleted and replaced with a new one.

Note

When using a PostGIS output, you cannot specify a --format for the riskscape model run command. Any specified format (e.g shapefile, csv etc) will simply be ignored.