GaussianDispersion
Documentation for GaussianDispersion.
GaussianDispersion.AbstractDispersionFunctions
GaussianDispersion.GaussianPlume
GaussianDispersion.HeatBalanceParams
GaussianDispersion.PGStability
GaussianDispersion.PGStabilityClass
GaussianDispersion.ReleaseParams
GaussianDispersion.albedo_elevation
GaussianDispersion.buoyancy_flux_param
GaussianDispersion.buoyancy_plume_rise
GaussianDispersion.friction_temp
GaussianDispersion.friction_velocity
GaussianDispersion.friction_velocity
GaussianDispersion.height_hs
GaussianDispersion.height_isa
GaussianDispersion.hour_angle
GaussianDispersion.log_wind_profile
GaussianDispersion.momentum_flux_param
GaussianDispersion.momentum_plume_rise
GaussianDispersion.net_radiation
GaussianDispersion.obukhov
GaussianDispersion.obukhov
GaussianDispersion.pasquill_gifford
GaussianDispersion.potential_temp
GaussianDispersion.saturation_pressure
GaussianDispersion.sensible_heat_flux
GaussianDispersion.solar_declination
GaussianDispersion.solar_elevation
GaussianDispersion.solar_energy_flux
GaussianDispersion.virtual_temp
GaussianDispersion.virtual_temp
GaussianDispersion.AbstractDispersionFunctions
— TypeAbstractDispersionFunctions
Define types for representing functions to compute the dispersion coefficients with respect to the downwind distance x
in meter. Those types must implement the sigma_y
and sigma_z
methods that both return a closure for calculating σ_y
and σ_z
respectively. Instanciating those types give a functor that takes as argument the downwind distance and return the dispersion coefficients.
GaussianDispersion.GaussianPlume
— Typestruct GaussianPlume{M, T}
Structure related to the release conditions
release
: release parametersmeteo
: parameters related to the atmospheric conditionsdispcoefs
: object representing the dispersion coefficientsreflection
: if ground reflection is considered_z_exp_terms
GaussianDispersion.HeatBalanceParams
— Typestruct HeatBalanceParams{C, A, B}
Values for the heat balance parametrization.
- 'albedo' :
C_g
: parameter for the estimation of the heat flux to the ground in the equation $q\_G = C\_G R\_n$.
Typical values are 0.05-0.25
for rural, 0.25-0.3
for urban and 0.1
for grasslands (Scire et al., 2000)
GaussianDispersion.PGStability
— TypePGStability <: AbstractPGStability
Define the stability classes for the model according to Pasquill and Gifford. #! If multiple classes are defined, the average result for each class is considered.
Example
julia> pgstab = PGStability(:A)
PGStability(GaussianDispersion.PGVeryUnstable())
GaussianDispersion.PGStabilityClass
— TypePGStabilityClass
Abstract type of Pasquill-Gifford stability classes. The concrete types start with PG
followed by the letter from Pasquill-Gifford classes (A, B, C, D, E, F).
Reference
(Pasquill, 1961; Gifford, 1961).
GaussianDispersion.ReleaseParams
— Typestruct ReleaseParams{T}
Structure related to the release conditions
h
: Effective source height [m]Q
: Emission rate [g/s]Ts
: Gas temperature out of the stack [K]
GaussianDispersion.albedo_elevation
— Methodalbedo_elevation(albedo_90, ϕ) -> Any
Albedo given albedo_90
the albedo at 90° and ϕ
the solar elevation
GaussianDispersion.buoyancy_flux_param
— Methodbuoyancy_flux_param(
gas_density,
air_density,
stack_radius,
gas_velocity
)
Buoyancy flux parameter according to Briggs (1968).
GaussianDispersion.buoyancy_plume_rise
— Methodbuoyancy_plume_rise(flux_param, x, u)
Plume rise Δh
[m] according to Briggs (1975) parametrization for buoyancy dominated plumes. x
is the downwind distance in meter and u
the downwind velocity in meter/second.
GaussianDispersion.friction_temp
— Methodfriction_temp(q, rho, u_star, c_p) -> Any
Calculate the friction temperature from the surface pressure p
[Pa], temperature t
[K], dewpoint temp td
[K] and stress stress
[N/m²].
Arguments
- q: surface sensible heat flux [W/m²]
- rho: air density [kg/m³]
- u_star: scale velocity [m/s]
- c_p: specific heat capacities of dry air [J/kg/K]
GaussianDispersion.friction_velocity
— Methodfriction_velocity(p, t, td, stress, R_gas) -> Any
Calculate the friction velocity from the surface pressure p
[Pa], temperature t
[K], dewpoint temp td
[K] and stress stress
[N/m²].
GaussianDispersion.friction_velocity
— Methodfriction_velocity(u_m, z_m, z_0; karman) -> Any
Calculate the friction velocity from a velocity u_m
measured at z_m
on a surface of roughness length z_0
.
GaussianDispersion.height_hs
— Methodheight_hs(p, ps, R_gas, T, g) -> Any
Get height from pressure level in a hydrostatic atmosphere.
GaussianDispersion.height_isa
— Methodheight_isa(p, R_gas, g) -> Any
Get height from pressure level in the international standard atmosphere.
GaussianDispersion.hour_angle
— Functionhour_angle(t) -> Any
hour_angle(t, t0) -> Any
t
the time in hour and t0
the time of the solar noon.
GaussianDispersion.log_wind_profile
— Methodlog_wind_profile(u_star, z, z_0, L; karman) -> Any
Calculate the log wind velocity profile.
Arguments
- u_star: friction velocity [m/s]
- z: height [m]
- z_0: roughness length [m]
- L: Obukhov length [m]
GaussianDispersion.momentum_flux_param
— Methodmomentum_flux_param(
gas_density,
air_density,
stack_radius,
gas_velocity
)
Momentum flux parameter according to Briggs (1968).
GaussianDispersion.momentum_plume_rise
— Methodmomentum_plume_rise(flux_param, x, u)
Plume rise Δh
[m] according to Briggs (1975) parametrization for momentum dominated plumes. x
is the downwind distance in meter and u
the downwind velocity in meter/second.
GaussianDispersion.net_radiation
— Methodnet_radiation(R, albedo, cloud_cover, T_surf) -> Any
Net radiation energy flux received by the earth surface [W m^-2] with R
the solar flux (solar_energy_flux
)
GaussianDispersion.obukhov
— Methodobukhov(ps, ts, u_star, q; c_p, R_gas, karman, g) -> Any
Calculate Obukhov scale height from surface meteorological data and sensible heat flux.
Arguments
- ps: surface pressure [Pa]
- ts: surface temperature [K]
- u_star: scale velocity [m/s]
- q: surface sensible heat flux [W/m2]
GaussianDispersion.obukhov
— Methodobukhov(
ps,
ts,
td,
t,
p,
u_star,
q;
c_p,
R_gas,
karman,
g
) -> Any
Calculate Obukhov scale height from surface meteorological data and sensible heat flux.
Arguments
- ps: surface pressure [Pa]
- ts: surface temperature [K]
- td: surface dew point [K]
- t: temperature first model level [K]
- p : pressure first model level [Pa]
- u_star: scale velocity [m/s]
- q: surface sensible heat flux [W/m2]
GaussianDispersion.pasquill_gifford
— Methodpasquill_gifford(criteria::AbstractSkyCondition, windspeed::Real)
Return a list of stability classes according to the Pasquill Gifford criteria
Example
julia> pasquill_gifford(Moderate, 5.5) Set{StabilityClass} with 2 elements: C D
GaussianDispersion.potential_temp
— Methodpotential_temp(t, p, akap) -> Any
Calculate the potential temperature.
Arguments
- t: temperature [K]
- p: pressure [Pa]
- R_gas: individual gas constant for dry air [J/kg/K]
- c_p: specific heat capacities of dry air [J/kg/K]
GaussianDispersion.saturation_pressure
— Methodsaturation_pressure(t) -> Any
Calculate the saturation vapor pressure from Arden Buck equations (Buck, 1996). t
is in K, result in Pa.
GaussianDispersion.sensible_heat_flux
— Methodsensible_heat_flux(C_g, net_rad, B) -> Any
Sensible heat flux to the surface [W m^-2]. net_rad
can be calculated with net_radiation
GaussianDispersion.solar_declination
— Methodsolar_declination(day) -> Any
Latitude [°] where the sun is in the zenith at the solar noon. day
is the day of the year
GaussianDispersion.solar_elevation
— Methodsolar_elevation(lat, sol_dec, h_angle) -> Any
Solar elevation [°] given the latitude, the solar declination and the hour angle.
GaussianDispersion.solar_energy_flux
— Methodsolar_energy_flux(Φ, n) -> Any
Solar radiation energy flux W m^-2 given the solar elevation Φ
and n
the fractional cloud cover. Ref: Kasten and Czeplak, 1980; Holtslag and van Ulden, 1983.
GaussianDispersion.virtual_temp
— Methodvirtual_temp(ps, t, e) -> Any
Calculate the virtual temperature from the surface pressure ps
[Pa], the temperature t
[K], and the vapor pressure e
[Pa].
GaussianDispersion.virtual_temp
— Methodvirtual_temp(t, w) -> Any
Calculate the virtual temperature from the temperature t
[K] and the specific humidity w
[kg/kg].