Skip to content

sources

sources

PyAERMOD Source dataclasses and helpers.

Contains all AERMOD source types (PointSource, AreaSource, VolumeSource, LineSource, etc.), deposition parameter dataclasses, building-downwash helpers, background concentration, source groups, and the SourcePathway collection.

This module is an internal implementation detail. Public imports should go through :mod:pyaermod.input_generator (the backwards-compatible facade) or :mod:pyaermod.api.

DepositionMethod

Bases: Enum

AERMOD deposition method types for the METHOD keyword.

GasDepositionParams dataclass

Gas deposition parameters for the GASDEPOS keyword.

ParticleDepositionParams dataclass

Particle deposition parameters for PARTDIAM/MASSFRAX/PARTDENS keywords.

PointSource dataclass

AERMOD point source (stack)

Represents an elevated point source with emission parameters.

set_building_from_bpip

set_building_from_bpip(building) -> None

Populate building downwash fields from a Building object.

Runs BPIPCalculator to compute 36 direction-dependent values and stores them in the building_* fields.

Parameters:

Name Type Description Default
building Building

Building geometry to use for downwash calculations.

required

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

AreaSource dataclass

AERMOD area source (rectangular)

Represents a rectangular area source with uniform emissions.

set_building_from_bpip

set_building_from_bpip(building) -> None

Populate building downwash fields from a Building object.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

AreaCircSource dataclass

AERMOD circular area source

Represents a circular area source with uniform emissions.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

AreaPolySource dataclass

AERMOD polygonal area source

Represents an irregular polygonal area source defined by vertices.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

VolumeSource dataclass

AERMOD volume source

Represents a three-dimensional volume with initial dispersion. Useful for modeling emissions from buildings, structures, or areas with significant initial mixing.

set_building_from_bpip

set_building_from_bpip(building) -> None

Populate building downwash fields from a Building object.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

LineSource dataclass

AERMOD line source

Represents a linear source with uniform emissions per unit length. Useful for modeling roads, conveyor belts, pipelines, or any linear emission feature.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

StreetCanyon dataclass

Street canyon geometry for RLINE/RLINEXT sources.

Approximates canyon effects by adjusting initial vertical dispersion and applying a concentration scaling factor based on the canyon aspect ratio (building_height / street_width).

The approach uses three flow regimes (Oke, 1988): - AR < 0.65: isolated roughness -- minimal canyon trapping - 0.65 <= AR < 1.5: wake interference / skimming flow - AR >= 1.5: deep canyon with persistent vortex

The adjusted sigma-z reflects reduced ventilation inside the canyon, and the concentration factor accounts for pollutant trapping that cannot be captured by sigma-z alone.

aspect_ratio property

aspect_ratio: float

Canyon aspect ratio H/W.

adjusted_sigma_z

adjusted_sigma_z(base_sigma_z: float) -> float

Return sigma-z adjusted for canyon trapping.

In the recirculation zone the effective mixing height is limited to the canyon depth, which increases initial sigma-z (more vertical mixing within the confined space).

concentration_factor

concentration_factor() -> float

Multiplicative factor on emission rate to represent canyon trapping.

Derived from the OSPM box-model concept: reduced ventilation in the canyon raises concentrations relative to open-road dispersion. The factor equals 1.0 (no effect) for isolated roughness and increases with aspect ratio up to a cap of 3.0 for deep canyons.

RLineSource dataclass

AERMOD RLINE source (roadway source)

Specialized source for modeling mobile emissions on roadways. More sophisticated than basic LINE source with road-specific parameters.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

RLineExtSource dataclass

AERMOD RLINEXT source (extended roadway source)

Extension of RLINE with per-endpoint heights, noise barrier support, and depressed roadway modeling. Requires ALPHA model option for barrier/depression features.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

BuoyLineSegment dataclass

A single line segment within a BUOYLINE source group.

BuoyLineSource dataclass

AERMOD BUOYLINE source (buoyant line source)

Models buoyant line sources such as aluminum reduction plant potroom roof vents. Consists of multiple line segments sharing common plume rise parameters defined via BLPINPUT.

emission_rate property

emission_rate: float

Total emission rate across all segments.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

OpenPitSource dataclass

AERMOD OPENPIT source (open pit mine/quarry)

Models fugitive emissions from open pit sources. The escape fraction is computed internally by AERMOD based on pit geometry and wind speed. Coordinates specify the SW corner of the pit.

effective_depth property

effective_depth: float

Effective pit depth computed from volume and dimensions.

to_aermod_input

to_aermod_input() -> str

Generate AERMOD SO pathway text for this source

BackgroundSector dataclass

A wind direction sector for direction-dependent background concentrations.

Each sector is defined by its starting direction (degrees clockwise from north). AERMOD allows up to 6 sectors. The ending direction is implicitly the starting direction of the next sector (or the first sector for wrap-around).

BackgroundConcentration dataclass

AERMOD background concentration configuration (SO BACKGRND / BGSECTOR).

Supports three modes: 1. Uniform: single value for all hours/directions 2. Period-specific: mapping of averaging period to value 3. Sector-dependent: sectors + per-sector, per-period values

to_aermod_input

to_aermod_input() -> str

Generate AERMOD BACKGRND / BGSECTOR keywords.

SourceGroupDefinition dataclass

Centralized source group definition.

Allows defining named groups of sources for AERMOD's SRCGROUP keyword, enabling per-group output files and chemistry associations.

Parameters:

Name Type Description Default
group_name str

Group identifier (max 8 characters, AERMOD limitation).

required
member_source_ids list of str

Source IDs belonging to this group.

list()
description str

Optional description for documentation purposes.

''

SourcePathway dataclass

Collection of sources

add_source

add_source(source: Union[PointSource, AreaSource, AreaCircSource, AreaPolySource, VolumeSource, LineSource, RLineSource, RLineExtSource, BuoyLineSource, OpenPitSource])

Add a source to the pathway

add_group

add_group(group: SourceGroupDefinition)

Add a source group definition.

to_aermod_input

to_aermod_input(chemistry: Optional[ChemistryOptions] = None) -> str

Generate AERMOD SO pathway text.

Parameters:

Name Type Description Default
chemistry ChemistryOptions

Chemistry options from ControlPathway for OLM group emission.

None