Skip to main content

Generate a 3Di simulation grid from a model schematisation.

Project description

threedigrid-builder

Github Actions status PyPI

Generate a 3Di simulation grid from a model schematisation.

Usage

This library converts a model schematisation to a 3Di simulation grid. This can be done using a single function that reads data from an SQLite and TIFF and then outputs the generated grid into a Geopackage or HDF5 file:

>>> from threedigrid_builder import make_grid
>>> sqlite_path = "/path/to/model.sqlite"
>>> dem_path = "/path/to/dem.tiff"
>>> out_path = "grid.gpkg"  # or "something.h5" for HDF5 output
>>> make_grid(sqlite_path, dem_path, out_path)

Installation

This package is distributed as binary only, because its (Fortran) source code is proprietary. The currently supported platforms are Windows, Linux, and OSX, all 64 bit versions only.

First install sqlite and spatialite libraries, e.g. on Ubuntu:

$ sudo apt-get install sqlite3 libsqlite3-mod-spatialite

Then install the threedigrid-builder:

$ pip install threedigrid-builder[rasters]

For output into a file for the 3Di calculationcore, enable gridadmin output:

$ pip install threedigrid-builder[rasters,gridadmin]

For output into Geopackage for display in e.g. QGis, enable gpkg output:

$ pip install threedigrid-builder[rasters,gpkg]

Changelog of threedigrid-builder

0.6.0 (2021-11-09)

  • Raise SchematisationError on embedding linear objects that begin/end outside of 2D domain. Added tests for edge cases.

  • Fixed exchange_level (dpumax) for 1D2D lines attached to non-manhole connection nodes. The exchange_level is now derived from the bank_levels of attached channels.

  • Add discharge_coefficients for structures.

  • Swap the order in lines.line for 1D2D lines. The order is now (2D, 1D).

  • Fixed kcu for lines attached to 1D boundary conditions.

  • Copy crest_level from v2_levee if a v2_connected_point refers to one.

0.5.2 (2021-11-02)

  • Consistently write NaN (and not -9999.0) in gridadmin float datasets.

  • Fix tests with GEOS 3.10.0

  • Make ‘meta’ group complete.

0.5.1 (2021-11-01)

  • Add storage_area to calculation nodes.

  • Added ds1d_half to nodes.

  • Added has_embedded to attrs.

0.5.0 (2021-10-21)

  • Fixed nodes.is_manhole in the gridadmin output.

  • Handle user-supplied 1D-2D lines (connected point / calculation point).

  • Write initial_waterlevel for 1D nodes and add ‘has_initial_waterlevels’ to meta.

0.4.0 (2021-09-23)

  • Added 1D boundary conditions.

  • Added 2D boundary conditions.

  • Enable compression in HDF5 output.

  • Fixed 2D lines that connect a larger to a smaller cell in south east direction.

0.3.1 (2021-08-16)

  • Handle embedded connection nodes. These are removed from the grid and written to a new dataset “nodes_embedded”.

  • Fixed bug with cross sections tables being None in Grid instance

  • Handle embedded channels, pipes and culverts. Embedded objects result in embedded nodes and and lines with kcu LINE_1D_EMBEDDED between between 2D cells.

  • Fixed a bug with lines that connect nodes to themselves in quadtree generation.

  • Fixed a bug with wrong usage of lines.ds1d in bottom level and cross section weights computation. The added attribute lines.s1d is now used, and for clarity nodes.ds1d was renamed to nodes.s1d.

  • Added invert_level_start_point and invert_level_end_point attributes to lines.

  • Fixed coordinate order in lines.line_geometries field in gridadmin.h5.

0.3.0 (2021-07-28)

  • Read and convert cross section definitions.

  • Solve gridadmin off-by-one errors for pumps.

  • Add ‘dmax’ to nodes output.

  • Changed external API function name to “make_gridadmin”.

0.2.1 (2021-07-20)

  • Fixed issue when reprojecting 0 grid refinements with pyproj 2.*

  • Fixed issue when writing 0 pumps with h5py 2.*

  • Fixed missing transpose when writing pumps.coordinates to HDF5.

  • Added obstacles.

0.2.0 (2021-07-15)

  • Added threedigrid_builder.grid.geo_utils with segmentize and line_substring functions. These are used to compute the Lines.line_geometries for channel lines.

  • Fixed a bug in the refinement areas code (Fortran) on Ubuntu 20.04.

  • Added the Pipes model that is able to compute Nodes & Lines from Pipes. Pipes are also included in the calculation_type and bottom_level computations.

  • Added 1D-2D lines for connection nodes, manholes, and channels.

  • Added culverts, orifices, and weirs.

  • Added pumps (pumpstations).

  • Settings and metadata are read from the SQLite. Some metadata (like model_slug) can also be provided via the main (make_grid) function. The metadata is written to the root ‘attrs’ of the output gridadmin.h5. The settings are written into datasets inside newly addres groups “grid_settings” and “tables_settings”.

  • Fixes for models with no channels.

  • Add an optional progress callback.

0.1.2 (2021-04-28)

  • Added public API with 1 function: threedigrid_builder.make_grid.

0.1.1 (2021-04-20)

  • Fixed automatic PyPI upload.

0.1.0 (2021-04-20)

  • Partially ported functionality from inpy (generate 3di files, makegrid): 1D channel grid (including calculation_type and bottom_level), and 2D open water grid.

  • Added gridadmin and geopackage output.

  • Breaking change: the interpolation between cross section locations (channels) now also extrapolates for lines and nodes that are not in between two connection nodes. This happens only if the channel has at least 2 cross section locations. When extrapolatic, the line.cross_weight is less than 0 or greater than 1.

  • Breaking change: missing or empty values in float datasets in the output gridadmin are now denoted by NaN (not-a-number) instead of -9999.0.

  • Breaking change: integers in the output gridadmin are now always 32-bit (instead of sometimes 32-bit and sometimes 64-bit).

Project details


Release history Release notifications | RSS feed

This version

0.6.0

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

threedigrid_builder-0.6.0-cp39-cp39-win_amd64.whl (864.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

threedigrid_builder-0.6.0-cp39-cp39-manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

threedigrid_builder-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

threedigrid_builder-0.6.0-cp38-cp38-win_amd64.whl (883.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

threedigrid_builder-0.6.0-cp38-cp38-manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

threedigrid_builder-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

threedigrid_builder-0.6.0-cp37-cp37m-win_amd64.whl (881.4 kB view details)

Uploaded CPython 3.7m Windows x86-64

threedigrid_builder-0.6.0-cp37-cp37m-manylinux2010_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

threedigrid_builder-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

threedigrid_builder-0.6.0-cp36-cp36m-win_amd64.whl (881.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

threedigrid_builder-0.6.0-cp36-cp36m-manylinux2010_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

threedigrid_builder-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file threedigrid_builder-0.6.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 864.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4664d5adffda2955c77f8cbc2fa928601fc3de535b717ff9ffb0f3b58c279c6e
MD5 7b387c3998aeff98faf84e9a2d486339
BLAKE2b-256 e247f5aa76a34beb219733d35de97b45fea6d00440b1de0f9dad67d3a3c97042

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 eb95cea0d4e1f8582aafe25f57e550039514630f3f56a9c3191e5049d38c630f
MD5 d85e39143e86d008e5e9e4658a1bd481
BLAKE2b-256 45b23a7cff18f1fca1557b484e5b77a16e49ac2a28edebc36eb9b02eda323371

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 04587937832e1db76a0078eb6fadc523dd2845e1d0930e28b460d88d3acdde6e
MD5 f5ad97e115dcaab047383cbaa518ce80
BLAKE2b-256 e3d3f59e2f109e91f3aaa6d1ac1a405616cea761b3253d6649c02c0fd21e2343

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 883.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bc12b4e055c97a8ba3919f4a1350d78d23f2ccf460c732bc49aefe30b7dc5587
MD5 7bacef9ba627dd19e5c12d9d4701d327
BLAKE2b-256 a606df43b05f850a164893a7cf48c7e042bbc02bf76aec22e599939b4e916d53

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 af8607488f4b47e500c2dd327f209313fb8518bb144b2321629837a10bbc9a52
MD5 193d2a6ccc7c1fc8effe17a6674a553d
BLAKE2b-256 7180f6974f8d24b3535585ca643dc35ed00f9f73f108cf835da660ed68e5220d

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 827d58a9cc2e5c424323539cfc5ad092ad2c229c61ddba011b01d29c9c1a750f
MD5 7a17da28fb918f989782706ad9c9c66a
BLAKE2b-256 af98247bdc4a1667f565ae64889965fa10fea282a289368eab0916191838c8e6

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 881.4 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 109614b150fafd68f6558aac8b50085ebd1f9558a202a7d35fa5d8ca86e9d28f
MD5 cfba20a4e9aa6cf444f5c174e6daa5b0
BLAKE2b-256 c0b1d35ecee522c0a92b28246d8914fefc6367e25e95c6853a5658aac28f2518

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 668d4be372936ca87297e977a80d88900b96540d6a1bebcb4251ce26e087a0ec
MD5 dcc1d16062de195e7ae33ca746ca80fb
BLAKE2b-256 d0780b3c31325fc0679cfd6df6f49f4630e6e97dce75f96e58e944c35913d5e8

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c42e3691fe12cc67805a81780555810e03d45f5851a168345fc5fe1cfe3bb3d6
MD5 7c269a9fd6d5e9e96d6207089a87805c
BLAKE2b-256 39d8935fffe2ca63647debdfb12022ce57b9e056d4c23426260196ebee11ed4b

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 881.4 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 4cede1eab87cb248ceb83c54bfc80915a81a8941adac38b5d46d0e4a245eda24
MD5 07fc028b4376636d384f17d0fa6fe226
BLAKE2b-256 ee23c2f6873fc49c41f04cea5dd54ad25f41591968939e98dfb30bec6a3bd5de

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0410cda379c090821e6fb80ce4aa9d4660f3f2414451182269aa678413cab200
MD5 40e29290c9e284d2542e90ff7067c2c4
BLAKE2b-256 a9556df71fcbaf50762cc5a860d7d262001120861c711d023696c1113fb3b3df

See more details on using hashes here.

File details

Details for the file threedigrid_builder-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: threedigrid_builder-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for threedigrid_builder-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 642bfbaccc4c7a8593bf05b537aea5c58c63c3d1a6f33ed80daee9e12f4a4219
MD5 184a33319fa64e7394ca8c4552fb78f4
BLAKE2b-256 a167454d61ae2f8c94331518b253f0a650494f25b75d5c7ac257857b249ea0f3

See more details on using hashes here.

Supported by

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