AirPollutionExposure¶
Traffic-related air pollution (TRAP) exposure assessment based on fleet operation outputs and spatial population data.
The AirPollutionExposure class estimates relative population exposure
to traffic-related emissions by combining:
- Fleet-level vehicle kilometers traveled (VKT / VKM)
- Spatialized road geometries from travel sequences
- A population raster
- Distance-based exponential decay of pollutant concentration
The exposure assessment follows a raster-based workflow and produces intermediate and final spatial indicators suitable for GIS analysis.
Workflow
- Local emission index: Spatial allocation of vehicle kilometers to raster cells based on road geometry intersection.
- Distance-weighted exposure:Application of an exponential decay kernel within a given buffer distance.
- Population-weighted exposure: Combination with population raster and normalization.
- Raster export: All outputs are written as GeoTIFF files.
Notes
- The model estimates relative exposure, not pollutant concentration (e.g. NO₂, PM₂.₅).
- Emissions are assumed proportional to vehicle kilometers traveled.
- No background pollution or meteorology is included.
- The decay function is isotropic and distance-based.
- All rasters must share the same spatial resolution and CRS.
Attributes:
| Name | Type | Description |
|---|---|---|
input_fleet_operation |
str
|
Path to CSV file containing fleet operation results (trip-level VKM). |
input_travel_sequences |
str
|
Path to CSV file containing travel sequence geometries (WKT LineStrings). |
population_raster |
str
|
Path to population raster (GeoTIFF). |
buffer_distance |
float
|
Maximum influence distance in meters. |
decay_rate |
float
|
Exponential decay rate (per meter). |
output_local_emission_index |
str
|
Path to output local emission raster. |
output_distance_weighted_index |
str
|
Path to output distance-weighted raster. |
output_population_exposure |
str
|
Path to output population exposure raster. |
Examples:
>>> calculator = AirPollutionExposure(
... input_fleet_operation="fleet_operation.csv",
... input_travel_sequences="travel_sequences.csv",
... population_raster="population.tif",
... buffer_distance=300,
... decay_rate=0.0064
... )
>>> calculator.compute_exposure(
... "local_emission.tif",
... "distance_weighted.tif",
... "population_exposure.tif"
... )
Functions¶
__init__(input_fleet_operation, input_travel_sequences, population_raster, buffer_distance=300, decay_rate=0.0064)
¶
Initialize the air pollution exposure assessment engine.
This constructor registers all required inputs and configuration parameters. No computation is performed at initialization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_fleet_operation
|
str
|
Path to CSV file containing fleet operation outputs, including total distance traveled per trip. |
required |
input_travel_sequences
|
str
|
Path to CSV file containing travel sequences with WKT geometries. |
required |
population_raster
|
str
|
Path to population raster (GeoTIFF). |
required |
buffer_distance
|
float
|
Maximum distance of pollutant influence in meters. Defaults to 300 m. |
300
|
decay_rate
|
float
|
Exponential decay rate of exposure per meter. Defaults to 0.0064. |
0.0064
|
compute_exposure(output_local_emission_index, output_distance_weighted_index, output_population_exposure)
¶
Run the full air pollution exposure assessment pipeline.
This method executes all processing steps sequentially: - VKM and geometry preparation - Local emission index computation - Distance-weighted exposure convolution - Population-weighted exposure normalization
All intermediate and final results are written to disk.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
output_local_emission_index
|
str
|
Output GeoTIFF path for the local emission index raster. |
required |
output_distance_weighted_index
|
str
|
Output GeoTIFF path for the distance-weighted exposure raster. |
required |
output_population_exposure
|
str
|
Output GeoTIFF path for the normalized population exposure raster. |
required |