Skip to main content

PyTuflow

PyTUFLOW is a library that acts as an API for your TUFLOW model. It allows easy interaction with the model results, contains a number of useful utilities for building TUFLOW models, and contains some useful parsers for files within the TUFLOW eco-system.

Documentation

The documentation for PyTUFLOW can be found at: https://docs.tuflow.com/pytuflow/

Installation

You can install PyTUFLOW using pip.

pip install pytuflow

Dependencies

Most dependencies are automatically installed when you install pytuflow. There are a few additional dependencies that are not automatically installed, but are very useful as they will extend the functionality of pytuflow. These are:

  • netCDF4: This is required for reading any netCDF files, for example, the NC time-series output format, or the NC map output format. It also allows for reading of the XMDF header information.
  • GDAL: This is required for reading GIS files, which extends the :class:GisInput<pytuflow.GisInput> class and allows the use of GIS files as locations to extract data from map outputs.
  • shapely: Needed for extracting section data from map output formats.
  • QGIS: Currently QGIS is required for extracting data from XMDF, NCMesh, and CATCHJson output formats. We hope to remove this dependency in the future, but for now, it is required for these particular output formats. It isn't required for using pytuflow in general.

One of the trickiest libraries to install is GDAL. For Windows, you can download pre-compiled binaries from here: https://github.com/cgohlke/geospatial-wheels/releases.

For QGIS, there are some broad instructions on how to set up a QGIS environment in the output examples.

Quickstart

The best place to get started is the Load and Run a TUFLOW Model example, or to browse through the other Examples.

Development

The code base can be cloned from GitHub:

git clone https://github.com/TUFLOW-Support/PyTuflow.git --recurse-submodules

Dependencies can be installed using the requirements-dev.txt file:

pip install -r requirements-dev.txt

GDAL python bindings will also need to be installed separately. Version 3.8 or later is preferred.

Building the Docs

To build the documentation, navigate to the docs folder and run:

# from the pytuflow project root directory
cd docs
.\make.bat dirhtml

To serve the documentation locally, you can use (on Windows):

.\serve.ps1

Running Tests

PyTUFLOW uses unittest and pytest for testing depending on which module is being tested.

To run tests for the time series output classes:

# from the pytuflow project root directory
python -m unittest tests.test_time_series

To run tests for the map output classes, you will need to run within a QGIS Python environment:

# from the pytuflow project root directory
python -m unittest tests.test_map_output

To run the tmf tests on Windows:

# from the pytuflow project root directory
cd pytuflow/_tmf
pytest tests/unit_tests/

To run the fm_to_estry unit tests:

# from the pytuflow project root directory
cd pytuflow/_fm_to_estry
python -m unittest discover -s tests/unit_tests

To run the fm_to_estry integration tests:

# from the pytuflow project root directory
cd pytuflow/_fm_to_estry
python -m unittest discover -s tests/integration_tests

Building the Package

# from the pytuflow project root directory
python -m build --wheel

LICENCE

MIT LICENCE (see LICENSE file for details).

Metadata

Release files for pytuflow 1.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pytuflow 1.2.5
File Interpreter ABI Platform
pytuflow-1.2.5-py3-none-any.whl Python 3 none any Details

Release files / pytuflow-1.2.5-py3-none-any.whl

Download URL pytuflow-1.2.5-py3-none-any.whl
Size 810.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
14db779f3bc15a5b22d286f93d7fa8b5045d18f37f258a931ef253eba0c0f470
BLAKE2b-256 checksum
How to use checksums
72f4e443b568f847ce4d13f46740c23a01860ad98da9a256f153dc37640b852e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

1.2.6

1 release file

This release

1.2.5 This release

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2

1 release file

1.1.10

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.0.17

1 release file

0.0.16

1 release file

0.0.15

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

2 release files

0.0.11

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page