Official Python library for TUFLOW. A library for working with TUFLOW input and outputs with basic running capabilities.
Project description
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
NCtime-series output format, or theNCmap output format. It also allows for reading of theXMDFheader 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, andCATCHJsonoutput 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 usingpytuflowin 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).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytuflow-1.0.4-py3-none-any.whl.
File metadata
- Download URL: pytuflow-1.0.4-py3-none-any.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d43cd0158ece0f54ec0eb76881fb9bc231086716843c5acfcbc43e7ec8cffcda
|
|
| MD5 |
f8acf6c43dd2920af90e821f3c61a430
|
|
| BLAKE2b-256 |
4e5f17fe3c73c0eb85a8da9e1409a54fd205cc496f79b8de2e6e14ed6ca9932d
|