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.
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
- PostgreSQL/PostGIS database schema for data storage
- QGIS plugin for data maintenance
- data dictionary hosted on readthedocs
- ISO 19115 geospatial metadata to accompany the published datasets
- Dockerfiles of specific PostgreSQL versions and dependencies used for testing.
All of the components build upon other free and open source software. See ACKNOWLEDGEMENTS.md for a summary.
This system is under the 3-clause BSD License, except where otherwise specified. See the LICENSE file for more details.
The database for the NZ Buildings system is a PostgreSQL database with the PostGIS database extension for handling geographic objects.
- 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.
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.
The QGIS plugin is tested in QGIS versions 3.10, 3.16, and 3.24.
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
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.