# acmap 0.6.1 and noise-barrier-calc 0.9.3: seven corrections that change the numbers

> A code review by a qualified acoustician found seven wrong properties in the engine of both tools: A_bar added on top of the ground effect, K_met given the wrong distance, non-conservative source discretisation, unnormalised spectra.

Published: 2026-08-26
Category: acustica
Tag: acmap, noise-barrier-calc, iso-9613-2, releases, diffraction, openstreetmap, open-source

Page: <https://www.stline.it/en/blog/aggiornamento-motore-acustico-agosto-2026/>

---

A code review by a qualified acoustician went through the engine of [acmap](https://github.com/stefanofante/acmap) and [noise-barrier-calc](https://github.com/stefanofante/noise-barrier-calc) property by property, not just the interface. Seven corrections came out of it, and they are not about robustness: they **change the results**. If you ran either tool before these releases, the numbers you got then are not the numbers you get now.

Versions: **acmap v0.6.1**, **noise-barrier-calc v0.9.3**. Both public under the Apache 2.0 licence.

## The correction that weighs most: A_bar is not D_z

Both engines computed the receiver level by subtracting *both* the ground attenuation A<sub>gr</sub> *and* the diffraction loss D<sub>z</sub>. That is wrong, and the reason is physical before it is normative: a screen that breaks the line of sight breaks the ground-reflected path **as well**. Adding the two effects counts twice an attenuation that happens once.

ISO 9613-2 §7.4 sets A<sub>bar</sub> = D<sub>z</sub> − A<sub>gr</sub> for over-the-top diffraction when A<sub>gr</sub> > 0, so that the net is D<sub>z</sub>: the screen **replaces** the ground effect, it does not add to it.

How much it weighs. In the barrier calculation a screen's insertion loss was overestimated by exactly A<sub>gr</sub>, up to about **4.6 dB** over absorbing ground at 500 m. In acmap the effect showed up on the acoustic shadows of buildings, which came out deeper than they should by the same amount. On a compliance calculation those are decibels that move a conclusion.

Lateral paths keep A<sub>bar</sub> = D<sub>z</sub>, and the three-path combination of §7.4.4 now works on A<sub>bar</sub> rather than on raw D<sub>z</sub>.

## K_met given the wrong distance

In the meteorological correction, `d_sr` is documented as the **screen-to-receiver** distance. The application instead passed the total source-to-receiver distance, and did so in all three places where the calculation happens: buildings on the grid, barrier on the grid, manual receivers. The correct distance, `d_br`, was already computed a few lines above and discarded.

## Non-conservative source discretisation

A line or area source is discretised into points, and the power has to be distributed among them so that the sum adds up. It did not.

**Line source**: each point received the sampling step, whose sum exceeds the real length of the source. The error is small over long stretches — about **+0.11 dB over 200 m** — and large over short ones, **+3 dB over 5 m**, that is the case of a short source modelled as a line. The weight is now real length divided by number of points.

**Area source**: each cell received step², while fixed-step sampling left out the edge band. A 15×15 m area at a 10 m step produced a 100 m² point instead of 225, that is **−3.5 dB**; and a rectangle smaller than the step produced **no** point at all — the source was not there. The discretisation function now generates nx·ny uniform cells covering the rectangle exactly, and the weight is real area divided by number of cells.

## Source spectra normalised

The spectrum presets (urban traffic, motorway, plant, and so on) are defined as per-band offsets relative to the overall level. Those offsets did not sum to 0 dB in energy, so the total level departed from the L<sub>w</sub> that had been set — up to **+1.36 dB** on the motorway preset in the barrier calculation, about **+1.2 dB** in acmap — and, worse, changing preset at equal L<sub>w</sub> also changed the total source power. A comparison between two scenarios with the same declared power was not comparing the same power.

The spectral shapes are unchanged: they are normalised before use by subtracting the shape total from every band, so the relative differences between bands are identical to before. In acmap the band label in the code comments was also corrected, as it did not match the resolution actually used.

## Standards attributions put right

Three documentation entries stated things that were not true, and on a technical tool that is a defect like any other.

- The README and technical note still described **ISO 9613-2:1996 as the default method**, while the code implements the 2024 edition with lateral diffraction. The third mode is now declared "legacy 1996" and **not canonical**, because it omits one term of K<sub>met</sub>.
- The **Maekawa** formula was placed alongside §7.4 of ISO 9613-2: they are two different things. The one implemented is the analytic approximation (Tatge parametrisation) of the 1968 experimental curve, not the screening method of the standard.
- The **ground effect** was given as "general formula with G factor (§7.3.2)". It is in fact a simplified broadband model of ours; the standard's simplified method is defined for A-weighted levels.

## What remains as a guard

The 64 frozen numerical values in the repository still pass identically, because they test the diffraction function, which was not touched: the corrections sit upstream and downstream of it. All 23 API symbols the application uses are present. The four corrected properties have a dedicated guard of ten tests in the site repository, where the implementation with unit tests lives.

On the data-acquisition side, acmap v0.6.0 of 24 August had already fixed two defects that bear on the same calculations: buildings mapped as **multipolygons** were downloaded and silently discarded — 129 relations out of 1365 elements on a real response for central Treviso, close to one building in ten — and the height chain was too short, with a flat 9 m default that on that same bounding box applied to 99.4 % of buildings, including 112 churches and 38 sheds.

## If you have earlier results

They need re-running. Corrections 1 and 2 lower the computed attenuation behind a screen, 3 and 4 shift the source level: none of the four is an adjustment below the threshold of relevance. These remain demonstrative tools, with the perimeter declared in their wikis — [acmap](/en/wiki/acmap/), [noise-barrier-calc](/en/wiki/noise-barrier-calc/) — and a document that carries a signature requires surveyed geometry, a model appropriate to the required methodology, and the responsibility of a qualified acoustician.

The tools run in the browser: [acoustic map](/en/tools/acoustic-map/) and [barrier calculation](/en/tools/barrier-calculator/).
