I’m experiencing abnormal drops in concentration near the +/-50m mark along the side of the road where the direction of the wind is blowing from. When running R-LINE on cases where the wind direction is close (<5 degrees) to perpendicular relative to the road axis. For example, a wind blowing westward for a north-south road.
Below I’ve attached the concentration contour plot generated from a sample run with input of a wind direction of 90 degrees (westward) at a speed of 0.86. The road is the shaded grey rectangle in the plot. For this run, I adapted numbers from the example cases that were provided in the R-LINE v1_2 download. I’ll also include screenshots of the input meteorological data.
Met data used:
I’ve tested this in the 270 degree direction as well with similar results.
Similar met data with 270 degree as wind direction!
I’ve also conducted a test with north-south winds on a east-west road, and found similar abnormalities.
I’ve also conducted tests for perpendicular wind cases using the Idaho Falls sample data provided on the CMAS website. No alternations were done to the data except for adding more receptors to construct the contour plot. I analyzed results for the hour with meteorological conditions as follows: wind speed (8.1) wind direction (272.4). The Idaho Falls contour plot shows a depression as well, although the depression is less severe. I also conducted a run with a wind speed of 4 at 90 degrees, and it appears that a lower wind speeds make the abnormality more apparent compared to higher speeds.
Please advise on a) an explanation of why this abnormality occurs and b) solutions to this issue. It’s important for me to analyze winds at these angles as I need my results to reflect many real life possibilities.
Analytical_Line_Source.f90 of RLINEv1_2
Lines #87-95 of RLINEv1_2
! —if theta is close to 90 (parallel), adjust coords to an angle corresponding to 90+/-thlim
theta = pi/2.0-(datan2(Ydif,Xdif)+sm_num)
thlim = 14.0pi/180.0
rad90 = 90.0pi/180.0
th_true = theta
theta = rad90+thlim*sign(a,theta-rad90)
theta_adj = theta-th_true
Lines #184 and #185 of RLINEv1_2
denom = szueffabs(cos(theta)) ! +sm_num
concp = sqrt(2.0/pi)*vert/denom ! Equation (1)
Lines #201 and #211 of RLINEv1_2
if (xrU>0.0) then
call Effective_wind(xrU,Zs)
sy = sigmay(xrU)
tU = yrU/(sqrt(2.0)*sy) ! Equation (9)
erftU = erf(tU)
else
erftU = sgn
endif
corr=abs((erftL-erftU)/2.0) ! Equation (10)
Line_Source_Input.txt
(1) Use analytical solution (‘Y’/‘N’), speeds up run time, but less accurate
‘N’
“If you are having this problem means you are using the analytical solution instead of numerical solution”
Example 1: Wind direction 90
The first figure shows a typical concentration field around a north - south road (gray rectangle) when the wind blows from the east to the west – that is a 90 degree wind direction, so the wind is perpendicular to the road.
In this case, the R-LINE model can produce unexpected concentration patterns. This happens because the model includes a calculation that divides by the cosine of the angle between the wind and the road (Equation 1 given above). At 90° or 270°, the cosine becomes zero, which breaks the model. To avoid this, the R-LINE code automatically adjusts the wind angle slightly - by up to ±14 degrees - to keep the cosine from being zero. But this adjustment can still lead to very high concentrations near the centerline of the road and sharp drops just off to the sides (like around ±50 meters). This effect will be more noticeable when the wind speed is low.
However, from the figure, if we move ~50 meters to the left or right of the road (crosswind), we see an unexpected drop in concentration. This is happening because
- Lateral spread sigma_y is relatively small here, especially at low wind speeds,
- The error function correction (line#211 of Analytical_Line_Source.f90 of RLINEv1_2) for finite length reduces concentrations too quickly here
So, the dip at ±50 m is not physical, but a numerical artifact caused by how the model treats both things:
- Treats perpendicular winds (using small but non-zero cosines),
- Applies lateral dispersion corrections that are sensitive to exact receptor placement.
For a temporary solution, one option is to use Analytical_Line_Parallel code for all calculations, which will avoid the cosine issue altogether. This can give more realistic results in those cases. In addition to this, you may also run using the Numerical _Line_Source calculation option that may reduce this effect.
For more information, please read the following article
Venkatram, A., Horst, T.W., 2006. Approximating dispersion from a finite line source. Atmos. Environ. 40, 2401–2408. Redirecting.