Fast and easy-to-use Python reader for FDS data
The package is available on PyPI and can be installed using pip:
pip install fdsreader
FDS Version 6.7.5 and above are fully supported. Versions below 6.7.5 might work, but are not guaranteed to work.
import fdsreader as fds
# Creates an instance of a simulation master-class which manages all data for a given simulation
sim = fds.Simulation("./sample_data")
# Examples of data that can be easily accessed
print(sim.meshes, sim.surfaces, sim.slices, sim.data_3d, sim.smoke_3d, sim.isosurfaces, sim.particles, sim.obstructions)
More advanced examples can be found in the respective data type directories inside of the examples directory.
The package provides a few configuration options that can be set using the settings
module.
fds.settings.KEY = VALUE
# Example
fds.settings.DEBUG = True
KEY | VALUE | Default | Description |
---|---|---|---|
LAZY_LOAD | boolean | True | Load all data when initially loading the simulation (False) or only when specific data is needed (True). |
ENABLE_CACHING | boolean | True | Cache the loaded simulation to reduce startup times when loading the same simulation again. |
DEBUG | boolean | False | Crash on non-critical errors with an exception (True) or output non-critical errors as warnings (False). |
IGNORE_ERRORS | boolean | False | Ignore any non-critical errors completely. |
Beware that not all attributes and methods are covered in this diagram. For a complete
documentation of all classes check the API Documentation below.
https://firedynamics.github.io/fdsreader/
Deployment now follows the Python Packaging User Guide's recommendation.
With this setup, deployments to both TestPyPI and PyPI are automated. Every push to GitHub triggers a deployment to TestPyPI, simplifying the testing of new changes and validating the CI pipeline. Therefore, it is necessary to set the package version to .dev
to avoid blocking version numbers.
- Execute:
python3 -m incremental.update fdsreader --dev
- Push changes to GitHub.
If you are sure your changes are stable push a GitHub Tag to perform deployment to PyPI and to pack a GitHub Release Deploying a tested/stable version:
- set the new version with
python3 -m incremental.update fdsreader --newversion=<version>
- Push changes to GitHub
- Create tag
git tag -a v<version> -m "Version <version>"
- Push Tag to GitHub with
git push origin tag <version>
It is also possible to deploy to PyPI and Github pages manually using the following steps:
- python setup.py sdist bdist_wheel
- twine upload dist/*
- sphinx-build -b html docs docs/build
- cd .. && mkdir gh-pages && cd gh-pages
- git init && git remote add origin [email protected]:FireDynamics/fdsreader.git
- git fetch origin gh-pages:gh-pages
- git checkout gh-pages
- cp -r ../fdsreader/docs/build/* .
- git add . && git commit -m "..." && git push origin HEAD:gh-pages
- Jan Vogelsang – [email protected]
- Prof. Dr. Lukas Arnold - [email protected]
Distributed under the LGPLv3 (GNU Lesser General Public License v3) license. See LICENSE
for more information.
https://github.com/FireDynamics/fdsreader
- Fork it (https://github.com/FireDynamics/fdsreader/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request