Skip to content

Noise

The noise model is used to calculate the level of noise at different locations on the map. To do this many points on the map are defined as receptors, for each of these points the level of noise which is received at that point will be calculated. Other points are also defined on the map as sources, these points are where the noise originates from. For noise roads these points are line segments placed based on the road geometry. The amount of noise emitted per source is then calculated based on the intensity and speed of the road section.

Overview of the calculation

The model processes each receptor individually taking the following steps:

Direct Calculation

  1. Determine which road segments are within the maximum distance of the receptor
  2. Per receptor-segment pair split the segment into smaller subsegments
  3. Determine the emission, or energy emitted per road subsegment to the receptor
  4. Determine the reduction factors on the path between the receptor and subsegment
  5. Determine the energy received by the receptor (emission - reduction factors) per subsegment based on the emission and reduction
  6. Sum all energies received from all subsegments and convert into dB

Reflected Calculation

  1. Determine which road segments are within the maximum distance of the receptor
  2. Determine with screens are within the maximum distance of the receptor
  3. For each combination of segment-screen-receptor combination, split the segment into subsegments, and check if a reflecting path exists for that combination
  4. Determine the emission, or energy emitted per road subsegment to the receptor through the reflection on the screen
  5. Determine the reduction factors on the path between the receptor, screen and subsegment
  6. Determine the energy received by the receptor (emission - reduction factors) per subsegment based on the emission and reduction
  7. Sum all energies received from all subsegments and convert into dB
RoadNoiseFlow
Illustration of the direct and reflected energy paths in the noise model

Equations

Per receptor, the following equation is used to calculate the total \(L_{Aeq}\) (Equivalent noise level in dB):

\(L_{Aeq} = 10 \cdot lg \sum_{i=1}^8 \sum_{j=1}^J \sum_{n=1}^N \sum_{m=lv}^{zv} 10^{L_{eq,i,j,n,m}}\)

\(L_{eq,i,j,n,m} = L_{E_{i,m}} + \Delta L_{GU} - \Delta L_{L} - \Delta L_{B} - C_M - \Delta L_{SW} - \Delta L_{R} - 58.6\)

with \(i = \text{frequency band}\), \(j=\text{sector of calculation area}\), \(n=\text{sources in sector}\),\(m=\text{vehicle type}\)

\(L_E\) : Emission from traffic Calculated based on the average speed, intensity, and the road surface type

\(\Delta L_{GU}\) : Geometric Expansion term Reduction factor based on the distance and angle between source and receptor

\(\Delta L_{L}\) : Air attenuation The amount of energy absorbed by the air on the path of the energy

\(\Delta L_{B}\) : Ground attenuation The amount of energy absorbed by the ground along the path of the energy

\(C_M\) : Meteorological attenuation Term depending on the height of the road compared to the area around the road

\(\Delta L_{SW}\) : Screen attenuation The amount of energy absorbed by screens along the path of the energy. Buildings are also modeled as screens in the model

\(\Delta L_{R}\) : Reflection reduction Reduction of energy due to reflections

Details about the calculation of each of these terms can be found in Reken- en meetvoorschrift geluid 2012

The SRM2 method also include an \(L_{OP}\) factor, however this factor currently isn't taken into account in the Urban Strategy noise module, though it is possible to include this with the current code.

Path traversal

To allow for path traversal, the map is converted into a grid, with a size of 10m per grid cell. Per grid cell, the ground absorption factor is calculated based on the data defined in the stores BASCOV collection. A list of screens per grid cell is also constructed. During the path traversal, the path of the energy towards the receptor is traversed in increments, and after each increment, the relevant cell that the path is currently in can be retrieved. This is used to calculate the total ground absorption factor, and all of the screens within the grid are checked for an intersection to calculate the screen absorption factor.

GPU memory management

The Digital Twin platform uses GPUs to accelerate computations. On a GPU, a large bottleneck can be the transfer of data between the CPU memory and the GPU memory, especially when large amounts of data are being transferred. The amount of GPU memory is also limited, meaning that for larger calculations, the full dataset may not fit into the memory. This requires that some form of batching is used to split the problem up into smaller chunks. In the case of Noise Roads the paths can all be independently calculated, so this splitting of data is relatively simple. To determine the batch size, the maximum amount of data which will be stored at any point in the calculation is found, and based on that and the amount of memory available in the GPU the amount of elements that can be processed is determined.

Within the noise roads calculation in which the amount of data being processed significantly grows. An example is when the receptor source pairs are generated, since there are typically many receptors which are affected by a single source. Another is when the subsegments are generated, since each road segment will typically be split into several subsegments. This is illustrated in the diagram below. For each of these data expansion steps, the size of the total set is first calculated, and the maximum batch size is calculated based on how much data must be stored per element during the calculation. Once the batch size has been determined, the calculation continues.

RoadNoiseFlow
Illustration of how the data is split up during calculation

Since there are multiple points at which the amount of data expands, there are multiple "depths" within the calculation, for example the pairs are one level above the paths. As the depth increases, any GPU memory held by the depth above cannot be used, since it is already occupied. This is why the batch size is also bounded by the amount of memory that should be left free for the next depth. Currently this is hardcoded, though this could be easily turned into a parameter. Memory could also be reread between the iterations, allowing for the deeper levels to use more memory, however this seemed to result in a slow down, since the read/write speed is quite slow.

Output

The output of the model is in the following columns of the store:

Column Name Description
L_AEQ equivalent continuous sound level
I_D Noise level day
I_E Noise level evening
I_N Noise level night
I_LDEN Day-evening-night noise level
I_ETMAAL Etmaalwaarde (IndustryNoise only)

Parameters and settings

Road Noise

Name Data type Default value Description
PERC_ELE_HYBRID_LIGHT_VEHICLES INT 0.0 percentage electrical personal cars
PERC_ELE_HYBRID_MEDIUM_VEHICLES INT 0.0 percentage electrical light-duty vehicles
PERC_ELE_HYBRID_HEAVY_VEHICLE INT 0.0 percentage electrical heavy-duty vehicles
CORR_ELE_HYBRID_LIGHT_VEHICLES ON or OFF ON enable the emission correction on personal cars
CORR_ELE_HYBRID_MEDIUM_VEHICLES ON or OFF ON enable the emission correction on light-duty vehicles
CORR_ELE_HYBRID_HEAVY_VEHICLES ON or OFF ON enable the emission correction on heavy-duty vehicles
UPDATE_THRESHOLD FLOAT 0.0 Threshold at which values shoulod be updated in store
DEFAULT_GROUND_VALUE FLOAT 0.0 default value for ground absorption
MAX_CALC_DIST Double 1000.0f Maximum calculation distance
OPEN_ANGLE Double 5.0 Angle for calculations (degrees)
DIRECTPATH_ENABLED Bool True Boolean to turn on the direct energy calculation
REFLECTPATH_ENABLED Bool False Boolean to turn on the reflected energy calculation
POLYGON_TO_GRID_CELL_SIZE Int 10 Cell size used when converting a polygon to the calculation grid
MEM_PERCENTAGE Double 0.8 Percentage of memory available in the GPU at the start of the calculation that will be used by the module, value between 0 and 1

JSON format

[{"Name":"MAX_CALC_DIST","Value":600,"Type":1},{"Name":"UPDATETHRESHHOLD","Value":0.75,"Type":2},{"Name":"DEFAULTGROUNDVALUE","Value":0.0,"Type":2},{"Name":"VolumnFactor","Value":5,"Type":1},{"Name":"POLYGONTOGRIDCELLSIZE","Value":10,"Type":1},{"Name":"OPENANGLE","Value":5,"Type":1},{"Name":"Batch Size","Value":200000,"Type":1},{"Name":"DIRECTPATH_ENABLED","Value":true,"Type":3},{"Name":"REFLECTPATH_ENABLED","Value":false,"Type":3},{"Name":"PERC_ELE_HYBRID_LIGHT_VEHICLES","Value":0.0,"Type":2},{"Name":"PERC_ELE_HYBRID_MEDIUM_VEHICLES","Value":0.0,"Type":2},{"Name":"PERC_ELE_HYBRID_HEAVY_VEHICLES","Value":0.0,"Type":2},{"Name":"CORR_ELE_HYBRID_LIGHT_VEHICLES","Value":"OFF"},{"Name":"CORR_ELE_HYBRID_MEDIUM_VEHICLES","Value":"OFF"},{"Name":"CORR_ELE_HYBRID_HEAVY_VEHICLES","Value":"OFF"},{"Name":"use SCM method","Value":false,"Type":3},{"Name":"calc SWUNG","Value":false,"Type":3},{"Name":"USE_FIXED_ANGLE","Value":false,"Type":3},{"Name":"USE_TNO_AIR_ABSORPTION","Value":false,"Type":3},{"Name":"MAX_SPEED_ELE_VEHICLES","Value":60.0,"Type":2},{"Name":"PERC_ELE_HYBRID_BUS","Value":0.0,"Type":2},{"Name":"CORR_ELE_HYBRID_BUS","Value":1.0,"Type":2},{"Name":"full_calculation","Value":true,"Type":3},{"Name":"resume_number","Value":0,"Type":1},{"Name":"facade_reflection","Value":false,"Type":3},{"Name":"source_type","Value":"road"},{"Name":"No special Screen(T-top, MBS)","Value":true,"Type":3},{"Name":"calc L_aeq","Value":false,"Type":3},{"Name":"use_binary_file","Value":false,"Type":3},{"Name":"RAIL data source","Value":"ASWIN"},{"Name":"dimension_id","Value":1,"Type":1},{"Name":"ini_filename","Value":"USNoise.ini"},{"Name":"ignore_surfacetype_error","Value":false,"Type":3},{"Name":"USE_SPATIAL_QUERY","Value":false,"Type":3},{"Name":"# of application instances","Value":1,"Type":1}]

Industry Noise

Name Data type Default value Description
MAX_CALC_DIST Double 1000.0f Maximum calculation distance
OPEN_ANGLE Double 5.0 Angle for calculations (degrees)
DIRECTPATH_ENABLED Bool True Boolean to turn on the direct energy calculation
REFLECTPATH_ENABLED Bool False Boolean to turn on the reflected energy calculation
DEFAULT_GROUND_VALUE Double 0.0 Default value for the ground absorption
USE_TNO_AIR_ABSORPTION Bool False Use the TNO calculations for air absorption
POLYGON_TO_GRID_CELL_SIZE Int 10 Cell size used when converting a polygon to the calculation grid
MEM_PERCENTAGE Double 0.8 Percentage of memory available in the GPU at the start of the calculation that will be used by the module, value between 0 and 1

Sample JSON

[{
        "Name": "MAX_CALC_DIST",
        "Value": 1000,
        "Type": 2
    }, {
        "Name": "OPEN_ANGLE",
        "Value": 5,
        "Type": 2
    }, {
        "Name": "DIRECTPATH_ENABLED",
        "Value": true,
        "Type": 3
    }, {
        "Name": "REFLECTPATH_ENABLED",
        "Value": false,
        "Type": 3
    }, {
        "Name": "DEFAULT_GROUND_VALUE",
        "Value": 0,
        "Type": 1
    }, {
        "Name": "USE_TNO_AIR_ABSORPTION",
        "Value": false,
        "Type": 3
    }, {
        "Name": "POLYGON_TO_GRID_CELL_SIZE",
        "Value": 10,
        "Type": 1
    }, {
        "Name": "MEM_PERCENTAGE",
        "Value": 0.8,
        "Type":2
    }
]

Literature

For more information on the calculation methods for roads and noise, refer to this document: Reken- en meetvoorschrift geluid 2012