Skip to content

🏠 NZ Buildings | QGIS plugin and PostGIS database schema for building dataset management

License

Notifications You must be signed in to change notification settings

linz/nz-buildings

Repository files navigation

NZ Buildings

CI Status Documentation Status Latest Release Current Building Outlines Feature Count License Convetional Commits Code Style

NZ Buildings

The NZ Buildings system is used by Toitū Te Whenua Land Information New Zealandto manage New Zealand's national building outlines dataset. This dataset is published under CC-BY-4.0 on the LINZ Data Service. Documentation of the dataset itself is available in the NZ Building Outlines Data Dictionary.

Features

The Topography team at Toitū Te Whenua LINZ built this system and use it to:

  • validate building outlines captured via feature extraction
  • assign additional attributes (capture metadata, administrative boundaries)
  • manually add, modify or delete building outlines where required
  • compare a new set of building outlines against existing building outlines and categorise matching, added, removed or related buildings
  • manage the lifecycle of building outlines across multiple data captures
  • prepare data to be published on the LINZ Data Service

Components

All of the components build upon other free and open source software. See ACKNOWLEDGEMENTS.md for a summary.

License

This system is under the 3-clause BSD License, except where otherwise specified. See the LICENSE file for more details.

Database

The database for the NZ Buildings system is a PostgreSQL database with the PostGIS database extension for handling geographic objects.

Dependencies

  • PostgreSQL database with PostGIS extension. Tested versions are PostgreSQL 9.3 with PostGIS 2.3, and PostgreSQL 14 with PostGIS 3.2.
  • Sqitch is used for database schema migrations.
  • pgTAP is used for database testing. This is included inside the Dockerfiles used for automated testing.
  • Docker is used for automated testing, of both QGIS plugin unit tests, and database tests using pgTAP.

Development and testing

For development and testing, a copy of the database including test data can be run in a docker container. See the scripts in the scripts directory and the README there for further information.

QGIS plugin

Dependencies

The QGIS plugin is tested in QGIS versions 3.10, 3.16, and 3.24.

Installation

First clone this repository:

git clone https://github.com/linz/nz-buildings.git

Then, from the repository directory, create a symantic link from the buildings folder which contains the QGIS plugin to your local QGIS profile directory. On Ubuntu this will be:

ln -s "$(pwd)/buildings" ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/

Then create a database config file for the plugin. If using Docker to run the database locally, you can use the testing config file as-is, otherwise you can use it as a base and edit the required details as needed.

cp ./buildings/tests/pg_config_tests.ini ~/.local/share/QGIS/QGIS3/profiles/default/buildings/pg_config.ini

Development and testing

Scripts are provided to run Python unit tests in QGIS in a docker container. See the README in the scripts directory for more information on run_qgis_tests.sh and run_qgis_interactively.sh.