Skip to content

nens/threedi-modelchecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ab842b5 · Feb 27, 2025
Dec 19, 2024
May 12, 2022
Oct 6, 2022
Feb 27, 2025
Jan 19, 2023
May 12, 2022
Sep 19, 2023
Jan 19, 2023
Feb 15, 2021
Feb 4, 2025
Feb 27, 2025
Apr 19, 2019
Feb 15, 2021
Mar 27, 2023
Oct 4, 2021
Feb 27, 2025
Jul 23, 2024
Mar 12, 2024

Repository files navigation

threedi-modelchecker

Github Actions status

A tool to verify the correctness of a 3Di schematisation.

It asserts the correctness of a 3Di schematisation and provides detailed information about any potential errors in it.

This package only work against a specific schematisation version. Use https://pypi.org/project/threedi-schema/ to upgrade a schematisation version. See also the 3Di documentation at https://docs.3di.lizard.net/en/stable/d_before_you_begin.html#database-overview

Note that the name "modelchecker" might be slightly confusing: the thing that is checked is a schematisation, and not a threedimodel. A schematisation is built interactively by the user and this schematisation will be converted to a 3Di-Model which can be used in simulations.

Installation

pip install threedi-modelchecker

Note that raster checks will be skipped unless GDAL is available. threedi-modelchecker is also integrated into the ThreediToolbox Qgis plugin: https://github.com/nens/ThreeDiToolbox

Example

The following code sample shows how you can use the modelchecker to run all configured checks and print an overview of all discovered errors:

from threedi_modelchecker.exporters import format_check_results
from threedi_modelchecker import ThreediModelChecker
from threedi_schema import ThreediDatabase

sqlite_file = "<Path to your sqlite file>"
database = ThreediDatabase(sqlite_file)

model_checker = ThreediModelChecker(database)
for check, error in model_checker.errors(level="WARNING"):
    print(format_check_results(check, error))

Command-line interface

Use the modelchecker from the command line as follows:

threedi_modelchecker check -s path/to/model.sqlite -l warning

By default, WARNING and INFO checks are ignored. To skip the beta features check, add the --allow-beta flag.

Development

A docker image has been created for easy development. It contains an postgis server with an empty 3Di database to allow for easy testing.

Build the image:

docker-compose build

Run the tests:

docker-compose run modelchecker pytest

See Creating revisions for instructions on how to change the 3Di model schematisation.

Release

Make sure you have zestreleaser installed.

fullrelease

When you created a tag, make sure to upload it to pypi.