Skip to main content

Importer and Exporter for GWSW

Project description

A library for the GWSW-hydx exchange format

RioNED is going to release a new format for exchanging sewerage data called GWSW-hydx. hydxlib can be used to import sewerage data from a hydx format (*.csv) to 3Di native spatialite files, or alternatively JSON.

For more information about GWSW-hydx: https://apps.gwsw.nl/item_hyddef

For more information about the database scheme of 3Di: https://docs.3di.live/

Purporse of this script is to exchange information between different formats. This means that this library doesn’t improve lacking or incorrect data. For example, it doesn’t remove double manholes on the same location. This libary does provide all kinds of checks with warning and error messages.

This tool is currently in development. Therefore only nodes, weirs, orifices and pumpstations are currently supported.

Installation

hydxlib is installed with:

$ pip install hydxlib

Running script

It’s possible to run this tool on command line or with python.

Commandline:

$ run-hydxlib path/to/hydx/dir path/to/threedi.sqlite

Python:

from hydxlib import run_import_export

run_import_export("threedi", "path/to/hydx/dir", "path/to/threedi.sqlite")

Installation for development

Clone hydxlib from github and then install locally using pip + virtualenv:

$ virtualenv .venv
$ source .venv/bin/activate
$ pip install -e .[test]

There will be a script you can run like this:

$ run-hydxlib ...

It runs the main() function in hydxlib/scripts.py, adjust that if necessary. The script is configured in setup.py (see entry_points).

Run the tests regularly:

$ pytest hydxlib --cov

The code is linted automatically on each PR. To enable autoformatting locally, install pre-commit:

$ pre-commit install

Changelog of hydxlib

1.5.3 (2024-11-11)

  • Added check whether outlet code exists in connection nodes.

1.5.2 (2024-03-21)

  • Build the release with the build package instead of setuptools.

  • Rewrite release workflow to use a supported github action for github release.

  • Updated required threedi-schema version to 0.219.*

1.5.1 (2023-05-17)

  • Updated required threedi-schema version to 0.217.*

1.5.0 (2023-04-12)

  • Extra release to signal updated requirements.

1.4.5 (2023-03-31)

  • Make exporter work with SQLAlchemy 2.*

  • Updated required threedi-schema version to 0.216.*

1.4.4 (2023-02-20)

  • Fix error for missing “VerloopVolume” (VER_VOL).

1.4.3 (2023-02-01)

  • Fixed packaging (hydxlib was not listed as package in setup).

1.4.2 (2023-02-01)

  • Updated required threedi-schema version to 0.214.*

1.4.1 (2023-01-31)

  • Updated strictly required threedi-schema version to 0.214.3

1.4 (2023-01-27)

  • Added threedi-schema as a dependency, removing threedi-modelchecker

  • Fixed writing logging to file

1.3 (2022-12-12)

  • Fixed all tabulated profiles (TAB, HEU, MVR, UVR, OVA) and added TPZ and YZP.

  • Added inverted egg (EIG) profile.

  • Added trapezium profile in case no tabulated profile is given.

  • Add all cross sections to the 3Di spatialite and use the identifications from the input file.

  • Check if a profile is open/closed depending on the verbinding type (OPL or not).

1.2 (2022-12-06)

  • Added Heul (HEU), U-Vorm (UVR), Ovaal (OVA) profielen, fixed Muil (MVR), removed trapezium (TPZ).

  • Fixed empty connection_node.the_geom column.

1.1 (2022-11-09)

  • Log through the hydxlib.* logger instead of the root logger.

  • Emit error log if a value is required according to GWSW, but missing.

  • Made log messages more comprehensible by using terminology from GWSW instead of internal model and field names.

  • Set KNP_MAT to not required.

  • Emit more comprehensible error if a verbinding with types GSL, OPL, ITR, or DRL has no profile.

1.0 (2022-10-25)

  • Backport changes from https://github.com/threedi/beta-plugins.

  • Added threedi-modelchecker as a dependency, and used the 3Di schema in it as a replacement for hydxlib.sql_models.

  • Removed PostGRES support (only spatialite remains).

  • Replaced GDAL with pyproj.

  • An ‘RHK’ profile is now interpreted as a closed (instead of open) rectangle.

  • Add JSON export format.

0.7 (2020-03-03)

  • Closing database connection

  • Updating bug in rectangular cross sections

0.6 (2019-11-22)

  • Using the final version of the hydx format.

0.5 (2019-02-12)

  • Bug fix discharge coefficient orifices in Threedi.

0.4 (2019-01-18)

  • Small fixes.

0.3 (2019-01-09)

  • Added docstrings and updated the readme.

0.2 (2019-01-09)

  • Enabled automatic pypi.org uploads from travis-ci.com

0.1 (2019-01-09)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hydxlib-1.5.3.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

hydxlib-1.5.3-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file hydxlib-1.5.3.tar.gz.

File metadata

  • Download URL: hydxlib-1.5.3.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for hydxlib-1.5.3.tar.gz
Algorithm Hash digest
SHA256 0b8a9adbe6fa1f280aaed174c939b8a0bc4e75408bf02033890e89a864cd2527
MD5 9a2a34457a6466cd85489c6fe5fd7e12
BLAKE2b-256 8134c4ac140d2dd7aef059a98c84b6af1c08ab59f0bdb25bde8d9712dc17df38

See more details on using hashes here.

File details

Details for the file hydxlib-1.5.3-py3-none-any.whl.

File metadata

  • Download URL: hydxlib-1.5.3-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for hydxlib-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d11c17bd14f9ef33d5a6310da43149e1f553f9591152dab9c276e0b01602679d
MD5 d8f75268b11471a166bee89d171c1e22
BLAKE2b-256 adc13ba30af0d1d95514ccae3fa6def70bffd99c49fb4745aae607ca43545156

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page