Skip to content

aerscreen

aerscreen

AERSCREEN input-deck generation.

EPA's AERSCREEN is the single-source screening front-end to AERMOD. It runs AERMOD with conservative screening met assumptions to produce worst-case 1-hour, 8-hour, and 24-hour impacts from one source — used at the start of every permit project to decide whether full AERMOD modeling is even required.

This module is the deck-builder; binary dispatch lives in :mod:pyaermod.aerscreen_runner. The deck format follows the EPA AERSCREEN v24 User's Guide.

Typical usage::

from pyaermod import AERSCREENConfig, AERSCREENSourceType

cfg = AERSCREENConfig(
    title="SO2 stack screening",
    source_type=AERSCREENSourceType.POINT,
    emission_rate=10.0,           # g/s
    stack_height=30.0,            # m
    stack_diameter=2.0,           # m
    stack_temp=425.0,             # K (or set to None for ambient)
    exit_velocity=15.0,           # m/s
    urban=False,
    anemometer_height=10.0,
)
deck_text = cfg.to_aerscreen_input()

Forward-compatibility for new AERSCREEN keywords is via extra_lines.

AERSCREENSourceType

Bases: StrEnum

Source-type keywords accepted by AERSCREEN v24.

AERSCREENConfig dataclass

Configuration for one AERSCREEN run.

Parameters:

Name Type Description Default
title str

Free-form run title.

required
source_type AERSCREENSourceType

One of :class:AERSCREENSourceType. Required.

required
emission_rate float

Emission rate in grams per second.

required
stack_height Optional[float]

Stack / release height in meters. Required for all source types except AREA where it is the release height of the area source.

None
stack_diameter Optional[float]

Stack inner diameter in meters. Required for POINT, CAPPED, HORIZONTAL, FLARE; ignored for AREA / VOLUME.

None
stack_temp Optional[float]

Stack exit temperature in Kelvin. None to flag ambient temperature (AERSCREEN keyword AMBIENT).

None
exit_velocity Optional[float]

Stack exit velocity in m/s. Required for POINT / CAPPED / HORIZONTAL; ignored for AREA / VOLUME / FLARE.

None
flare_heat_release Optional[float]

Total heat release for FLARE sources in cal/s. Required for FLARE; ignored otherwise.

None
area_length Optional[float]

Length and width of an AREA source in meters. Required for source_type=AREA.

None
area_width Optional[float]

Length and width of an AREA source in meters. Required for source_type=AREA.

None
initial_sigma_z Optional[float]

VOLUME source dimensions in meters. Required for source_type=VOLUME.

None
lateral_dim Optional[float]

VOLUME source dimensions in meters. Required for source_type=VOLUME.

None
vertical_dim Optional[float]

VOLUME source dimensions in meters. Required for source_type=VOLUME.

None
urban bool

True for urban dispersion option (URBANOPT). False for rural.

False
population int

Surrounding population — used for urban dispersion. Default 100,000 (a typical screening default). Ignored when urban=False.

100000
dominant_landuse Optional[int]

Auer land-use category code (1-12). Optional; AERSCREEN derives a default from urban/rural otherwise.

None
temp_min_k float

Climatological annual min / max ambient temperature in Kelvin. AERSCREEN uses these to bracket buoyancy effects.

250.0
temp_max_k float

Climatological annual min / max ambient temperature in Kelvin. AERSCREEN uses these to bracket buoyancy effects.

250.0
anemometer_height float

Height of the assumed anemometer in meters. Default 10.

10.0
use_adju bool

Whether to apply the AERMOD ADJ_U* low-wind beta option. Defaults to False (matching EPA's regulatory default).

False
downwash bool

True to enable building downwash.

False
building_height Optional[float]

Building dimensions (m) and orientation (degrees from north). Required when downwash=True.

None
building_length Optional[float]

Building dimensions (m) and orientation (degrees from north). Required when downwash=True.

None
building_width Optional[float]

Building dimensions (m) and orientation (degrees from north). Required when downwash=True.

None
building_angle Optional[float]

Building dimensions (m) and orientation (degrees from north). Required when downwash=True.

None
terrain bool

True to model elevated terrain. When True, supply lat / lon and either terrain_file or rely on the binary's autoextract (DEM-required) flow.

False
lat Optional[float]

Site location in decimal degrees. Required when terrain=True or when AERSCREEN's terrain processing is invoked.

None
lon Optional[float]

Site location in decimal degrees. Required when terrain=True or when AERSCREEN's terrain processing is invoked.

None
terrain_file Optional[str]

Path to a pre-generated DEM file (typical: AERMAP-extracted elevations). Optional when terrain=True.

None
fumigation bool

True to enable shoreline fumigation calculations.

False
distances object

Either the literal string "AUTO" (AERSCREEN's default 1.5 km downwind grid) or an explicit list of downwind distances in meters.

'AUTO'
extra_lines List[str]

Free-form keyword/value lines appended verbatim. Use for forward-compatibility with AERSCREEN keywords not modeled here.

list()

to_aerscreen_input

to_aerscreen_input() -> str

Render the AERSCREEN input deck as a string.