3D Urban Air Quality Prediction

Urban citizens are exposed to air pollution at an increased level, which causes many premature deaths. In cities, the main producer of the most relevant pollutants, the nitrogen oxides (NOx) is the traffic, which is responsible for emitting more than 40% of this contaminant. In order to support city authorities and policy makers in their job for reducing air pollution arising from traffic, computational models have been used for running scenarios for some decades. However, accurate models that take into account real 3D geometry of cities including buildings with high spatial resolution and are easy-to-use at the same time seem to be lacking. The main difficulty of matching accuracy and usability is that accuracy needs supercomputers, which is traditionally of difficult use. Bringing the existing 3DAirQualityPrediction framework to the MSO4SC infrastructure and using the fast and accurate FEniCS-HPC application 3DAirQualityPrediction-CFD as module of the framework 3DAirQualityPrediction the project will match accuracy and usability.

Program structure

The framework is composed of the following main modules

  • traffic
  • emission
  • meteorology
  • dispersion
  • the core module, which is either for evaluating assessments or performing optimization or control.

An overview of the 3DAirQC workflow is given in the next figure.

Preprocessing

The preprocessing steps of the simulation modules are based on several toolkits consisting of Blender tools for 3D modelling, in-house 3D meshing tools and some commercial tools of ANSYS. All of these steps need normally special and time consuming work, which is done mainly automatically using our tools.

Traffic simulation

For modelling the urban traffic we have been using macroscopic and microscopic models. These are based on

  • historical traffic count data of a big campaign and/or
  • monitoring data arising from operational data collected by city and national road authorities.

Based on these data, the user has an option to choose PTV Vissim or Visum for microscopic or macroscopic simulation of the traffic or either use just statistical or measurement data.

Emission calculation

For modelling the emission of the vehicles in the traffic the European standard emission model, the COPERT model is used. Actually it is a script that computes emissions of the pollutants at street segments that serve as forcing terms in the dispersion module.

Meteorology data

For boundary conditions of the dispersion module we used meteorology data from the national official operational data of the Hungarian Meteorology Service (OMSZ), which uses the AROME (Application of Research to Operations at Mesoscale) non-hydrostatic numerical weather prediction model.

Dispersion simulation

The project will use 3DAirQualityPrediction-CFD application for simulation of the emitted pollutants. The first one is the frozen flow field model where the wind field is precomputed with a RANS or an adaptive LES model of 3DAirQuallityPrediction-CFD according to the setting given in a configuration file. Then dispersion of the pollutants is computed with

  • the simple advection-diffusion(-reaction) module of 3DAirQuallityPrediction-CFD or
  • the wind field and dispersion of the pollutants is computed simultaneously. These options are governed by the configuration of the 3DAirQuallityPrediction-CFD.

Dataflow and format

Preprocessing
  • CFD preprocessing: geometry, mesh creation
  • Preprocessing of the traffic simulation
  • Synchronization of the different geometries
    • Transformation between the 2D traffic geometry and the 3D CFD geometry using a GUI
      • Input: traffic geometry, CFD geometry
      • Output:
        • a link-to-mesh (.ltm) file with segment IDs, original segment coordinates and unique transformation for each point if needed in top of the global transformation, an example is shown below.
        • a match (.mch) file with rows containing: VolumeID, SegmentID_1, Fraction_1 SegmentID_2, Fraction_2, …​ Meaning: the segment with SegmentID_i intersects the tetrahedron with VolumeID and Fraction_i of its length is inside the cell. An example is shown below (the cell with cellID 572163 intersects 3 different segments).
GlobalTarnsformX GlobalTarnsformY
-716.0376348463853 -484.5011139354857
ID,StartX StartY StartTransformX StartTransformY,EndX EndY EndTransformX EndTransformY
1,41.57 -339.77 0.0 0.0,40.75 -337.94 0.0 0.0
2,40.75 -337.94 0.0 0.0,39.93 -336.12 0.0 0.0
3,39.93 -336.12 0.0 0.0,39.1 -334.3 0.0 0.0
MeshFilePath = gyor_tetra.msh
LinkFilePath = traffic_sim_test_vissim_output.str
VolumeID; SegmentID_1, Fraction_1; SegmentID_2, Fraction_2; ...
572163; 853, 0.039975486498566526; 858, 0.42600643981354314; 827, 0.4091562836198578; 859, 0.09069896932448622;
586912; 808, 0.012419862099445528;
575747; 859, 0.20352388421392353;
  • Transformation between the 3D CFD geometry and meteorology geometry using a GUI
    • Input: CFD geometry, meteorology NetCDF files
    • Output: a .met file to show the matching based on a picked a point from the CFD mesh and giving its latitude/longitude coordinates, the section that is required from the NetCDF geometry and average ground height
MapPointLatitude MapPointLongitude
47.683242 17.635497
MapPointX MapPointY
-141.4555263038939 -848.9256136323792
PblSection
0:0,0:18,71:75,130:136
Average ground height
112.76421915296051
Traffic module
  • Input:
    • the network of the traffic system: geometry, connections, lanes, traffic signals
    • traffic light behaviour
    • initial distribution of the vehicles
  • Output:
    • for each vehicle class (car, HGV, bus):
      • Density[vehicle/km]
      • Volume[vehicle/h]
      • Average speed[km/h]
    • Simulation time[sec]
    • Lane number
    • Link ID
    • Segment coordinates

In case of PTV Vissim traffic simulation:

  • Input files:
    • .ini, .inp, .sig, .sak
  • Output files
    • .str The header and the first two rows of an .str file is shown below as an example.
Density(10);     v(10); Volume(10); Volume(20);     v(20); Density(20); Density(30);     v(30); Volume(30); Volume(40);     v(40); Density(40); Density(50);     v(50); Volume(50); Volume(60);     v(60); Density(60); Lane;  Link;     t; SegEndX; SegEndY;  SegStX;  SegStY;     v(0); Volume(0); Density(0);
     0.00;     0.00;     0.00;     0.00;     0.00;      0.00;      0.00;     0.00;     0.00;     0.00;     0.00;      0.00;      0.00;     0.00;     0.00;     0.00;     0.00;      0.00;    1; 10000; 300.0;   40.75; -337.94;   41.57; -339.77;     0.00;     0.00;      0.00;
     0.00;     0.00;     0.00;     0.00;     0.00;      0.00;      0.00;     0.00;     0.00;     0.00;     0.00;      0.00;      0.00;     0.00;     0.00;     0.00;     0.00;      0.00;    1; 10000; 300.0;   39.93; -336.12;   40.75; -337.94;     0.00;     0.00;      0.00;
Emission module
  • Input:
    • the output of the traffic simulation (In case of Vissim simulation: .str file)
    • match (.mch) file from the synchronization of traffic and CFD geometries
  • Output:
    • an emission (.emi) file with timesteps[sec] in the header, volume element IDs on the left, NOx emission[\(\mu\)g/sec] in the table. An example is shown below with the timepoints in the header the first two rows (cellIDs are 504176 and 504175):
ID\t	300	600	900	1200	1500	1800	2100	2400	2700	3000	3300	3600	3900	4200	4500	4800	5100	5400	5700	6000	6300	6600	6900	7200	7500	7800	8100	8400	8700	9000	9300	9600	9900	10200	10500	10800	11100	11400	11700	12000	12300	12600	12900	13200	13500	13800	14100	14400	14700	15000	15300	15600	15900	16200	16500	16800	17100	17400	17700
504176	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	82.661	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	41.512	0.000	43.232	0.000	0.000	0.000	0.000	0.000	0.000	39.326	38.049	0.000	38.158	0.000	76.379	80.806	0.000	38.763	0.000	0.000	0.000	0.000	38.896	0.000	40.402	0.000	0.000	0.000	0.000	0.000	77.850	0.000	0.000	0.000	0.000
504175	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000	38.338	38.381	115.511	37.459	0.000	0.000	37.578	0.000	39.069	38.921	0.000	0.000	37.194	38.031	75.596	37.654	0.000	37.303	38.856	38.412	0.000	37.786	33.852	38.773	0.000	36.988	37.504	151.607	0.000	74.635	75.962	78.627	38.995	76.644	0.000	0.000	37.295	0.000	0.000	38.560	0.000	40.007	0.000	0.000	76.068	0.000	39.983
Dispersion module
  • Input:
    • CFD file in ANSYS Fluent .msh format, or converted to FEniCS .xml format, with different subdomains:
      • surfaces meshes: building walls, ground walls, inlet
      • volume meshes: air cells, tree cells corresponding to the green areas of the city
    • .emi file determining the time-dependent source terms
    • NetCDF files with windfield from meteorology data at given timepoints
    • .met file for the transformation between Latitude/Longitude system and the CFD mesh coordinate system
  • Output: the NOx concentration in the cells