<!-- canonical: https://jmrplens.github.io/phonometry/es/devices/emission/sound-power-intensity/ -->
Source: https://jmrplens.github.io/phonometry/es/devices/emission/sound-power-intensity/

Las vías de presión hasta el nivel de potencia acústica fallan exactamente
donde viven las máquinas: en una nave donde las líneas vecinas no se pueden
apagar. La **intensidad** acústica es el flujo neto de energía, así que
distingue la energía que *sale* de la fuente de la energía estacionaria que
solo atraviesa la superficie de medición, y los métodos de barrido
construidos sobre ella toleran un ruido extraño que derrotaría a cualquier
método de presión. Esta guía cubre los dos: la determinación de
ingeniería/inspección de ISO 9614-2 con sus indicadores de campo y su grado
alcanzado por banda, el barrido de precisión (grado 1) de ISO 9614-3 con
sus criterios más estrictos, y la ficha de ensayo de estilo acreditado. La
propia sonda, su sesgo por diferencias finitas y el método de puntos
discretos de ISO 9614-1 viven en
[Intensidad acústica (p-p)](/phonometry/es/devices/emission/intensity/); qué vía
encaja con qué trabajo se sopesa en
[Potencia acústica](/phonometry/es/devices/emission/sound-power/).

## 1. Barrido de intensidad (ISO 9614-2)

Una sonda p-p (véase la
[guía de Intensidad acústica](/phonometry/es/devices/emission/intensity/)) se
barre de forma continua sobre cada uno de los $N$ segmentos de una superficie
que encierra la fuente, informando de la intensidad normal con signo promediada
por segmento $\langle I_{n,i} \rangle$ — una fila por segmento, una columna por
banda.

Las potencias parciales suman el total:

$$
P_i = \langle I_{n,i} \rangle\ S_i, \qquad P = \sum_i P_i, \qquad
L_W = 10 \log_{10}\frac{P}{P_0},\quad P_0 = 1\ \text{pW} .
$$

### Ejecutar el barrido

Todo lo anterior llega en forma de array; aquí es de donde sale. La superficie
de medición se divide en **al menos cuatro segmentos** (apartado 8.2), elegidos
en lo posible de modo que una zona de flujo neto entrante no se promedie junto a
una de flujo saliente, y de modo que cada segmento mire a un componente de la
máquina. Su distancia media a la superficie de la fuente es de al menos
**200 mm** para una superficie vibrante extensa, reducible a 100 mm para una
fuente pequeña y compacta — momento en el cual la acción a) de la Tabla B.1,
«alejar la superficie», deja de estar a tu alcance.

El barrido en sí es un recorrido, no un conjunto de puntos. Su elemento básico
es una línea recta; el recorrido debe cubrir el segmento de manera uniforme y a
velocidad uniforme, con las líneas contiguas igualmente separadas, y sobre la
superficie de medición inicial **la separación media entre líneas no debe
superar la distancia media del segmento a la fuente** (apartado 8.1). La
velocidad de barrido es de 0,1 m/s a 0,5 m/s a mano y de 0 m/s a 1 m/s de forma
mecánica; cada segmento lleva **al menos 20 s**, arrancando y parando la
promediación temporal en los límites del segmento para que el
$\langle I_{n,i} \rangle$ declarado pertenezca a ese segmento y a nada más. El
eje de la sonda se mantiene normal a la superficie durante todo el recorrido, y
quien mide se coloca al lado del segmento que está barriendo, no delante.

Para el grado de ingeniería cada segmento se barre **dos veces, y los dos
recorridos deben ser ortogonales** — el segundo barrido girado 90° siempre que
sea posible (apartado 8.3.1). Eso es `normal_intensity_2`: no una repetición del
mismo barrido, sino el girado. El criterio 3 existe precisamente para cazar un
campo que no se repite, y repetir un recorrido idéntico lo supera en una
determinación que un recorrido girado suspendería. La nota 10 de ese mismo
apartado añade la consecuencia práctica: por encima de
$F_{pI} = 10\ \text{dB}$, es probable que las velocidades de barrido superiores
a 0,25 m/s incumplan el criterio 3 sea cual sea la estabilidad del campo.

### Los indicadores de campo y sus criterios

Una banda cuya potencia neta **no es positiva** ($P \le 0$: entra por la
superficie más energía de la que sale, procedente de una fuente más fuerte de
fuera) es **no determinable** y se informa como `NaN` (apartado 9.2). Dos
indicadores de campo normativos cualifican las bandas que sí lo son. El
**indicador superficial presión-intensidad** $F_{pI}$ mide cuán reactivo o cuán
contaminado está el campo, y el **indicador de potencia parcial negativa**
$F_{+/-}$ mide cuánta energía circula hacia dentro y hacia fuera a través de la
superficie:

$$
F_{pI} = \overline{L_p} - L_W + 10 \log_{10}\frac{S}{S_0}, \qquad
F_{+/-} = 10 \log_{10}\frac{\sum_i \lvert P_i \rvert}{\lvert \sum_i P_i \rvert} ,
$$

donde $\overline{L_p}$ es el nivel de presión de superficie ponderado por áreas
sobre los segmentos. Estos son los nombres de ISO 9614-2 para los dos
indicadores del Anexo A de ISO 9614-1 que la
[guía de intensidad](/phonometry/es/devices/emission/intensity/) llama $F_2$ y
$F_3$: $F_{pI} \equiv F_3$ y $F_{+/-} \equiv F_3 - F_2$ con segmentos de áreas
iguales, así que los indicadores de campo de allí y los criterios de
cualificación de aquí son los mismos dos números con las notaciones de dos
normas.

La **capacidad dinámica** de la sonda $L_\mathrm{d} = \delta_{pI0} - K$ (índice de
intensidad residual de presión menos el factor de sesgo $K$, 10 dB para el
grado 2 y 7 dB para el grado 3) debe superar $F_{pI}$ (criterio 1);
$F_{+/-} \le 3\ \text{dB}$ es el criterio 2 (obligatorio para el grado 2); y
los dos barridos girados deben coincidir dentro del límite $s$ de la Tabla 2
por segmento (criterio 3). Una banda es de
grado **ingeniería** cuando se cumplen los criterios 1, 2 y 3, de **inspección**
cuando se cumplen 1 y 3, y en caso contrario `none`.

### Leer los indicadores

Ninguno de los dos indicadores es un booleano, y los dos llevan escala. $F_{pI}$
se queda cerca de cero cuando todo lo que encierra la superficie radia hacia
fuera y no le llega nada más; unos pocos decibelios es lo normal en trabajo in
situ; y el apartado 8.3.2 pide que se haga todo lo posible por mantenerlo **por
debajo de 10 dB** mediante la elección de la superficie. Un $F_{pI}$ grande tiene
dos causas con arreglos opuestos: un campo próximo reactivo, que se resuelve
alejando la superficie, y una fuente externa fuerte, que se resuelve acercando la
superficie a la máquina o apantallándola. $F_{+/-}$ se lee de otra manera: cero
cuando todos los segmentos radian hacia fuera, y 3 dB cuando las potencias
parciales entrante y saliente ya son comparables a la neta, así que por encima de
3 dB la superficie está a caballo entre dos fuentes y el arreglo es volver a
recortarla — promediar más tiempo no ayuda, porque el problema es dónde está la
superficie, no lo ruidosa que sea la estimación.

Cuando falla el criterio 1, los remedios son baratos antes que caros: agrandar la
superficie alejándola del campo próximo, apantallar o retirar la fuente extraña,
montar un **espaciador mayor** para subir $\delta_{pI0}$ (véase
[Elegir la sonda](/phonometry/es/devices/emission/intensity/#elegir-la-sonda)),
y solo después plantearse mejor equipo. Rebajar la pretensión de grado de
ingeniería a inspección da por sí sola 3 dB de $L_\mathrm{d}$, porque $K$ pasa de 10 dB a
7 dB — a costa del grado.

```python

from phonometry import emission

# 6 segmentos de superficie x 6 bandas de octava: intensidad normal con signo (W/m^2)
# de dos barridos repetidos, las áreas de los segmentos y el SPL superficial por segmento (dB).
freqs = np.array([125, 250, 500, 1000, 2000, 4000], dtype=float)
areas = np.full(6, 0.5)                                 # 0.5 m^2 por segmento
rng = np.random.default_rng(0)
scan1 = np.abs(rng.normal(1e-4, 2e-5, size=(6, 6)))     # (segmentos, bandas)
scan2 = scan1 * (1.0 + rng.normal(0.0, 0.02, size=(6, 6)))
pressure = np.full((6, 6), 80.0)

res = emission.sound_power_intensity(
    scan1, areas, normal_intensity_2=scan2, pressure_levels=pressure,
    pressure_residual_index=12.0, frequencies=freqs,
    band_type="octave", grade="engineering",
)
print(np.round(res.sound_power_level, 1))               # LW por banda
print(round(res.sound_power_level_a, 1))                # LWA sobre las bandas determinables
print(round(float(res.dynamic_capability_index[0]), 1)) # Ld = 12 - 10 = 2.0 dB
print(round(float(res.surface_pressure_intensity_index[0]), 2))   # FpI
print(list(res.achieved_grade))                         # grado por banda

res.plot()   # espectro LW; bandas no positivas (indeterminables) con trama (requiere matplotlib)
```

*Las potencias parciales $\langle I_{n,i} \rangle\,S_i$ de los seis segmentos
suman el $L_W$ de cada banda; aquí todas las bandas tienen potencia neta
positiva y superan los criterios de indicadores de campo en grado de
ingeniería, así que las seis barras se sostienen, y el total ponderado A de
90,9 dB(A) encabeza el título.*

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

```python

from phonometry import emission

# 6 segmentos de superficie x 6 bandas de octava: intensidad normal con signo (W/m^2)
# de dos barridos repetidos, las áreas de los segmentos y el SPL superficial por segmento (dB).
freqs = np.array([125, 250, 500, 1000, 2000, 4000], dtype=float)
areas = np.full(6, 0.5)                                 # 0.5 m^2 por segmento
rng = np.random.default_rng(0)
scan1 = np.abs(rng.normal(1e-4, 2e-5, size=(6, 6)))     # (segmentos, bandas)
scan2 = scan1 * (1.0 + rng.normal(0.0, 0.02, size=(6, 6)))
pressure = np.full((6, 6), 80.0)
res = emission.sound_power_intensity(
    scan1, areas, normal_intensity_2=scan2, pressure_levels=pressure,
    pressure_residual_index=12.0, frequencies=freqs,
    band_type="octave", grade="engineering",
)

# res es el SoundPowerIntensityResult calculado arriba. Una línea:
res.plot(language="es")
plt.show()

# A mano: un espectro de barras de LW con el total ponderado A en el título.
freqs = res.frequencies
positions = np.arange(freqs.size)
fig, ax = plt.subplots()
ax.bar(positions, res.sound_power_level, width=0.7, color="#1f77b4")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
    f"Potencia acústica por barrido de intensidad (ISO 9614-2)  "
    f"LWA = {res.sound_power_level_a:.1f} dB(A)")
plt.show()
```

</details>

Suministrar `normal_intensity_2` (el segundo barrido, el girado) promedia ambos
para las
potencias parciales y evalúa el criterio 3; `pressure_levels` habilita
$F_{pI}$; `pressure_residual_index` ($\delta_{pI0}$) más un segundo barrido
habilita el grado
alcanzado por banda. La intensidad por diferencias finitas de la sonda tiene un
sesgo dependiente de la frecuencia que se trata en la
[guía de intensidad](/phonometry/es/devices/emission/intensity/).

### Dónde pierde bandas el total ponderado A

`sound_power_level_a` no es una suma sobre todas las bandas, y la diferencia
importa para cualquier cosa que vaya a compararse con un límite. Dos cosas dejan
una banda fuera, por razones distintas:

- una banda cuya potencia neta no es positiva **no es determinable en absoluto**
  (apartado 9.2) y vuelve como `NaN`; `negative_band` la señala;
- una banda que *sí* es determinable pero incumple el criterio 1, o el
  criterio 2 en grado de ingeniería, es un número perfectamente bueno que el
  **apartado 10.6 b) prohíbe incluir** en una determinación ponderada A salvo
  que su contribución sea despreciable según el apartado 4.3;
  `a_weighting_omitted_bands` registra exactamente cuáles.

El apartado 10.6 b) hace además que declarar esa omisión forme parte de la
determinación: un $L_{W\mathrm{A}}$ informado sin decir qué bandas se descartaron no es
conforme. La consecuencia va en un solo sentido — el total es una
**subestimación**, y quien lee puede acotarlo sumando las bandas omitidas a su
nivel calculado y devolviéndolas. Ojo también al modo de fallo del propio
cribado: sin `pressure_levels` ni `pressure_residual_index` los criterios no se
pueden evaluar, así que se suman todas las bandas determinables y un
`SoundPowerWarning` lo advierte. Un total silencioso no es lo mismo que un total
cribado.

### El criterio 3 no es del todo una barrera dura

El criterio 3 se evalúa por segmento y por banda, que es la razón de que
`repeatability` vuelva por segmento en lugar de como un veredicto único. Un
segmento que falla no anula automáticamente su banda: el apartado 8.3.1 permite
que la determinación se sostenga cuando las potencias parciales sumadas de los
segmentos que fallan quedan **más de 10 dB por debajo** de la potencia de fuente
obtenida de los que pasan, siendo entonces despreciable su contribución. Lo que
no permite es el silencio: las bandas en las que no se cumplió el criterio 3
deben llevar en el informe una declaración de que su incertidumbre supera el
valor de la Tabla 2 para el grado pretendido.

El valor por defecto de `repeatability_limit` merece el mismo cuidado. La
Tabla 2 tabula $s$ por banda solo para el grado de **ingeniería**; para el grado
de inspección da un único valor ponderado A de 4 dB, y esta implementación
reutiliza esos 4 dB como límite por banda de inspección. Es una extrapolación
deliberada, no un valor normativo, y es más laxa que cualquier límite de grado 2
de la tabla — así que superar el criterio 3 en grado de inspección no es prueba
de repetibilidad de grado 2. La Tabla 2 está además acotada: `_table2_s` lanza un
error fuera de las bandas de octava de 63 Hz a 4 kHz y de las de tercio de octava
de 50 Hz a 6,3 kHz, de modo que una octava de 8 kHz es una excepción, no un
límite ancho.

### El instrumento y el entorno

El `"Sonda de intensidad p-p clase 1 (IEC 61043)"` de la ficha es una afirmación
con apartados detrás. El instrumento **incluida su sonda** debe cumplir la
IEC 61043, verificado en laboratorio al menos una vez al año — o al menos cada
dos años si se aplica un calibrador de intensidad antes de cada determinación de
potencia (apartado 6.2). Antes de cada serie, un calibrador IEC 60942 de clase 0
o de clase 1 pasa por cada micrófono de la sonda (apartado 6.2.1), y el ensayo de
inversión de la sonda del apartado 6.2.2 confirma in situ que la cadena está de
acuerdo sobre cuál es el sentido saliente; los dos procedimientos, y lo que
significan sus fallos, están en
[Intensidad acústica](/phonometry/es/devices/emission/intensity/#medir-el-índice-residual-y-comprobar-la-sonda).
El apartado 10.5 hace que declarar ambos forme parte del entregable.

El entorno también tiene límites. La velocidad media del aire sobre la superficie
de medición debe quedar por debajo de **4 m/s**, o hay que usar un paravientos
(apartado 6.1); la presión estática y la temperatura se miden porque fijan la
densidad y la velocidad del sonido con las que se calcula la intensidad.

Cuando falla un criterio, la Tabla B.1 del Anexo B enumera qué cambiar en lugar
de dejarlo en un `False`: aumentar la promediación o el tiempo de barrido, mover
la superficie de medición, duplicar la densidad de líneas de barrido, subdividir
la superficie en más segmentos, o apantallar la fuente extraña. Los códigos de
acción están ligados a qué criterio falló, que es la razón de que el resultado
informe de los criterios por separado en lugar de con un único booleano.

### Parámetros de `sound_power_intensity()`

| Parámetro | Tipo | Unidades | Rango / valor por defecto | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `normal_intensity` | array 2D | W/m² | `(N_seg, N_bands)` | Intensidad normal con signo promediada por segmento $\langle I_{n,i} \rangle$ (primer barrido) |
| `areas` | array 1D | m² | > 0, `(N_seg,)` | Áreas de los segmentos $S_i$ |
| `normal_intensity_2` | array 2D | W/m² | misma forma | Segundo barrido → criterio 3 y promediado |
| `pressure_levels` | array 2D | dB | misma forma | SPL por segmento $L_{pi}$ → $F_{pI}$ |
| `pressure_residual_index` | float o array 1D | dB | — | $\delta_{pI0}$ → $L_\mathrm{d}$ / criterio 1 |
| `frequencies` | array 1D | Hz | octava 63 Hz-4 kHz, tercio 50 Hz-6,3 kHz | $L_{W\mathrm{A}}$ y límites de la Tabla 2; fuera de ese rango la Tabla 2 no tiene $s$ y la llamada lanza un error |
| `band_type` | str | — | `'third'` (por defecto) / `'octave'` | Consulta de la Tabla 2 |
| `grade` | str | — | `'engineering'` (por defecto) / `'survey'` | Selecciona $K$ |
| `repeatability_limit` | float o array 1D | dB | por defecto Tabla 2 (inspección: los 4 dB ponderados A reutilizados por banda) | Sobrescribe $s$ del criterio 3 |

Devuelve un `SoundPowerIntensityResult`: `partial_power`/`partial_power_level`
por segmento y banda, `sound_power`/`sound_power_level` (total de banda, `NaN`
donde `negative_band`), `negative_band` (las bandas no determinables),
`surface_pressure_intensity_index` ($F_{pI}$),
`negative_partial_power_index` ($F_{+/-}$), `repeatability`,
`dynamic_capability_index` ($L_\mathrm{d}$), `achieved_grade`,
`a_weighting_omitted_bands` (las bandas que el apartado 10.6 b) dejó fuera de
$L_{W\mathrm{A}}$), `surface_area`, `sound_power_level_a` y `grade`.

`partial_power_level` es el campo que paga todo el método. Una determinación por
presión devuelve un número por banda; un barrido de intensidad devuelve uno por
segmento *y* banda, con signo, de modo que el resultado dice **por dónde** sale
la potencia de la máquina y por dónde vuelve a entrar:

*La caja de medición desplegada, una tesela por segmento. La cara frontal se
lleva la mayor parte de la emisión; el segmento rayado de la cara a la sombra da
un neto **entrante**, que es lo normal junto a un vecino más ruidoso y es
exactamente lo que cuenta $F_{+/-}$. Un espectro de $L_W$ sumado en bandas no
puede enseñar nada de esto, y es el mapa, no el espectro, el que te dice qué
panel hay que tratar.*

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

```python

# Una máquina de 1,2 x 0,8 x 1,0 m encajonada a d = 0,25 m: cinco caras, cuatro
# segmentos cada una, y uno de ellos recibiendo flujo neto de un vecino más
# ruidoso.
area_cara = np.array([1.7 * 1.5, 1.3 * 1.5, 1.7 * 1.5, 1.3 * 1.5, 1.7 * 1.3])
area_seg = np.repeat(area_cara / 4.0, 4)
reparto = np.array([2.6, 2.2, 2.0, 1.8, 0.9, 0.8, 0.7, 0.7,
                    0.5, 0.4, -0.35, 0.3, 0.8, 0.7, 0.6, 0.6,
                    1.1, 1.0, 0.9, 0.8])
res = emission.sound_power_intensity(
    (reparto * 1.0e-5 / area_seg)[:, None], area_seg,
    frequencies=np.array([500.0]))
nivel, con_signo = res.partial_power_level[:, 0], res.partial_power[:, 0]

# El desarrollo: las cuatro caras laterales en fila y la superior sobre la frontal.
origen = ((0, 0), (1.7, 0), (3.0, 0), (4.7, 0), (0, 1.5))
tamano = ((1.7, 1.5), (1.3, 1.5), (1.7, 1.5), (1.3, 1.5), (1.7, 1.3))
fig, ax = plt.subplots(figsize=(11, 5))
for f, ((ox, oy), (w, h)) in enumerate(zip(origen, tamano, strict=True)):
    for k in range(4):
        valor = nivel[4 * f + k]
        ax.add_patch(mpatches.Rectangle(
            (ox + (k % 2) * w / 2, oy + (1 - k // 2) * h / 2), w / 2, h / 2,
            facecolor=plt.get_cmap("viridis")(
                (valor - nivel.min()) / (nivel.max() - nivel.min())),
            edgecolor="black",
            hatch="//" if con_signo[4 * f + k] < 0 else None))
ax.set(xlim=(-0.2, 6.2), ylim=(-0.4, 3.0), aspect="equal")
plt.show()
```

</details>

## 2. Barrido de intensidad de precisión (ISO 9614-3)

ISO 9614-3 es el método de barrido de grado 1: como ISO 9614-2, integra la
intensidad normal sobre una superficie que encierra la fuente, pero con un barrido
continuo, criterios de indicadores de campo más estrictos y un presupuesto de
incertidumbre explícito.

**Potencia y nivel (apartado 7).** La potencia parcial de cada segmento es
$P_i = I_{n,i}\,S_i$; el total $P = \sum_i P_i$ da
$L_W = 10\log_{10}(P/P_0)$, $P_0 = 1\ \text{pW}$. Una banda cuya potencia neta no
es positiva ($P \le 0$) se marca no aplicable en lugar de
registrarse. Los indicadores de campo (variabilidad temporal $F_\mathrm{T}$, los
indicadores presión-intensidad con y sin signo, y la no uniformidad $F_\mathrm{S}$)
gobiernan los cinco criterios de aceptación.

```python

from phonometry import emission

# Una superficie totalmente envolvente con una intensidad normal uniforme In = W/S
# recupera exactamente la potencia de la fuente: LW = 10*lg(W/P0). Aquí W = 100 uW -> 80 dB.
areas = np.array([0.5, 1.0, 0.25, 2.0])
w = 1.0e-4
i_n = np.full(areas.shape, w / float(areas.sum()))
res = emission.sound_power_intensity_precision(i_n, areas)
print(round(float(res.sound_power[0]), 6))          # 0.0001
print(round(float(res.sound_power_level[0]), 2))    # 80.0
```

A lo largo de varias bandas el resultado lleva el $L_W$ por banda (`NaN` donde la
potencia neta es no positiva), marca esas bandas como `not_applicable` y las
dibuja con la línea única `result.plot()` de la figura de abajo:

```python

from phonometry import emission

# Cuatro superficies parciales barridas sobre cinco bandas de tercio de octava. Cada
# celda de partial_intensity es la intensidad normal con signo In_i (W/m^2); areas son
# las áreas de las superficies parciales Si. La banda de 250 Hz tiene potencia neta
# negativa (un campo localmente reactivo), así que ISO 9614-3 la marca no aplicable (apartado 9.2) -> NaN.
freqs = np.array([250, 500, 1000, 2000, 4000], float)
areas = np.array([0.5, 1.0, 0.75, 0.5])
base_intensity = np.array([2.0e-6, 8.0e-6, 2.0e-5, 1.0e-5, 3.0e-6])
partial_intensity = base_intensity[None, :] * np.array([1.0, 1.1, 0.9, 1.05])[:, None]
partial_intensity[:, 0] = [2.0e-6, -3.0e-6, -4.0e-6, -1.0e-6]   # banda de potencia neta negativa

result = emission.sound_power_intensity_precision(partial_intensity, areas, frequencies=freqs)
print(result.not_applicable_band.tolist())   # [True, False, False, False, False]
print(round(result.sound_power_level_a, 1))   # 80.6
result.plot()   # espectro LW; la banda no aplicable con trama (requiere matplotlib)
```

*La banda de 250 Hz da un neto negativo (más energía entrando que saliendo), así que
ISO 9614-3 la declara no aplicable; la figura la trama y la agrisa mientras las
cuatro bandas determinadas y el total ponderado A se mantienen.*

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

```python

from phonometry import emission

# Cuatro superficies parciales barridas sobre cinco bandas de tercio de octava. Cada
# celda de partial_intensity es la intensidad normal con signo In_i (W/m^2); areas son
# las áreas de las superficies parciales Si. La banda de 250 Hz tiene potencia neta
# negativa (un campo localmente reactivo), así que ISO 9614-3 la marca no aplicable (apartado 9.2) -> NaN.
freqs = np.array([250, 500, 1000, 2000, 4000], float)
areas = np.array([0.5, 1.0, 0.75, 0.5])
base_intensity = np.array([2.0e-6, 8.0e-6, 2.0e-5, 1.0e-5, 3.0e-6])
partial_intensity = base_intensity[None, :] * np.array([1.0, 1.1, 0.9, 1.05])[:, None]
partial_intensity[:, 0] = [2.0e-6, -3.0e-6, -4.0e-6, -1.0e-6]   # banda de potencia neta negativa
result = emission.sound_power_intensity_precision(partial_intensity, areas, frequencies=freqs)

# result es el PrecisionIntensityResult calculado arriba. Una línea:
result.plot(language="es")
plt.show()

# A mano: bandas determinadas como barras de LW; una banda no aplicable (su LW es NaN)
# se señala con una franja gris y con trama a plena altura en lugar de una barra de altura cero.
freqs = result.frequencies
positions = np.arange(freqs.size)
neg = result.not_applicable_band
lw = np.nan_to_num(result.sound_power_level)
fig, ax = plt.subplots()
ax.bar(positions[~neg], lw[~neg], width=0.7, color="#1f77b4")
for pos in positions[neg]:
    ax.axvspan(pos - 0.35, pos + 0.35, facecolor="#888888", alpha=0.28,
               hatch="//", edgecolor="#888888")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
    f"Barrido de intensidad de precisión (ISO 9614-3)  "
    f"LWA = {result.sound_power_level_a:.1f} dB(A)")
plt.show()
```

</details>

### Cualificar el barrido (Anexo C)

`sound_power_intensity_precision` devuelve una potencia, no un grado: nada en ese
resultado dice si la determinación es de grado 1. La barrera de aceptación es un
par de llamadas aparte, y sin ella la mitad de precisión de esta página es un
cálculo con los criterios quitados.

`precision_field_indicators` calcula los indicadores del Anexo B a partir de los
mismos arrays por segmento — los indicadores presión-intensidad con y sin signo
$F_{pI_n}$, la no uniformidad del campo $F_\mathrm{S}$ y la variabilidad temporal $F_\mathrm{T}$
cuando se aporta una intensidad por ventana temporal. `precision_qualification`
evalúa después los cinco criterios del Anexo C por banda:

1. **repetibilidad del barrido**,
   $\lvert L_{I_n}(1) - L_{I_n}(2) \rvert \le s/2$ con $s$ de la Tabla 1
   (Ec. C.1) — la mitad de la tolerancia que admite la ISO 9614-2, que es casi
   todo lo que cuesta la «precisión»;
2. **suficiencia de la capacidad dinámica**,
   $L_\mathrm{d} \ge F_{pI_n}^{\text{con signo}}$ con $L_\mathrm{d} = \delta_{pI0} - K$ y
   $K = 10$ dB (Ec. C.2);
3. $F_{pI_n}^{\text{con signo}} - F_{pI_n}^{\text{sin signo}} \le 3$ dB
   (Ec. C.3), la contrapartida de precisión del límite de $F_{+/-}$ de la
   ISO 9614-2;
4. **no uniformidad del campo**, $F_\mathrm{S} \le 2$ (Ec. C.4);
5. **convergencia con la densidad de barrido**,
   $0{,}83 \le F_\mathrm{S}(1)/F_\mathrm{S}(2) \le 1{,}2$ entre la densidad inicial y una doblada
   (Ec. C.5).

La conjunción es `qualified`, y lleva un matiz que conviene conocer antes de
volver a barrer una máquina: el apartado C.1.6.2 acepta como resultado final una
banda que cumple el criterio 5 **aunque no cumpla el criterio 4**. Un campo no
uniforme que deja de cambiar cuando se dobla la densidad de barrido está
muestreado adecuadamente; lo que invalida es el cambio con la densidad, no la no
uniformidad en sí.

```python
# Los mismos cuatro segmentos y cinco bandas, ahora con sus niveles de presión
# de superficie y un segundo barrido (girado 90°, de densidad doblada):
# suficiente para el Anexo C.
segment_pressure = np.full((4, 5), 74.0)
ind = emission.precision_field_indicators(partial_intensity, segment_pressure)
print(np.round(ind.f_pi_signed, 1))            # [12.2  4.9  0.9  3.9  9.2]

scan1 = 10.0 * np.log10(np.abs(partial_intensity.mean(axis=0)) / 1e-12)
scan2 = scan1 + np.array([0.9, 0.2, 0.1, 0.3, 0.4])
crit = emission.precision_qualification(
    ind, scan_intensity_level_1=scan1, scan_intensity_level_2=scan2,
    pressure_residual_index=15.0,              # Ld = 15 - 10 = 5 dB
    field_nonuniformity_1=ind.fs, field_nonuniformity_2=0.95 * ind.fs,
    frequencies=freqs,
)
print(crit.criterion_2.tolist())   # [False, True, True, True, False]
print(crit.qualified.tolist())     # [False, True, True, True, False]
```

Aquí fallan dos bandas, y fallan por la razón que dicen los números: a 250 Hz y a
4 kHz el indicador con signo (12,2 dB y 9,2 dB) supera la $L_\mathrm{d} = 5$ dB de la
sonda, así que el instrumento no puede resolver el flujo neto frente a su propio
índice residual. Eso es el criterio 2, y la respuesta es una sonda mejor, un
espaciador mayor o una superficie alejada del campo próximo reactivo, no un
barrido más largo.

## 3. El informe de medición (`.report()`)

El resultado de barrido por intensidad (`SoundPowerIntensityResult`,
ISO 9614-2) escribe mediante su propio `.report()` una ficha PDF de una
página con el formato de una hoja de ensayo de potencia acústica,
compartiendo el diseño y el contenedor `ReportMetadata` de la
[ficha de los métodos de presión](/phonometry/es/devices/emission/sound-power-pressure/#3-el-informe-de-medición-report).
La línea de base normativa nombra la ISO 9614-2:1996 y el grado de
medición, la tabla por bandas lista el nivel de potencia acústica de banda
$L_W$ derivado de la intensidad, y el recuadro del $L_{W\mathrm{A}}$ recoge el $L_W$
total, la superficie de medición $S$ y el grado de determinación (el resultado
por intensidad no tiene incertidumbre expandida $U$). `verbose=True` añade los
indicadores de campo $F_{pI}$ (superficial de presión-intensidad) y $F_{+/-}$
(potencia parcial negativa) y el grado alcanzado por banda; la franja de base
indica el modelo de potencia parcial (las potencias parciales de segmento
$P_i = I_{n,i} S_i$ que suman $P$) y los criterios de cualificación del Anexo B.
Una banda cuya potencia neta no es positiva no es determinable (apartado 9.2) y
se imprime una raya.

```python

from phonometry import ReportMetadata, emission

freqs = np.array([125, 250, 500, 1000, 2000, 4000], float)
# Seis segmentos iguales de 0,5 m^2 (S = 3,0 m^2); un espectro de intensidad
# normal uniforme barrido dos veces, con el SPL de superficie y el índice
# residual del instrumento que cualifican cada banda en grado de ingeniería.
intensity = np.array([0.6e-4, 1.0e-4, 1.5e-4, 1.4e-4, 0.9e-4, 0.5e-4])
scan = np.tile(intensity, (6, 1))
res = emission.sound_power_intensity(
    scan, np.full(6, 0.5), normal_intensity_2=scan.copy(),
    pressure_levels=np.full((6, 6), 80.0), pressure_residual_index=15.0,
    frequencies=freqs, band_type="octave", grade="engineering",
)

res.report(
    "sound_power_intensity.pdf",
    metadata=ReportMetadata(
        client="Planta de fabricación de ejemplo",
        specimen="Grupo hidráulico (de suelo)",
        test_room="Nave con ruido de fondo estacionario",
        instrumentation="Sonda de intensidad p-p clase 1 (IEC 61043), n/s 0042",
        laboratory="Laboratorio de referencia Phonometry",
        report_id="EXAMPLE-9614",
        requirement=93.0,
    ),
    language="es",
)   # LWA = 90,9 dB(A) re 1 pW -> límite declarado 93 dB(A): CUMPLE
```

La ficha de ejemplo se regenera con `make reports` y se mantiene renderizada en
el repositorio; pulsa la vista previa para abrir el PDF.

### La ficha de precisión (ISO 9614-3)

`PrecisionIntensityResult` escribe su propia ficha, y no es la hoja de la
parte 2 con otro título: la parte 3 pide que el informe indique cosas distintas
(apartado 10). La tabla por bandas lleva el nivel normalizado $L_{W0}$ que
declara la norma (Ec. 10) junto al $L_W$, y la incertidumbre expandida $U$ del
apartado 4.3, dos veces la desviación típica de reproducibilidad de la Tabla 1
para esa banda; el pie de tabla nombra el rango de frecuencias que abarca la
determinación, porque el apartado 4.3 lo exige cuando ese rango es más estrecho
que de 50 Hz a 6,3 kHz. Un conjunto de tercios de octava se imprime en dos
grupos de columnas contiguos, como una hoja acreditada encaja tantas bandas en
una página. `verbose=True` tabula por banda los cuatro indicadores del Anexo B
$F_\mathrm{T}$, $F_{p|I_n|}$, $F_{pI_n}$ y $F_\mathrm{S}$, la tabulación que pide el punto f) 1)
del capítulo 10, sobre la superficie de medición tal como los define el Anexo B,
y la celda de cualificación que deciden los criterios.

Si le pasas una cualificación del Anexo C, la hoja hace lo que el apartado
10 f) 2) declara obligatorio: las bandas cuyos criterios del Anexo C no se
cumplen quedan fuera de la determinación ponderada A y se nombran en la hoja,
junto a las bandas a las que el método no es aplicable en absoluto (apartado
9.2). Por eso el $L_{W\mathrm{A}}$ del recuadro puede diferir de
`result.sound_power_level_a`, que se calcula antes de evaluar ningún criterio y
por tanto suma todas las bandas aplicables. A su lado el recuadro indica el
$L_{W\mathrm{A}0}$ normalizado, porque el punto f) 2) del capítulo 10 declara la magnitud
normalizada mientras que el número principal es el nivel frente al que se
escribe un límite declarado. Sin `criteria`, la ficha recuadra el
valor del propio resultado e indica que no se aportó cualificación.
`residual_index` pone en la hoja el índice presión-intensidad residual de la
sonda (apartado 10 d) 5)) con la capacidad dinámica $L_\mathrm{d}$ que se deduce de él;
los elementos del apartado 10 que son descripción libre y no números, la
geometría y la velocidad del barrido, el tiempo de barrido y las comprobaciones
con la sonda invertida, van en el campo `notes` de los metadatos.

```python

from phonometry import ReportMetadata, emission

# Una superficie de medida en caja: cinco superficies parciales, cada una
# barrida en cuatro segmentos, sobre las bandas de tercio de octava de 200 Hz
# a 800 Hz. La parte 3 trabaja en tercios de octava, que es el conjunto de
# bandas para el que la Tabla 1 tabula su incertidumbre y la tolerancia del
# criterio 1.
third_octave = np.array([200, 250, 315, 400, 500, 630, 800], float)
faces = np.array([1.65, 1.575, 1.575, 1.155, 1.155])
scanned = 1.2e-5 * np.array([1.3, 1.1, 0.8, 0.9, 0.9])[:, None] * np.ones(7)
segment_intensity = np.repeat(scanned, 4, axis=0)
# El margen presión-intensidad por banda: 8 dB a 200 Hz, donde la nave es
# reverberante, y 2 dB por encima.
margin = np.array([8.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0])
segment_levels = 10 * np.log10(segment_intensity / 1e-12) + margin

precise = emission.sound_power_intensity_precision(
    scanned, faces, frequencies=third_octave,
    temperature=28.0, barometric_pressure=94_000.0,
)
annex_b = emission.precision_field_indicators(segment_intensity, segment_levels)
scan_intensity = np.average(scanned, axis=0, weights=faces)  # unequal faces
scan_level = 10 * np.log10(scan_intensity / 1e-12)
annex_c = emission.precision_qualification(
    annex_b, scan_intensity_level_1=scan_level,
    scan_intensity_level_2=scan_level + 0.1,
    pressure_residual_index=15.0,          # Ld = 15 - 10 = 5 dB
    frequencies=third_octave,
)
print(annex_c.qualified.tolist())   # [False, True, True, True, True, True, True]

precise.report(
    "sound_power_intensity_precision.pdf",
    metadata=ReportMetadata(
        client="Planta de fabricación de ejemplo",
        specimen="Grupo hidráulico (de suelo)",
        test_room="Nave con ruido de fondo estacionario",
        instrumentation="Sonda de intensidad p-p clase 1 (IEC 61043), separador de 12 mm",
        temperature=28.0, relative_humidity=40.0, pressure=94.0,
        laboratory="Laboratorio de referencia Phonometry",
        report_id="EXAMPLE-9614-3",
        requirement=98.0,
        notes="Superficie en caja a 0,25 m; cinco superficies parciales barridas dos veces.",
    ),
    indicators=annex_b, criteria=annex_c, residual_index=15.0,
    language="es",
)   # la banda de 200 Hz incumple el criterio 2 y se nombra como omitida del LWA
```

La ficha de ejemplo del repositorio es una determinación más completa de la
misma máquina: dieciséis bandas de tercio de octava de 100 Hz a 3150 Hz sobre
una superficie en caja de cinco caras, con la banda de 100 Hz incumpliendo el
criterio 2 y nombrada como omitida.

## Qué cubre esta guía

La determinación por barrido de ISO 9614-2 (`sound_power_intensity`): las
potencias parciales, los indicadores de campo $F_{pI}$ (presión-intensidad
superficial) y $F_{+/-}$ (potencia parcial negativa), la capacidad dinámica
$L_\mathrm{d}$, el criterio de repetibilidad, el grado alcanzado por banda y el marcado
de no aplicable del apartado 9.2 para bandas con flujo neto entrante, con el
cribado del apartado 10.6 b) del total ponderado A
(`a_weighting_omitted_bands`). La determinación de precisión de ISO 9614-3
(`sound_power_intensity_precision`) con su propio marcado de no aplicable, sus
indicadores de campo del Anexo B (`precision_field_indicators`) y los cinco
criterios de aceptación del Anexo C (`precision_qualification`). Ambos
resultados presentan la ficha de potencia acústica de estilo acreditado
mediante `.report()`, cada uno indicando lo que su propia parte pide que
declare un informe: la hoja de precisión añade los niveles normalizados
$L_{W0}$, la incertidumbre expandida por banda de la Tabla 1, la tabulación de
los indicadores del Anexo B y la omisión del apartado 10 f) 2) de las bandas
que rechazan los criterios del Anexo C.

ISO 9614-1, el método de intensidad de puntos fijos discretos, no es una de
las vías de aquí: solo se reutilizan sus indicadores de campo, y la
determinación de potencia por puntos discretos no está implementada en
absoluto; la [guía de intensidad
acústica](/phonometry/es/devices/emission/intensity/) cubre la sonda y los
indicadores de campo del Anexo A que ambas partes comparten. El sesgo por
diferencias finitas de la sonda y el índice de intensidad residual de presión
son propiedades medidas del instrumento, cubiertas en la misma guía. La
elección entre las seis vías, y la declaración ISO 4871 que un resultado
alimenta, viven en [Potencia
acústica](/phonometry/es/devices/emission/sound-power/).

## Véase también

- [Potencia acústica](/phonometry/es/devices/emission/sound-power/): la elección entre
  las cinco vías de determinación, los grados de precisión y la declaración
  de emisión sonora de ISO 4871.
- [Intensidad acústica (p-p)](/phonometry/es/devices/emission/intensity/): la sonda de
  dos micrófonos, su sesgo por diferencias finitas y los indicadores de
  campo de ISO 9614-1 que sustentan los métodos de barrido.
- [Potencia acústica por métodos de presión (ISO 3744 / ISO 3746 / ISO 3745)](/phonometry/es/devices/emission/sound-power-pressure/):
  las vías de superficie envolvente y anecoica para emplazamientos
  silenciosos.
- [Potencia acústica en cámara reverberante (ISO 3741)](/phonometry/es/devices/emission/sound-power-reverberation/):
  la vía de precisión en campo difuso en una sala de laboratorio
  cualificada.
- [Teoría](/phonometry/es/reference/theory/environment-transport/): las
  derivaciones de los indicadores de campo.
- Referencia de la API: [`emission.sound_power_intensity`](/phonometry/es/reference/api/power/sound-power-intensity/).
- Teoría: [Determinación de la potencia acústica](/phonometry/es/reference/theory/environment-transport/#determinación-de-la-potencia-acústica-iso-374437453746-iso-3741-iso-9614-23): la derivación del barrido de la ISO 9614 y los indicadores de campo que la cualifican.
