aersurface¶
aersurface ¶
AERSURFACE input-deck generation.
EPA's AERSURFACE binary derives monthly surface-characteristic tables
(albedo, Bowen ratio, surface roughness) from NLCD land-use rasters
for use in AERMET Stage 3. This module is the deck-builder; binary
dispatch lives in :mod:pyaermod.aersurface_runner.
The deck format follows the EPA AERSURFACE v24 User's Guide. Common
keywords are exposed as :class:AERSURFACEConfig fields; uncommon /
forward-compatibility keywords can be passed via the extra_lines
escape hatch.
Typical usage::
cfg = AERSURFACEConfig(
title="Salem AERSURFACE run",
site_id="SALEM",
latitude=44.92, longitude=-123.04, utc_offset=-8,
nlcd_file="/data/nlcd/NLCD_2019.img",
nlcd_year=2019,
snow_regime="CONTINENTAL_WARM",
moisture_per_month=["AVERAGE"] * 12,
snow_cover_per_month=["N"] * 12,
output_dir=".",
)
deck_text = cfg.to_aersurface_input()
AERSURFACEConfig
dataclass
¶
Configuration for one AERSURFACE run.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title
|
str
|
Free-form run title written as the deck's TITLE keyword. |
required |
site_id
|
str
|
Short station identifier (<=8 characters recommended). |
required |
latitude
|
float
|
Site location in decimal degrees (WGS84). |
required |
longitude
|
float
|
Site location in decimal degrees (WGS84). |
required |
utc_offset
|
int
|
UTC offset hours, e.g. -8 for PST. |
required |
nlcd_file
|
str
|
Path to the NLCD raster (.img / .tif) covering the site and the surrounding sample radii. |
required |
nlcd_year
|
int
|
NLCD release year. Must be one of: 1992, 2001, 2006, 2011, 2013, 2016, 2019, 2021. |
required |
arid
|
bool
|
Set to True for arid/semi-arid regions (alters Bowen ratio). |
False
|
airport
|
bool
|
Set to True for airport-style assumptions (mowed grass dominant). |
False
|
snow_regime
|
str
|
Snow temperature regime; one of CONTINENTAL_WARM, CONTINENTAL_COOL, MARITIME_WARM, MARITIME_COOL, POLAR. |
'CONTINENTAL_WARM'
|
moisture_per_month
|
List[str]
|
12-element list of "AVERAGE" | "DRY" | "WET" per Jan..Dec. |
(lambda: ['AVERAGE'] * 12)()
|
snow_cover_per_month
|
List[str]
|
12-element list of "Y" | "N" per Jan..Dec. |
(lambda: ['N'] * 12)()
|
sectors
|
Optional[List[float]]
|
List of sector boundary angles in degrees (clockwise from north), or None for a single uniform sector. |
None
|
radius_roughness_km
|
float
|
Sample radius for surface-roughness averaging (km). EPA default 1.0. |
1.0
|
radius_albedo_bowen_km
|
float
|
Sample radius for albedo + Bowen-ratio averaging (km). EPA default 10.0. |
10.0
|
output_dir
|
str
|
Directory for AERSURFACE output files (the .out summary + the 12-month .sfc characteristic table consumed by AERMET Stage 3). |
'.'
|
extra_lines
|
List[str]
|
Free-form lines appended verbatim after the standard keywords. Use for forward-compatibility with new AERSURFACE keywords or site-specific overrides not yet modelled here. |
list()
|