Emisión de la fuente de tráfico viario CNOSSOS-EU
Normas aplicables: OJ L 5EUR 25379 ENISO 9613
Todo mapa estratégico de ruido trazado en la Unión Europea desde 2021 parte de los mismos dos números: cuánto ruido hace un vehículo en cada banda de octava y cuántos pasan por hora. El Anexo II de la Directiva 2002/49/CE, sustituido por los métodos CNOSSOS-EU, los convierte en una potencia acústica direccional por metro de línea fuente, que la etapa de propagación lleva luego hasta el receptor.
Esta guía cubre la fuente viaria, el apartado 2.2 del Anexo II con la base de coeficientes del Apéndice F. La fuente ferroviaria (2.3, Apéndice G) y el modelo de propagación CNOSSOS-EU (2.5) van aparte.
1. Qué texto está implementado
Sección titulada «1. Qué texto está implementado»El Anexo II es un blanco móvil y equivocarse en la superposición de instrumentos es la forma más fácil de publicar una tabla incorrecta. Hay tres en juego:
| Instrumento | Qué le hace a la fuente viaria |
|---|---|
| Directiva (UE) 2015/996 de la Comisión | Sustituye el Anexo II completo. Aporta las fórmulas 2.2.1 a 2.2.20 y las Tablas F-1 a F-4. |
| Corrección de errores del DO L 5, 10.1.2018 | Corrige el 2.2.1: las potencias acústicas se calculan “para cada banda de octava de 63 Hz a 8 kHz”, no de 125 Hz a 4 kHz como imprimía el texto original. El Apéndice F siempre cubrió de 63 Hz a 8 kHz, así que el texto sin corregir contradecía sus propias tablas. |
| Directiva Delegada (UE) 2021/1226 de la Comisión | Sustituye por completo la Tabla F-1 y la Tabla F-4, funde en una sola las antiguas filas 4a y 4b de la Tabla F-4 e imprime la ponderación A por bandas de octava que se usa en 2.5.5. |
La biblioteca implementa el resultado consolidado. Las Tablas F-2 (neumáticos con clavos) y F-3 (cruces) nunca se han modificado. La modificación de 2021 no es cosmética: la fuente viaria vigente es unos 2,5 a 3,5 dB(A) más ruidosa que la publicada en 2015, así que toda comparación con bibliografía anterior a 2021 arrastra ese desfase.
2. La fuente y la línea fuente
Sección titulada «2. La fuente y la línea fuente»Cada vehículo es una fuente puntual a 0,05 m sobre el pavimento, que radia uniformemente; la primera reflexión en la calzada ya está dentro de la potencia acústica, y por eso el método la llama magnitud de semicampo libre. Un flujo de tráfico es una línea fuente incoherente, idealmente una por carril en el eje del carril.
Para cada categoría de vehículo y banda de octava , la fórmula (2.2.1) convierte la potencia acústica de un vehículo en potencia por metro de línea:
con en vehículos por hora y en km/h. La potencia del vehículo es a su vez la suma energética de un término de rodadura y otro de propulsión (2.2.2), salvo para los vehículos de dos ruedas de la categoría 4, que no tienen rodadura alguna y se quedan solo con la propulsión (2.2.3):
La Tabla [2.2.a] define cinco categorías de vehículo: 1 vehículos ligeros, 2 vehículos pesados medios, 3 vehículos pesados, 4 vehículos de dos ruedas a motor y 5 la categoría «abierta», reservada para tipos de vehículo todavía sin definir. La categoría 4 se divide en las subclases 4a ciclomotores y 4b motocicletas, que circulan en modos de conducción muy distintos, de modo que la base de coeficientes lleva cinco filas: 1, 2, 3, 4a y 4b. Las cuatro primeras categorías son obligatorias y la 5 es opcional; no tiene coeficientes en el Apéndice F y aquí no se modeliza.
Los vehículos ligeros llevan el grueso del flujo, pero 45 pesados por hora se imponen igualmente en las frecuencias medias: el espectro por metro enseña exactamente dónde manda cada categoría.
Ver el código de esta figura
import matplotlib.pyplot as pltfrom phonometry import ( JunctionType, RoadSurface, RoadTraffic, RoadVehicleCategory, road_source_power,)
traffic = [ RoadTraffic(RoadVehicleCategory.LIGHT, 1200.0, 50.0), RoadTraffic(RoadVehicleCategory.MEDIUM_HEAVY, 90.0, 50.0), RoadTraffic(RoadVehicleCategory.HEAVY, 45.0, 50.0), RoadTraffic(RoadVehicleCategory.MOTORCYCLES, 60.0, 50.0),]result = road_source_power( traffic, surface=RoadSurface.THIN_LAYER_A, temperature=12.0, gradient=3.0, junction_distance=60.0, junction_type=JunctionType.CROSSING,)print(result.total_line_power.round(1))# [89.1 82.7 81.3 80.2 80.4 76.2 71.7 66. ] dB re 1 pW por metro de líneaprint(round(float(result.a_weighted_line_power), 1)) # 84.2 dB(A) por metroresult.plot()plt.show()Cuánto vale una fuente viaria. Esta arteria urbana, 1 200 vehículos ligeros,
90 pesados medios, 45 pesados y 60 motocicletas por hora a 50 km/h, sale a
84,2 dB(A) por metro de línea; el enlace de autopista en circulación libre de
la sección 6 (1 000 ligeros y 120 pesados por hora a 90 y 80 km/h) llega a
88,6 dB(A) por metro. Esas son las dos magnitudes contra las que contrastar
un resultado propio. La aritmética que hay detrás merece retenerse: duplicar el
flujo suma exactamente 3 dB, mientras que reducir a la mitad la velocidad suma
3 dB al término de flujo y resta del término de rodadura,
de modo que ambos se cancelan en parte y un enlace urbano queda solo unos pocos
decibelios por debajo de uno de autopista. El espectro dice qué mecanismo manda:
la autopista tiene su máximo en 1 kHz porque lleva la rodadura, y la arteria tiene
su máximo en 63 Hz y se mantiene más plana, porque a 50 km/h con vehículos pesados
y un cruce a 60 m ha tomado el mando el término de propulsión. La comprobación
que puede hacer cualquier lector sobre las dos: a_weighted_line_power tiene que
coincidir con la suma energética ponderada A de los valores por banda impresos,
usando la CNOSSOS_A_WEIGHTING por bandas de octava de la sección 6.
De dónde sale cada dato de entrada
Sección titulada «De dónde sale cada dato de entrada»Todos los argumentos de road_source_power son magnitudes definidas en el
Anexo II, y equivocarse en uno es un error silencioso: la llamada funciona y el
mapa queda desviado varios decibelios. De aquí se lee cada uno.
| Argumento | Qué significa | De dónde se lee | La trampa |
|---|---|---|---|
RoadTraffic.flow_rate () | Vehículos de la categoría por hora | Promedio anual por hora, por periodo temporal (día / tarde / noche), por clase de vehículo y por línea fuente, a partir de aforos o de un modelo de tráfico (2.2.1) | Un aforo de hora punta. es un promedio anual del periodo, que es lo que convierte el resultado en un ingrediente del |
RoadTraffic.speed () | Velocidad representativa de la categoría | En la mayoría de los casos, la menor entre el máximo legal del tramo de vía y el máximo legal de la categoría de vehículo; donde no haya datos de medida locales, el máximo legal de la categoría (2.2.1) | Suponer que hace falta una media medida. No hace falta: el valor por defecto de la norma es el límite legal, y los vehículos pesados suelen tener uno más bajo que el del tramo |
temperature () | Temperatura del aire | La temperatura del aire promedio anual del periodo, a partir de datos meteorológicos de largo plazo (2.2.10) | El valor del día de la campaña. Con dB/°C, una media anual de 12 °C frente a una tarde de 20 °C son 0,6 dB en el término de rodadura de los ligeros |
RoadTraffic.studded_fraction, studded_months (, ) | Cuota de flota y temporada | La proporción media de vehículos ligeros por hora con neumáticos con clavos durante los meses en que los llevan, y el número de esos meses; el propio método forma (2.2.7) | Pasar la cuota promediada al año, que aplica dos veces |
junction_distance () | Distancia al cruce | Medida a lo largo de la vía desde la fuente puntual hasta la intersección más próxima de esta línea fuente con otra línea fuente (2.2.5) | Medir hasta la línea de detención o hasta el bordillo. Es el cruce de líneas, y solo afectan los últimos 100 m |
junction_type () | 1 cruce con semáforo, 2 glorieta | La regulación del cruce, no su forma | Un cruce con prioridad no es ninguno de los dos: la corrección está definida para semáforos y glorietas |
gradient () | Pendiente longitudinal con signo, % | El modelo del terreno a lo largo de la línea fuente, saturando en ±12 % | Aplicar un solo signo a un flujo bidireccional. La norma exige partir el flujo por la mitad y corregir una mitad en subida y la otra en bajada |
surface | Tipo de pavimento | El inventario de firmes, emparejado con una fila de la Tabla F-4 y su rango de velocidad declarado | Usar una fila fuera de su rango de validez |
| geometría | Línea fuente y receptor | Una línea por carril en el centro del carril (también se admite una línea por calzada, o una para una vía de doble sentido), con la fuente puntual a 0,05 m sobre el pavimento; los puntos receptores de la Directiva están a 4 m del suelo | Situar la fuente en el bordillo, o a la altura de la carrocería |
Dos consecuencias que conviene enunciar sin rodeos. La primera, que la temperatura tiene que pertenecer al mismo periodo que y : un flujo de noche emparejado con una media anual de temperatura y una velocidad de noche es lo que convierte la potencia de línea resultante en un ingrediente del y no en una instantánea de una tarde. La segunda, que la línea fuente es un objeto de modelado y no una marca vial: moverla del centro del carril al bordillo cambia todas las distancias de propagación aguas abajo.
3. Ruido de rodadura (2.2.4 a 2.2.10)
Sección titulada «3. Ruido de rodadura (2.2.4 a 2.2.10)»El ruido de rodadura es el ruido neumático-calzada. Crece logarítmicamente con la velocidad a partir de la velocidad de referencia :
donde la corrección reúne cuatro efectos independientes (2.2.5): el pavimento, los neumáticos con clavos, el cruce y la temperatura del aire.
La temperatura del aire (2.2.10) es una recta, aplicada por igual a las ocho bandas: , con para los ligeros y para las dos categorías pesadas. El aire frío endurece los neumáticos y hace más ruidosa la calzada, así que la corrección es positiva por debajo de 20 °C.
Los neumáticos con clavos (2.2.6 a 2.2.9) solo se aplican a la categoría 1. El exceso por neumático se satura por debajo de 50 km/h y por encima de 90 km/h, y la corrección de parque lo pondera por la fracción del año en que los clavos están en circulación, :
Los cruces (2.2.17, 2.2.18) suman el mismo decaimiento lineal a los dos términos: para el ruido de rodadura y para el de propulsión, con la distancia en metros de la fuente puntual a la intersección más próxima de su línea fuente con otra línea fuente, y el tipo de cruce: 1 para un cruce regulado por semáforo y 2 para una glorieta. Los dos se atribuyen por igual a todas las bandas de octava. Los coeficientes de rodadura son negativos (el tráfico junto a un cruce va más despacio) y los de propulsión positivos (va acelerando), y la norma declara explícitamente que los dos son nulos a partir de m.
Las tres correcciones de esta sección, cada una dibujada como lo que de verdad le hace a la potencia de línea. El término de temperatura es el único exactamente lineal y el único que cambia de signo; el de clavos es una banda saturante entre 50 y 90 km/h; y el de cruce no es monótono, porque el coeficiente negativo de rodadura y el positivo de propulsión decaen a la vez: en un cruce con semáforo la reducción más profunda está en torno a 50 m, no en el propio cruce.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as np
# `road_source_power`, `RoadTraffic`, `RoadVehicleCategory` y `JunctionType`# los importa el fragmento de la figura de arriba.def a_line(**kwargs): return float(road_source_power(**kwargs).a_weighted_line_power)
ligeros = [RoadTraffic(RoadVehicleCategory.LIGHT, 1000.0, 50.0)]pesados = [RoadTraffic(RoadVehicleCategory.HEAVY, 1000.0, 50.0)]temps = np.linspace(-10.0, 40.0, 60)fig, (t_ax, s_ax, j_ax) = plt.subplots(1, 3, figsize=(13, 4.2))for flujo, name in [(ligeros, "Ligeros (1)"), (pesados, "Pesados (3)")]: ref = a_line(traffic=flujo) t_ax.plot(temps, [a_line(traffic=flujo, temperature=t) - ref for t in temps], label=name)t_ax.set(xlabel="Temperatura del aire tau [°C]", ylabel="Cambio en la potencia de línea [dB(A)]")t_ax.legend()
velocidades = np.linspace(20.0, 130.0, 60)for share in (0.2, 0.5): s_ax.plot(velocidades, [ a_line(traffic=[RoadTraffic(RoadVehicleCategory.LIGHT, 1000.0, v, studded_fraction=share)], studded_months=4.0) - a_line(traffic=[RoadTraffic(RoadVehicleCategory.LIGHT, 1000.0, v)]) for v in velocidades], label=f"Qstud,ratio = {share:g}, Ts = 4 meses")s_ax.set(xlabel="Velocidad v [km/h]", ylabel="Cambio en la potencia de línea [dB(A)]")s_ax.legend(fontsize="small")
xs = np.linspace(0.0, 120.0, 60)ref = a_line(traffic=ligeros)for junction, name in [(JunctionType.CROSSING, "Cruce con semáforo"), (JunctionType.ROUNDABOUT, "Glorieta")]: j_ax.plot(xs, [a_line(traffic=ligeros, junction_distance=float(x), junction_type=junction) - ref for x in xs], label=name)j_ax.set(xlabel="Distancia al cruce |x| [m]", ylabel="Cambio en la potencia de línea [dB(A)]")j_ax.legend(fontsize="small")plt.show()4. Ruido de propulsión (2.2.11 a 2.2.16)
Sección titulada «4. Ruido de propulsión (2.2.11 a 2.2.16)»El ruido de propulsión es el del grupo motopropulsor: motor, escape, transmisión y admisión. Es lineal con la velocidad, no logarítmico, porque a baja velocidad el motor trabaja más por unidad de distancia recorrida:
Dónde se cruzan las dos leyes de velocidad es lo que da a la fuente viaria su comportamiento: por debajo del cruce la fuente es un motor, por encima es un neumático.
Un vehículo ligero está dominado por el neumático desde unos 25 km/h; uno pesado solo a partir de unos 60 km/h, y por eso un camión sigue siendo un motor a velocidades urbanas.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import ( CNOSSOS_A_WEIGHTING, road_propulsion_noise, road_rolling_noise, road_vehicle_sound_power,)
weights = np.asarray(CNOSSOS_A_WEIGHTING)a_weighted = lambda bands: 10.0 * np.log10(np.sum(10.0 ** ((bands + weights) / 10.0)))
speeds = np.linspace(20.0, 130.0, 221)fig, ax = plt.subplots()for category, name in [("1", "Vehículos ligeros (1)"), ("3", "Vehículos pesados (3)")]: rolling = [a_weighted(road_rolling_noise(category, v)) for v in speeds] propulsion = [a_weighted(road_propulsion_noise(category, v)) for v in speeds] total = [a_weighted(road_vehicle_sound_power(category, v)) for v in speeds] ax.plot(speeds, total, lw=2.4, label=f"{name} - total") ax.plot(speeds, rolling, ls="--", lw=1.2, label=f"{name} - rodadura") ax.plot(speeds, propulsion, ls=":", lw=1.2, label=f"{name} - propulsión")ax.set_xlabel("Velocidad v [km/h]")ax.set_ylabel("Potencia acústica ponderada A [dB(A) re 1 pW]")ax.legend(fontsize="small")plt.show()La pendiente de la vía (2.2.13 a 2.2.16) es la única corrección cuya forma publicada es genuinamente asimétrica, y la asimetría no es un desliz de transcripción. Para los ligeros la rama de bajada no lleva factor de velocidad, mientras que las dos categorías pesadas sí lo llevan y con desplazamientos de velocidad distintos:
| Categoría | Bajada ( por debajo del codo) | Banda plana | Subida |
|---|---|---|---|
| 1 | −6 % a 2 % | ||
| 2 | −4 % a 0 % | ||
| 3 | −4 % a 0 % |
La categoría 4 no lleva corrección por pendiente. La pendiente se satura en el 12 % en ambos sentidos. El ruido de bajada viene del freno motor y el de subida de la carga, así que las dos ramas son positivas. Para un flujo bidireccional, divide el flujo en dos y corrige una mitad en subida y la otra en bajada.
La asimetría es una forma, no una errata. Cada categoría tiene su propia banda plana (de −6 % a +2 % para los ligeros, de −4 % a 0 % para las dos clases de pesados), cada una satura en ±12 %, y las dos ramas suben: en bajada el motor frena y en subida trabaja. A 80 km/h un descenso del 14 % vale 6,0 dB(A) a un vehículo ligero y 11,2 dB(A) a uno pesado, mientras que la misma subida vale 5,3 y 12,0 dB(A), y la rama de bajada de los ligeros es la única de las seis que no escala con la velocidad.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as np
# `road_propulsion_noise` y `CNOSSOS_A_WEIGHTING` los importa el fragmento de la# figura de las leyes de velocidad de más arriba.weights = np.asarray(CNOSSOS_A_WEIGHTING)a_weighted = lambda bands: 10.0 * np.log10(np.sum(10.0 ** ((bands + weights) / 10.0)))
pendientes = np.linspace(-14.0, 14.0, 141)fig, ax = plt.subplots()for category in ("1", "2", "3"): for speed, style in [(50.0, "--"), (80.0, "-")]: plano = a_weighted(road_propulsion_noise(category, speed)) ax.plot(pendientes, [a_weighted(road_propulsion_noise(category, speed, gradient=s)) - plano for s in pendientes], style, label=f"Categoría {category}, {speed:g} km/h")ax.set_xlabel("Pendiente de la vía s [%]")ax.set_ylabel("Corrección del ruido de propulsión [dB(A)]")ax.legend(fontsize="small")plt.show()Por debajo de 20 km/h el vehículo deja de hacerse más silencioso. El apartado
2.2.1 declara, después tanto de la (2.2.2) como de la (2.2.3), que para
velocidades inferiores a 20 km/h la potencia acústica toma su valor de 20 km/h:
las regresiones tabuladas se ajustaron sobre tráfico en circulación libre y no se
extrapolan a una cola. El término de flujo conserva la velocidad real, así que
las dos mitades de la (2.2.1) tiran en sentidos opuestos y la potencia de línea
tiene un mínimo. Para 1 000 vehículos ligeros por hora sobre el pavimento de
referencia, road_source_power devuelve 81,5 dB(A) por metro a 50 km/h, 76,2 a
20 km/h, 79,2 a 10 km/h y 82,2 a 5 km/h: la misma vía se vuelve más ruidosa
por metro a medida que la corriente se frena por debajo de ese mínimo,
simplemente porque hay más vehículos en cada metro de ella. Un lector que no
conozca ese mínimo no puede distinguir eso de un efecto de congestión
modelizado.
Conviene decir, por tanto, qué no representa el modelo: los ciclos de aceleración y frenado, el ralentí en una cola y el ruido de propulsión de la conducción de parada y arranque, para lo que la corrección por cruce sobre los últimos 100 m es un sustituto deliberadamente grosero. Los tramos congestionados se modelizan normalmente a su velocidad media de recorrido con esa corrección aplicada.
5. El pavimento (2.2.19, 2.2.20 y Tabla F-4)
Sección titulada «5. El pavimento (2.2.19, 2.2.20 y Tabla F-4)»La Tabla F-4 da, para el pavimento de referencia y para cada uno de los catorce pavimentos con nombre, un coeficiente por banda de octava y un coeficiente de velocidad , por categoría de vehículo, con el rango de velocidad en que la fila se declara válida. El pavimento entra de forma distinta en cada término:
Un pavimento absorbente reduce el ruido de propulsión; uno ruidoso no lo aumenta. Esa asimetría es deliberada: la calzada puede absorber el sonido del motor que se radia hacia ella, pero una textura rugosa solo genera ruido de neumático, y el ruido de neumático ya es el término de rodadura.
from phonometry import RoadSurface, road_surface_coefficients
row = road_surface_coefficients(RoadSurface.TWO_LAYER_ZOAB_FINE)row.speed_range # (80.0, 130.0) km/h, el rango de validez impresorow.alpha["1"] # alpha por banda de octava para vehículos ligerosrow.beta["1"] # -0.1, el coeficiente de velocidadEl pavimento de referencia es la línea cero, así que cada curva se lee directamente como «más ruidoso o más silencioso que la referencia de CNOSSOS»: la mezcla bituminosa porosa de doble capa queda 6,3 dB por debajo a 1 kHz, y los elementos rígidos no colocados en espina de pez quedan 31,4 dB por encima a 63 Hz. El rango de velocidad declarado que aparece en la leyenda forma parte de la fila: una mezcla porosa validada de 80 a 130 km/h no es un juego de coeficientes para una calle de 30 km/h, la fila de referencia es la única sin rango, y el método no ofrece interpolación entre filas.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as np
# `RoadSurface` y `road_surface_coefficients` se importan justo arriba.bands = np.array([63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0])fig, ax = plt.subplots()for surface in (RoadSurface.REFERENCE, RoadSurface.TWO_LAYER_ZOAB_FINE, RoadSurface.ONE_LAYER_ZOAB, RoadSurface.THIN_LAYER_A, RoadSurface.SMA_NL8, RoadSurface.HARD_ELEMENTS_NOT_HERRINGBONE): row = road_surface_coefficients(surface) # La fila de referencia no lleva rango de velocidad: es válida por definición. span = ("todas las velocidades" if row.speed_range is None else "{:g}-{:g} km/h".format(*row.speed_range)) ax.semilogx(bands, row.alpha["1"], label=f"{surface.value} ({span})")ax.axhline(0.0, color="k", lw=0.8)ax.set_xlabel("Frecuencia central de banda de octava [Hz]")ax.set_ylabel("Coeficiente de pavimento alpha, categoría 1 [dB]")ax.legend(fontsize="small")plt.show()El pavimento de referencia de la primera fila es todo ceros: es el promedio virtual de una mezcla bituminosa densa 0/11 y una mezcla bituminosa discontinua tipo SMA 0/11, de entre dos y siete años, en estado de mantenimiento representativo, seca, sin neumáticos con clavos, a 20 °C y en llano. Exactamente en esas condiciones toda corrección del 2.2 se anula de forma idéntica, así que a la velocidad de referencia , donde también se anulan los dos términos de velocidad, las potencias acústicas son los coeficientes y de la Tabla F-1.
6. Entregar la fuente a un modelo de propagación
Sección titulada «6. Entregar la fuente a un modelo de propagación»La etapa de emisión produce una potencia por metro. Trocear esa línea en fuentes puntuales equivalentes queda, en palabras del apartado 2.5.3, «fuera del alcance de la presente metodología»: una fuente puntual que representa un tramo de longitud lleva simplemente , que es aritmética y se ofrece como tal.
import numpy as npfrom phonometry import ( PropagationGeometry, RoadTraffic, RoadVehicleCategory, line_source_segment_power, predicted_receiver_level, road_source_power,)
result = road_source_power([ RoadTraffic(RoadVehicleCategory.LIGHT, 1000.0, 90.0), RoadTraffic(RoadVehicleCategory.HEAVY, 120.0, 80.0),])segment = line_source_segment_power(result.total_line_power, 20.0) # tramo de 20 m
# Un tramo, el que queda justo enfrente de un receptor a 100 m de la carretera.levels = predicted_receiver_level( segment, PropagationGeometry(100.0, result.source_height, 4.0), frequencies=result.frequencies,)
# La carretera es la suma energética de sus tramos: 1 km a cada lado, en pasos de 20 m.energy = np.zeros_like(levels)for x in np.arange(-990.0, 1000.0, 20.0): # centros de tramo a lo largo de la vía energy += 10 ** (predicted_receiver_level( segment, PropagationGeometry(float(np.hypot(100.0, x)), result.source_height, 4.0), frequencies=result.frequencies, ) / 10)road = 10 * np.log10(energy)Dos reglas hacen defendible un troceado, y ninguna de las dos es método: el 2.5.3 declara el reparto fuera de alcance, así que esto es práctica de ingeniería. Cada tramo tiene que ser bastante corto como para que la fuente puntual de su centro represente al tramo entero: la ISO 9613-2 solo admite una fuente puntual equivalente cuando la distancia de propagación supera el doble de la mayor dimensión de la fuente, de modo que un tramo visto desde 100 m puede medir decenas de metros y uno visto desde 10 m no. Y la carretera tiene que modelarse lo bastante lejos en ambos sentidos como para que las colas dejen de importar: más allá de unas diez veces la distancia perpendicular, añadir tramos cambia el total en menos de una décima de decibelio, y por eso 1 km a cada lado basta a 100 m aquí. Los dos espectros se leen en dB(A) dos párrafos más abajo: 52,9 dB(A) para el tramo aislado frente a 64,7 dB(A) para la carretera, una diferencia de 11,8 dB que es enteramente la aritmética de arriba.
Conviene ver qué es esto y qué no. CNOSSOS-EU tiene su propio método de propagación en el apartado 2.5 del Anexo II, y no es la ISO 9613-2: difieren en el modelo de suelo, en el tratamiento de la difracción y en la forma de combinar las condiciones favorables y las homogéneas. Encadenar una emisión CNOSSOS con la propagación ISO 9613-2 de esta biblioteca es una estimación de ingeniería legítima, pero no es la cadena normativa CNOSSOS y no debe declararse como tal.
Para el total ponderado A, usa la ponderación por bandas de octava que la propia Directiva imprime en el 2.5.5 modificado, en lugar de recalcularla:
from phonometry import CNOSSOS_A_WEIGHTING
CNOSSOS_A_WEIGHTING # (-26.2, -16.1, -8.6, -3.2, 0.0, 1.2, 1.0, -1.1)result.a_weighted_line_power
# Los dos espectros en el receptor del troceado de arriba, ponderados A:weight = np.asarray(CNOSSOS_A_WEIGHTING)print(round(float(10 * np.log10(np.sum(10 ** ((levels + weight) / 10)))), 1))# 52.9 dB(A) - un tramo de 20 m, no la carreteraprint(round(float(10 * np.log10(np.sum(10 ** ((road + weight) / 10)))), 1))# 64.7 dB(A) - la misma carretera, sumada sobre 2 km: 11.8 dB más7. Sustituir por una base de datos nacional
Sección titulada «7. Sustituir por una base de datos nacional»El Apéndice F se llama base de datos, y no tabla de constantes, porque los Estados miembros pueden sustituir sus valores por otros medidos a escala nacional, y porque las mismas ecuaciones ya se han evaluado con dos juegos de coeficientes distintos (el de 2015 y el de 2021). Los dos objetos de coeficientes se pueden reemplazar:
import dataclasses
from phonometry import ROAD_COEFFICIENTS
# Una fila nacional medida para vehículos ligeros y el resto del Apéndice F tal cual.national = dataclasses.replace( ROAD_COEFFICIENTS, rolling_a={ **ROAD_COEFFICIENTS.rolling_a, "1": (83.4, 89.0, 88.1, 93.6, 100.4, 96.9, 87.0, 76.5), },)Una base sustituida tiene que cubrir todas las categorías del tráfico con el que
se use: pedir una categoría que no lleva lanza ValueError en lugar de fallar
más adelante.
Ese mecanismo es además lo que ancla la implementación: la Comisión Europea publicó un juego de prueba de 4 875 casos de emisión viaria calculados con los coeficientes de 2015, y alimentar las ecuaciones implementadas con esa base superada (no con las tablas de 2021 que la biblioteca trae por defecto) reproduce todos los niveles publicados por banda con 0,005 dB, dentro de los dos decimales que imprime el juego de prueba.
Qué cubre esta guía
Sección titulada «Qué cubre esta guía»Cubierto
El apartado 2.2 del Anexo II de la Directiva 2002/49/CE en el texto consolidado: la potencia de línea del flujo de tráfico (2.2.1), la potencia del vehículo (2.2.2, 2.2.3), el ruido de rodadura con sus correcciones por neumáticos con clavos y temperatura (2.2.4 a 2.2.10), el ruido de propulsión con la corrección por pendiente (2.2.11 a 2.2.16), la corrección por cruce (2.2.17, 2.2.18) y el efecto del pavimento (2.2.19, 2.2.20), junto con toda la base de datos del Apéndice F, a través de
road_source_power,road_vehicle_sound_power,road_rolling_noise,road_propulsion_noiseyroad_surface_coefficients.No cubierto
La fuente ferroviaria (2.3 y Apéndice G), la fuente industrial (2.4 y Apéndice H), la fuente aeronáutica (2.6 y 2.7) y el método de propagación CNOSSOS-EU del apartado 2.5, que es un modelo distinto del de la ISO 9613-2 implementado en esta biblioteca. La categoría de vehículo abierta 5 no tiene coeficientes en el Apéndice F y por eso no se modeliza. Cómo se trocea una línea fuente en fuentes puntuales lo declara fuera de alcance el propio método.
Véase también
Sección titulada «Véase también»- Referencia de la API:
environment.sources.cnossos_road. - Propagación del sonido en exteriores: la cadena ISO 9613-2 que lleva una potencia de fuente hasta un receptor.
- Niveles de ruido ambiental: los indicadores y para los que se trazan los mapas resultantes.
Referencias
Sección titulada «Referencias»- European Union. (2015). Commission Directive (EU) 2015/996 establishing common noise assessment methods according to Directive 2002/49/EC of the European Parliament and of the Council (Directive (EU) 2015/996). Sustituye por completo el Anexo II de la Directiva 2002/49/CE por los métodos CNOSSOS-EU. La fuente viaria implementada es el apartado 2.2 (fórmulas 2.2.1 a 2.2.20) con la base de coeficientes del Apéndice F.
- European Union. (2018). Corrigendum to Commission Directive (EU) 2015/996 (OJ L 5, 10.1.2018, p. 35). Corrige el rango de bandas de octava de la fuente viaria a 63 Hz - 8 kHz, sustituye íntegramente el Apéndice G y corrige a metros por segundo la conversión de rugosidad ferroviaria.
- European Union. (2021). Commission Delegated Directive (EU) 2021/1226 amending, for the purposes of adapting to scientific and technical progress, Annex II to Directive 2002/49/EC as regards common assessment methods for noise (Directive (EU) 2021/1226). La modificación en vigor desde el 31 de diciembre de 2021. Sustituye por completo las Tablas F-1 y F-4 e imprime la ponderación A por bandas de octava con la que se suma el espectro de la fuente.
- International Organization for Standardization. (1996). Acoustics — Attenuation of sound during propagation outdoors — Part 2: General method of calculation (ISO 9613-2:1996). El modelo de propagación que aquí lleva la emisión hasta un receptor. CNOSSOS-EU tiene su propio método de propagación en el apartado 2.5 del Anexo II, que no es la ISO 9613-2.
- Kephalopoulos, S., Paviotti, M. y Anfosso-Lédée, F. (2012). Common noise assessment methods in Europe (CNOSSOS-EU) (EUR 25379 EN). Publications Office of the European Union. https://doi.org/10.2788/31776El informe de referencia del Centro Común de Investigación del que desciende el texto de la Directiva, con las campañas de medida que hay detrás de los coeficientes del Apéndice F.