<!-- canonical: https://jmrplens.github.io/phonometry/es/guides/ground-barriers/ -->
Source: https://jmrplens.github.io/phonometry/es/guides/ground-barriers/

El [método general ISO 9613-2](/phonometry/es/guides/outdoor-propagation/)
pliega los términos de suelo y barrera en correcciones tabuladas basadas en
energía. Esta página cubre la acústica ondulatoria subyacente en
`phonometry.environmental.ground_barriers`: el **coeficiente de reflexión de
onda esférica** de un suelo de impedancia finita (Weyl-Van der Pol) y la
**difracción por teoría ondulatoria** de una pantalla, ambos en una atmósfera
homogénea (sin refracción ni turbulencia). Son el núcleo físico de los modelos
de suelo y barrera de Nord2000 y CNOSSOS, y resuelven la estructura de
interferencia dependiente de la frecuencia que los términos `Agr`/`Dz` por
banda de octava suavizan.

## 1. Efecto suelo de onda esférica (Weyl-Van der Pol)

El campo sonoro de una fuente puntual sobre un suelo de reacción local es la
suma de una onda directa y una onda reflejada ponderada por el **coeficiente de
reflexión de onda esférica** `Q` (Attenborough Ec. 2.40a; Salomons Ec. 3.2):

$$
p = \frac{e^{ikR_1}}{4\pi R_1} + Q\,\frac{e^{ikR_2}}{4\pi R_2},
$$

con `R1` la distancia fuente-receptor y `R2` la distancia de la fuente imagen.
El coeficiente (Attenborough Ec. 2.40c; Salomons Ec. D.58) corrige el
coeficiente de onda plana `Rp` por la curvatura del frente de onda:

$$
Q = R_p + (1 - R_p)\,F(w), \qquad
R_p = \frac{Z\cos\theta - 1}{Z\cos\theta + 1},
$$

$$
F(w) = 1 + i\sqrt{\pi}\,w\,e^{-w^2}\operatorname{erfc}(-iw), \qquad
w = \sqrt{\tfrac{i k R_2}{2}}\left(\cos\theta + \tfrac{1}{Z}\right).
$$

Aquí `Z` es la impedancia superficial del suelo normalizada por `ρc`, `θ` es el
ángulo de incidencia desde la normal al suelo (`cos θ = (hs + hr)/R2`) y el
factor de pérdida por frontera `F(w)` se escribe mediante la función de error
complementaria escalada `e^{-w²} erfc(-iw)`, es decir, la función de Faddeeva
`scipy.special.wofz`. El segundo término de `Q` es la *onda de suelo* que
mantiene finito el campo en incidencia rasante, donde `Rp → -1` y un modelo de
onda plana predeciría silencio (Salomons Ecs. D.57, D.59, D.60).

El nivel sonoro relativo (la *atenuación en exceso*, dB respecto al campo libre)
es (Salomons Ec. 3.4):

$$
\Delta L = 20\lg\!\left|\,1 + Q\,\frac{R_1}{R_2}\,e^{i k (R_2 - R_1)}\,\right|.
$$

```python

from phonometry import ground_effect

bands = np.array([63., 125., 250., 500., 1000., 2000., 4000., 8000.])

# Pradera (resistividad al flujo efectiva sigma = 200 kPa.s/m^2), fuente a 1 m y
# receptor a 1.5 m de altura, separados 50 m. La impedancia procede del modelo
# poroso de Delany-Bazley de phonometry.materials (suelo semiinfinito).
res = ground_effect(bands, 1.0, 1.5, 50.0, flow_resistivity=2e5)
print(res.excess_attenuation)     # la caída del suelo (dB re campo libre)
print(res.reflection_coefficient) # Q complejo por banda
res.plot()                        # atenuación en exceso frente a frecuencia
```

La impedancia del suelo se deriva de una `flow_resistivity` efectiva (con el
modelo `delany_bazley` o `miki` de
[`phonometry.materials`](/phonometry/es/guides/porous-absorbers/), que modelan
un suelo poroso semiinfinito) o se suministra directamente como una `impedance`
compleja normalizada (un escalar, un vector por banda o un `PorousMediumResult`).
Un valor de `impedance` directo se toma en el convenio `e^{-iωt}` de Salomons,
en el que un suelo pasivo tiene `Im(Z) > 0`; los modelos porosos de
`phonometry.materials` trabajan en el convenio opuesto `e^{+jωt}`
(`Im(Z) < 0`), así que todo lo obtenido de ellos (una `flow_resistivity` o un
`PorousMediumResult`) se conjuga internamente antes de entrar en las fórmulas
de Weyl-Van der Pol.

<details>
<summary>Ver el código de esta figura</summary>

```python

from phonometry import ground_effect

freqs = np.geomspace(50.0, 4000.0, 400)
grounds = [
    ("Nieve reciente (10 kPa)", 10e3, "#2ca02c"),
    ("Suelo forestal (50 kPa)", 50e3, "#9467bd"),
    ("Pradera (200 kPa)", 200e3, "#1f77b4"),
    ("Asfalto (20000 kPa)", 20000e3, "#d62728"),
]
fig, ax = plt.subplots(figsize=(11, 6.4))
for label, sigma, color in grounds:
    res = ground_effect(freqs, 1.0, 1.5, 50.0, flow_resistivity=sigma)
    ax.plot(freqs, res.excess_attenuation, color=color, label=label)
ax.axhline(6.0, color="k", ls=":", label="Límite de suelo rígido (+6 dB)")
ax.axhline(0.0, color="k", lw=0.8)
ax.set_xscale("log")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel respecto al campo libre [dB]")
ax.legend()
plt.show()
```

</details>

**Límites que reproduce la implementación** (cada uno un test o ancla de
conformidad fijados): un suelo acústicamente rígido (`|Z| → ∞`) da `Rp → 1`,
`|w| → 0`, `F → 1` y `Q → 1`, de modo que `ΔL` alcanza `+6 dB` en fase; la
resistividad al flujo efectiva `σ → ∞` tiende a ese suelo rígido; la incidencia
rasante (`hs, hr → 0`) da `Rp → -1`; y el efecto suelo es recíproco al
intercambiar las alturas de fuente y receptor.

## 2. Difracción de barreras avanzada

`barrier_insertion_loss` y sus piezas dan tres niveles de apantallamiento más
allá del término `Dz` de ISO 9613-2.

**Forma cerrada de Kurze-Anderson.** La pérdida por inserción de una pantalla
fina en función del número de Fresnel `N = (2/λ)(A + B − d)` (Bies Ec. 5.134,
con `A` y `B` los dos tramos del camino más corto fuente-borde-receptor y `d` la
distancia recta) es (Bies Ec. 5.138; Kurze y Anderson 1971):

$$
\Delta = 5 + 20\lg\!\left(\frac{\sqrt{2\pi N}}{\tanh\sqrt{2\pi N}}\right)\;\text{dB},
$$

que tiende a `5 dB` en el límite de sombra `N → 0` y aproxima la curva de
fuente puntual de Maekawa dentro de unos 1,5 dB.

```python
from phonometry import barrier_insertion_loss, kurze_anderson_attenuation

kurze_anderson_attenuation(0.0)     # 5.0 dB en el límite de sombra

# Una barrera de 4 m a 50 m de una fuente a 1 m, receptor a 1.5 m y 100 m.
il = barrier_insertion_loss(bands, 1.0, 50.0, 4.0, 100.0, 1.5,
                            method="kurze_anderson")
il.plot()                           # pérdida por inserción frente a frecuencia
```

**Semiplano rígido exacto.** Con `method="exact"` se usa la pérdida por
inserción por teoría ondulatoria de una pantalla fina rígida: la forma compacta
en integrales de Fresnel de la solución de MacDonald / Hadden y Pierce
(Attenborough Ecs. 9.19-9.20), construida con las funciones de Fresnel
auxiliares. Da `6 dB` en el límite de sombra (el campo se reduce a la mitad, el
límite de cuña plana) y sigue a Kurze-Anderson en la zona de sombra.

**Barreras gruesas.** Un `thickness` (ancho superior `e`) alarga el camino
difractado a `A + e + B`, el número de Fresnel de doble borde
`N = (2/λ)(A + B + e − d)` de Bies Ec. 5.157, de modo que una barrera gruesa o
un caballón atenúa monótonamente más que la pantalla fina de la misma altura.

**Barrera coherente sobre el suelo.** Con una `ground_impedance` (o una
`ground_flow_resistivity`) se combinan coherentemente los cuatro caminos
difractados fuente-imagen / receptor-imagen, ponderando cada reflexión en el
suelo por el coeficiente de onda esférica `Q` anterior (Attenborough cap. 9;
Bies sec. 5.3.5). Esto expone la estructura de interferencia suelo-barrera que
una suma puramente energética de `Agr` y `Dz` no puede. Como simplificación de
primer orden, un único `Q` (sobre la geometría global fuente-receptor) pondera
todos los rebotes en lugar de un coeficiente por camino imagen; el modelo es
coherente y recíproco pero no una solución completa por elementos de contorno.

```python
il = barrier_insertion_loss(bands, 1.0, 50.0, 4.0, 100.0, 1.5,
                            method="exact", ground_flow_resistivity=2e5)
il.ground        # True: se aplicó el modelo coherente de cuatro caminos
il.plot()
```

Los tres modelos lado a lado sobre la misma geometría cuentan toda la
historia: el ajuste de Kurze-Anderson y el semiplano exacto se siguen a menos
de 1,5 dB a lo largo de dos décadas de número de Fresnel, mientras que el
modelo coherente con suelo oscila decenas de decibelios alrededor de ellos,
hacia arriba donde la barrera elimina el valle del efecto suelo del camino sin
apantallar, hacia abajo donde los cuatro caminos difractados interfieren
destructivamente.

<details>
<summary>Ver el código de esta figura</summary>

```python

from phonometry import barrier_insertion_loss

# La barrera de 4 m de los fragmentos anteriores, en una malla fina de frecuencia.
freqs = np.geomspace(50.0, 5000.0, 240)
il_ka = barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                               method="kurze_anderson")
il_ex = barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                               method="exact")
il_gr = barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                               method="exact", ground_flow_resistivity=2e5)
fig, ax = plt.subplots(figsize=(11, 6.4))
ax.semilogx(freqs, il_ka.insertion_loss, "--", label="Kurze-Anderson (pantalla delgada)")
ax.semilogx(freqs, il_ex.insertion_loss, label="Semiplano rígido exacto")
ax.semilogx(freqs, il_gr.insertion_loss, label="Exacto + suelo coherente (cuatro caminos)")
ax.axhline(5.0, color="k", ls=":", label="Límite rasante de Kurze-Anderson (5 dB)")
ax.set(xlabel="Frecuencia [Hz]", ylabel="Pérdida por inserción [dB]")
ax.legend()
plt.show()
```

</details>

## Relación con ISO 9613-2

Los términos tabulados `Agr` y `Dz` del
[método ISO 9613-2](/phonometry/es/guides/outdoor-propagation/) son ajustes de
ingeniería por banda de octava basados en energía; `ground_effect` y
`barrier_insertion_loss` son sus contrapartes de banda estrecha por acústica
ondulatoria. Sobre suelo rígido ambos coinciden en el realce de `+6 dB` y en el
suelo de barrera rasante de `5 dB`, pero solo los modelos ondulatorios resuelven
las caídas de interferencia que se mueven con la geometría, la frecuencia y la
impedancia del suelo, lo que los hace la infraestructura natural de los esquemas
meteorológicos de Nord2000 y CNOSSOS.

## Qué cubre esta guía

**Cubierto.** El coeficiente de reflexión de onda esférica de Weyl-Van der
Pol para el suelo (`ground_effect`, Attenborough Ec. 2.40a/c, Salomons
Ec. 3.2/D.58, el factor de pérdida por frontera mediante la función de
Faddeeva), con sus límites de suelo rígido (`+6 dB`), incidencia rasante y
reciprocidad anclados como tests. La difracción de barrera por teoría
ondulatoria (`barrier_insertion_loss`): la forma cerrada de Kurze-Anderson
(`kurze_anderson_attenuation`, Bies Ec. 5.138), el semiplano rígido exacto
(MacDonald / Hadden y Pierce, Attenborough Ecs. 9.19-9.20), las barreras
gruesas mediante el número de Fresnel de doble arista (Bies Ec. 5.157), y el
modelo coherente de barrera sobre suelo de cuatro caminos ponderado por el
coeficiente de reflexión de `ground_effect`.

**No cubierto.** Ambos modelos asumen una atmósfera homogénea, sin
refracción ni turbulencia; un gradiente vertical de velocidad del sonido es
el objeto de la guía separada de
[refracción atmosférica](/phonometry/es/guides/atmospheric-refraction/).
El modelo coherente de barrera sobre suelo pondera los cuatro caminos
difractados con un único coeficiente de reflexión `Q` calculado sobre la
geometría global fuente-receptor, en lugar de un coeficiente distinto por
camino imagen, así que es coherente y recíproco pero no una solución
completa por elementos de contorno.
