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 3DAirQualityPrediction-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 3DAirQualityPrediction-CFD or
- the wind field and dispersion of the pollutants is computed simultaneously. These options are governed by the configuration of the 3DAirQualityPrediction-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).
- Transformation between the 2D traffic geometry and the 3D CFD geometry using a GUI
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
- for each vehicle class (car, HGV, bus):
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
- CFD file in ANSYS Fluent .msh format, or converted to FEniCS .xml format, with different subdomains:
- Output: the NOx concentration in the cells