# gaussianPlume

No License

gaussianPlume Steady-state gaussian plume distribution model

gaussianPlume models the dispersion of a continuous point source, i.e.

plume, in various conditions and terrains. The output of gaussianPlume

is a 3-dimensional matrix containing the concentrations of the emitted

substance over a field with the first dimension (y) representing the

cross-wind axis, the second dimension (x) the downwind distance, and

the third dimension (z) the vertical axis. The origin is set at the base

of the stack. All units are in <mgs> (meters, grams, seconds) except

where noted.

C = gaussianPlume(Q) returns the steady-state Gaussian distribution

model of a single, continuous point source emitting at a rate of Q

grams per second for a 50m physical stack height with no calculations

for plume rise, in rural terrain with stability class "F" in the

Guifford-Pasquiill scale. Wind speed is assumed to be 1m/s at the stack

tip (50m).

C = gaussianPlume(Q, u_ref) sets the wind at 1m to be u_ref

C = gaussianPlume(Q, u_ref, h) sets the stack height to h

[C, z0] = gaussianPlume(...) returns the effective stack height in

meters as z0.

C = gaussianPlume(Q, u_ref, h, ...) allows you to set certain options.

Options are set by 'option', <option value> pairs except for certain

options which require no <option value>. The list of permissible

options are listed below:

{'h_ref', h_ref} Sets the reference height for the wind speed u_ref

in meters. Default is 1m.

{'stability', 'class'} Sets Guifford-Pasquill stability class to

class 'class'. 'class' must be one of 'A', 'B', 'C', 'D', 'E',

or 'F'. Default is 'F'.

{'terrain', 't_type'} Sets the terrain to one of 'rural' or

'urban'. Default is 'urban'

{'p', p} Sets the scaling factor for change in wind as a

function of altitude to p. Default is 0.4.

{'plum_rise_model', 'model'} Sets the model to use for calculation

of plume rise. 'model' is one of 'none', 'CONCAWE',

'CarlsonMoses', 'Holland', or 'Briggs'. Default is 'none'.

{'mw', mw} Sets the molecular weight of the exhaust for plume rise

calculations. Specify in atomic mass units. Default is average

of air, 30g/mole.

{'amb_temp', Ta} Sets the ambient temperature in degrees Celsius.

Default is 25C.

{'stack_temp', Ts} Sets the stack temperature in degrees Celsius.

Default is 200C.

{'stack_diameter', ds} Sets the stack diameter (in meters). Default

is 20m.

{'specific_heat', Cp} Sets the specific heat of the exhaust gas in

J/degree Celsius/g. Default is 1.020 (constant pressure Cp for

dry air)

{'amb_pres', Pa} Sets ambient pressure in millibars. Default is

1010mb.

{'stack_pres', Ps} Sets stack tip pressure in millibars. Default is

1010mb.

{'vs', vs} Sets stack exit velocity in m/s. Default is 1m/s.

{'eta', eta} Sets the lapse rate for stable conditions (class E or

F).

'reflection' enables ground reflection (no option value)

'noreflection' disables ground reflection (no option value)

'deposition' models dry deposition (no option value)

'nodeposition' disables dry deposition (no option value)

{'vt', vt} Sets terminal/settling velocity in m/s. Default is

settling velocity for PM2.5, 0.5cm/s.

{'X', x} Sets sampling points at the downwind distances. x is a

vector specifying the downwind distances to evaluate for C in

meters. Default is 0 to 5km in 100m resolution.

{'Y', y} Same as above except for the y-axis (cross-wind)

{'Z', z} Same as above except for the vertical axis

Example

------------------------------

C=gaussianPlume(500, 5, 50, 'h_ref', 10, 'noreflection', ...

'nodeposition', 'amb_pres', 1103, 'amb_temp', 22);

Computes the steady-state Gaussian-distribution of an emission at a

rate of 500g/s with average wind speed of 5m/s at 10m from a

physical stack height of 50m. No plume rise, reflection, nor

deposition will be modeled. The data will be sampled in 100m

resolution across the downwind and crosswind axes from 0 to 5km and

0 to 1km in the vertical axis.

### Cite As

Harold Bien (2024). gaussianPlume (https://www.mathworks.com/matlabcentral/fileexchange/13279-gaussianplume), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility

##### Platform Compatibility

Windows macOS Linux##### Categories

##### Tags

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!### Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Version | Published | Release Notes | |
---|---|---|---|

1.2.0.0 | Lisa - you're right. With the exception of Carlson-Moses and CONCAWE plume rise, I reviewed all equations and performed unit analysis. All temperatures now in Kelvins but input still in Celsius; fixed skipped entry in sigma_z for class 'E'. |
||

1.1.0.0 | Thanks to Sam Duris who pointed out incorrect units were used in calculating sigma_z for rural and sigma_y for urban. I have also added in the documentation reference to the ISC3 User's Manual, Volume II, as the source for the equations. |
||

1.0.0.0 | Thanks to Colin Ritter at Humboldt State University who pointed out an error in the calculation for stable, buoyancy dominated Briggs plume rise, the denominator should have been surrounded in parenthesis, i.e. Fb/(us*s) rather than "Fb/us*s". |