stilt.particles.correct_near_field#

stilt.particles.correct_near_field(particles, receptor, veght)[source]#

Correct foot for plume dilution in the hyper-near field, as STILT-R’s calc_plume_dilution does.

foot assumes surface fluxes are mixed through the air below veght: a fraction of the mixed-layer height when veght is 1 or less, and a height in meters above ground when it is larger, as HYSPLIT reads it. Close to the receptor, the plume from the release point is thinner than that. Following STILT-R, the plume depth grows from the release height with the turbulence each particle meets. While it is below the veght height, foot is recalculated with the plume depth in its place. The worker applies it to any model’s particles when hnf_plume is set.

STILT-R multiplies veght by the mixed-layer height whatever its value, so the two differ when veght is above 1.

Needs the columns HNF_PLUME_COLUMNS, and the release height: release_height (add_release_heights()) or the altitude of a point receptor. The plume grows from the ground, so for a receptor whose heights are above sea level (altitude_ref="msl") it starts at the release height minus the terrain under it, the median zsfc of the first rows of the particles released there, which must be a column too.

Parameters:
  • particles (DataFrame) – Particle table.

  • receptor (stilt.receptor.Receptor) – Receptor the particles were released from.

  • veght (float) – Height that surface fluxes are mixed through (STILT’s veght): a fraction of the mixed-layer height when 1 or less, else meters above ground.

Returns:

A copy of particles with foot corrected and the original values in foot_no_hnf_dilution.

Return type:

DataFrame

Raises:

ValueError – If a required column is missing, or the release height is unknown.