Skip to content

output_parser

output_parser

PyAERMOD Output File Parser

Parses AERMOD output files (.out) and converts results to pandas DataFrames. Based on AERMOD version 24142 output format specifications.

ModelRunInfo dataclass

Metadata about the AERMOD run

SourceSummary dataclass

Summary information for a source

ReceptorInfo dataclass

Information about a receptor

ConcentrationResult dataclass

Concentration results for a specific averaging period

AERMODOutputParser

Parser for AERMOD output files

Extracts run information, source data, receptor data, and concentration results.

parse

parse() -> AERMODResults

Parse the output file and return results object

Returns: AERMODResults object with all parsed data

AERMODResults dataclass

Complete AERMOD results

Contains all parsed information from an AERMOD output file.

from_file classmethod

from_file(output_file: Union[str, Path]) -> AERMODResults

Parse AERMOD output file

Args: output_file: Path to AERMOD .out file

Returns: AERMODResults object

get_concentrations

get_concentrations(averaging_period: str = 'ANNUAL') -> Optional[pd.DataFrame]

Get concentration DataFrame for specific averaging period

Args: averaging_period: Averaging period (e.g., 'ANNUAL', '24HR', '1HR')

Returns: DataFrame with x, y, concentration columns, or None if period not found.

get_max_concentration

get_max_concentration(averaging_period: str = 'ANNUAL') -> Optional[Dict]

Get maximum concentration and its location

Args: averaging_period: Averaging period

Returns: Dictionary with 'value', 'x', 'y', 'units', or None if period not found.

get_concentration_at_point

get_concentration_at_point(x: float, y: float, averaging_period: str = 'ANNUAL', tolerance: float = 1.0) -> Optional[float]

Get concentration at specific point (within tolerance)

Args: x: X coordinate y: Y coordinate averaging_period: Averaging period tolerance: Distance tolerance for matching receptors

Returns: Concentration value or None if no receptor found

get_sources_dataframe

get_sources_dataframe() -> pd.DataFrame

Get sources as DataFrame

get_receptors_dataframe

get_receptors_dataframe() -> pd.DataFrame

Get receptors as DataFrame

summary

summary() -> str

Generate a text summary of results

export_to_csv

export_to_csv(output_dir: Union[str, Path], prefix: str = 'aermod')

Export all results to CSV files

Args: output_dir: Directory for output files prefix: Prefix for filenames

parse_aermod_output

parse_aermod_output(output_file: Union[str, Path]) -> AERMODResults

Parse an AERMOD output file

Args: output_file: Path to .out file

Returns: AERMODResults object

quick_summary

quick_summary(output_file: Union[str, Path]) -> str

Quick summary of AERMOD results

Args: output_file: Path to .out file

Returns: Text summary