|
2 | 2 |
|
3 | 3 | [](https://pompy-docs.readthedocs.io/en/latest/?badge=latest) |
4 | 4 |
|
5 | | -PomPy is a NumPy based implementation of the puff-based odour plume model described in [*Filament-Based Atmospheric Dispersion Model to Achieve Short Time-Scale Structure of Odor Plumes*](http://link.springer.com/article/10.1023%2FA%3A1016283702837#page-1) by Farrell et al. (2002). |
| 5 | +PomPy is a NumPy based implementation of the puff-based odour plume model described in |
| 6 | + |
| 7 | +> Farrell, J.A., Murlis, J., Long, X., Li, W. and Cardé, R.T., 2002. |
| 8 | +> Filament-based atmospheric dispersion model to achieve short time-scale |
| 9 | +> structure of odor plumes. *Environmental fluid mechanics, 2(1-2)*, pp.143-169. |
| 10 | +> [Index page (springer.com)](https://link.springer.com/article/10.1023/A:1016283702837) :: [PDF (semanticscholar.org)](https://pdfs.semanticscholar.org/7197/d905b0d6e8cd490f78a893fc266af9a4d901.pdf) |
| 11 | +
|
| 12 | +An example simulated concentration field generated by the package is shown below |
6 | 13 |
|
7 | 14 |  |
8 | 15 |
|
9 | 16 | ### What is this repository for? |
10 | 17 |
|
11 | | -This Python package allows simulation of dynamic 2D odour concentration fields which show some of the key characteristics of real chemical plumes in turbulent flows including short term intermittency, diffusive effects and longer term variations in spatial extent and location, while being significantly cheaper to run than a full fluid dynamics simulation. |
| 18 | +PomPy allows simulation of dynamic 2D odour concentration fields which show some of the key characteristics of real chemical plumes in turbulent flows including short term intermittency, diffusive effects and longer term variations in spatial extent and location, while being cheaper to run than a full fluid dynamics simulation. |
12 | 19 |
|
13 | 20 | ### Installation and requirements |
14 | 21 |
|
15 | | -PomPy was developed in Python 2.7 though it may be compatible with newer Python versions. For basic usage of the models the two dependencies are NumPy and SciPy. For the demonstrations in the `pompy.demo` module Matplotlib is also required. The [`requirements.txt`](requirements.txt) file lists versions of NumPy, SciPy and Matplotlib known to work with `pompy`. A Jupyter notebook server installation will also be required to run the example notebooks locally. |
| 22 | +PomPy requires a Python 2.7 or newer environment. For usage of the `pompy.models` and `pompy.processors` modules [NumPy](http://www.numpy.org/) and [SciPy](https://scipy.org/scipylib/index.html) are required. For the demonstrations in the `pompy.demos` module [Matplotlib](https://matplotlib.org/) is also required. The [`requirements.txt`](requirements.txt) file lists versions of NumPy, SciPy and Matplotlib known to work with PomPy. A [Jupyter](https://matplotlib.org/) notebook server installation will also be required to run the example notebooks locally. |
16 | 23 |
|
17 | 24 | To install PomPy in the current Python environment run |
18 | 25 |
|
19 | 26 | ``` |
20 | 27 | python setup.py install |
21 | 28 | ``` |
22 | 29 |
|
23 | | -and to install the Python requirements using `pip` run |
| 30 | +and to install the Python requirements using pip run |
24 | 31 |
|
25 | 32 | ``` |
26 | 33 | pip install -r requirements.txt |
27 | 34 | ``` |
28 | 35 |
|
29 | 36 | ### Documentation |
30 | 37 |
|
31 | | -Documentation of the `pompy` API is available at [Read the Docs](https://pompy-docs.readthedocs.io/en/latest/). |
| 38 | +Documentation of the PomPy API is available at [Read the Docs](https://pompy-docs.readthedocs.io/en/latest/). |
32 | 39 |
|
33 | | -Two Jupyter notebooks showing examples of using the package are included in the repository root directory. The [`Farrell et al. (2002) example.ipynb`](Farrell%20et%20al.%20%282002%29%20example.ipynb) notebook file illustrates an example of using PomPy to generate an animation of an odour plume using the simulation parameters described in Farrell et al. (2002) and includes keys to match the symbols used to define the parameter in the paper with the relevant `pompy` class attributes. The [`Demonstration.ipynb`](Demonstrations.ipynb) and accompanying module `pompy.demos` give several other examples of setting up plume models using `pompy` and visualising the simulations. |
| 40 | +Two Jupyter notebooks showing examples of using the package are included in the repository root directory. The [`Farrell et al. (2002) example.ipynb`](Farrell%20et%20al.%20%282002%29%20example.ipynb) notebook file illustrates an example of using PomPy to generate an animation of an odour plume using the simulation parameters described in Farrell et al. (2002) and includes keys to match the symbols used to define the parameter in the paper with the relevant PomPy class attributes. The [`Demonstration.ipynb`](Demonstrations.ipynb) and accompanying module `pompy.demos` give several other examples of setting up plume models using PomPy and visualising the simulations. |
34 | 41 |
|
35 | | -The below script will generate a 20 second MP4 animation (see above for animated GIF version) of a generated plume with model parameters consistent with those proposed in the Farrell et al. (2002) paper. |
| 42 | +The below script will generate a 20 second MP4 animation (see above for animated GIF version) of a generated plume with model parameters consistent with those proposed in Farrell et al. (2002). |
36 | 43 |
|
37 | 44 | ```python |
38 | 45 | from pompy import models, processors |
|
0 commit comments