A sound calibrator gets its IEC 60942:2017 verdict, by the conformance rule of the IEC TC 29 instrument standards (#872)
* A sound calibrator gets the IEC 60942:2017 verdict, by the conformance rule of the IEC TC 29 instrument standards
metrology.verify_conformance is the rule IEC 60942 and IEC 61672-1 print in
the same sentence: a measured deviation within its acceptance limits and the
laboratory's expanded uncertainty within the maximum permitted, both
inclusive. The verdict object says which of the four outcomes it is, in the
words of Tables E.1 and C.1, draws itself as Figure E.1 does, and has no
truth value.
metrology.verify_sound_calibrator grades a laboratory's record of a class LS,
1 or 2 calibrator (LS/M and 1/M included) against Tables 2 to 7, Tables A.1 to
A.5, the supply-voltage and field-immunity figures printed in the text and the
reduced limits of the abbreviated environmental test. Every table is
published read-only. The static-pressure correction of a pistonphone is an
input from the manufacturer's data, and a calibrator that is not one is
refused any correction.
sensitivity() now screens a calibrator take against the Table 2 limit of the
calibrator's class, read from the published table, instead of a private copy
of the class 1 column.
* The eighteen printed conformance examples of IEC 60942 and IEC 61672-1 are conformance rows, and the calibration guides grade the calibrator itself
Twenty-seven rows in a new calibrators domain of the conformance report: the
eight examples of IEC 60942:2017 Table E.1 and the ten of IEC 61672-1:2013
Table C.1, which had no row before, each reproducing the printed verdict and
the printed reason, the boundary cases included (a deviation equal to its
limit, an uncertainty equal to its maximum, -1,2 dB on the lower limit of
C.1); every cell of Tables 2 to 7, A.1 to A.5 and the limits 5.9.4.2, A.5.5.7
and A.6.4.7 print in their text, dashes and range ends included; and the
verdicts where the tables meet the rule.
The calibration guide gains a section on verifying the calibrator itself,
with its figure, the pistonphone correction and the abbreviated environmental
test; the compliance guide gains the conformance rule of IEC TC 29, drawn on
the eighteen examples as the standards draw them. The sound level meter,
signals and metrology pages stop saying the calibrator goes ungraded and say
instead what is graded and what is not, in English and Spanish, and the
plain-Markdown calibration guide no longer attributes the class 1 tolerance
to Table 1, which lists the classes.
* The calibrator verdict grades the in-band static pressures against Table 2, and its figures and rows follow what the pages print
IEC 60942:2017 A.6.2.4 judges each point of the static-pressure sweep against Table 2 or Table 5, as appropriate for the pressure. A laboratory record now has environmental_level_in_band for the points inside the band of 5.3.2, graded against Table 2 with the Table A.4 maximum, and the abbreviated test leaves them alone. The record also says that the level measured at each end of the supply range goes into level_deviation_db, since 5.3.4 holds it to Table 2 as well.
The overall figure colours a bar from the verdict rather than from its share, so a level that lands on its limit through floating-point arithmetic is no longer drawn red under a title that says it conforms. Its legend sits below the x label at a distance set in points, so it clears the label on a record of one requirement as on one of twenty, and names the red bars and the dashed 100 % line. A fluctuation or a distortion is drawn against its maximum alone, with its own quantity on the axis. The Table E.1 panel of the conformance rule figure draws its limits at 0 dB and 0.25 dB, as Figure E.1 does.
The conformance rows compare the two frequencies of every printed range as well as which of them it includes, and the printed reason of every Table E.1 and C.1 example as well as its verdict. A new row grades class 1 at 2 kHz, where Table 2 and Table 5 part. The tests check the limits and maximum uncertainty every requirement reads, for every class at a frequency in every printed row, against the page transcription.
The guides and the CHANGELOG scope the rule to the IEC TC 29 instrument standards written since 2013, say that the guard band of Annex D lowers the risk of passing an instrument outside its tolerance rather than removing it, count at least three couplings, and describe ISO 8041-1 the right way round.
* The acceptance limit's legend entry is named once
* The calibrator claims say what the verdict grades and that it runs no physical test
* The llms files follow the calibrator claims
Band filters are graded on the effective bandwidth, the summation of outputs and the swept test of IEC 61260-1:2014, and a laboratory's IEC 61260-3 periodic results get their verdict (#879)
* Band filters are graded on every requirement IEC 61260-1 sets on their response, and periodic test results get their IEC 61260-3 verdict
verify_filter_class now grades, for the 2014 edition, the effective
bandwidth deviation of 5.12 and the summation of output signals of 5.16
beside the Table 1 mask, computed the way IEC 61260-2:2016 computes them:
the test frequencies of its Formula (1) (points_per_bandwidth, at least
24), the trapezoidal effective bandwidth of Formula (2) and the energy sum
of each band and its two neighbours of Formula (3). A band's class and the
bank's overall_class are the strictest class met on all three, and
requirements, requirement_class, binding_margin_db and
plot(requirement=...) read each one; the fiche tabulates them under its
plot. A bank with no band that has a neighbour on each side is not graded
on the summation at all.
The decimated octave bank sums its adjacent outputs from -1.16 dB to
+0.94 dB about the input and is class 2 where it read class 1; tones run
through the bank itself read the same sums to within 0.01 dB. Designed
with FilterDesign(resample=False) it is class 1, and so is the
one-third-octave bank as designed. The example fiche uses the full-rate
octave bank.
verify_time_invariance runs the exponential sweep of IEC 61260-2 7.4
through the bank, decimation included, at 2 s and 5 s per decade against
Formula (17) of IEC 61260-1, which swept_band_level computes, with the
Annex A uncertainty in swept_level_uncertainty (with the square the printed
Formula (A.2) leaves off).
verify_filter_periodic grades what a laboratory measured in an
IEC 61260-3:2016 periodic test (FilterPeriodicMeasurements), clause by
clause, by the conformance rule of IEC TC 29 with the maxima of
IEC 61260-1:2014 Annex B; it names the results 5.3 makes unusable and
gives the statement of Clause 14, with the caveat of 1.5 when the pattern
approval is not public. periodic_test_frequencies is Formulas (1) and (2)
for any bandwidth and PERIODIC_TEST_ATTENUATION_LIMITS_DB its Table 1.
verify_conformance accepts an acceptance interval open at one end, for a
stop-band minimum.
* The band-filter tests of IEC 61260-2 and IEC 61260-3 are conformance rows
Thirty-six rows: the fifteen test frequencies of IEC 61260-3:2016
Table C.1 and the derivation of C.2, every cell of its Table 1, the worked
examples its Annexes A and B share with IEC 61260-2:2016 (0.057 dB,
0.115 dB and 0.128 dB; 107.97 dB), and the ten examples of the
conformance rule IEC 61260-1:2014 prints in Table C.1. Formulas (2) and (3)
of IEC 61260-2 print no example and are held to closed forms: an ideal band
has no effective bandwidth deviation and an ideal set sums to its input.
The one-third-octave bank is class 1 on the effective bandwidth, the
summation and the swept test, and its swept deviation equals its effective
bandwidth deviation within 0.01 dB, as Annex G of IEC 61260-1 says it
must.
* The filter guides show the effective bandwidth, the summation, the swept test and a periodic verdict, and three defects of the printed pages are registered
Filter Class Verification gains a section on the effective bandwidth and
the summation of outputs, with the figure of Formula (3) on the two
default banks and why the decimated octave bank is class 2 on it; a
section on the swept test of time-invariant operation; and, in the section
on verifying an instrument, how a periodic test of IEC 61260-3 is graded,
with its table of clauses, limits and maximum uncertainties and the
figure of a verdict held back by one unusable reading. Compliance and
Verification no longer says Parts 2 and 3 are out of reach: the design
verifiers compute what Part 2 computes from a response, and
verify_filter_periodic grades a laboratory's Part 3 results without
running the tests. The fiche example is the octave bank designed at the
full rate. English, Spanish and the docs/ mirror say the same, and the
upgrade guide tells a caller of verify_filter_class what moved.
Registered in the errata, with the pages they were read on: Formula (A.2)
of both parts leaves the square off the coefficient of its frequency
terms, which only the squared form reconciles with the 0.057 dB its own
example prints; IEC 61260-3 B.2.6 ends its averaging 6 s to 7 s after
6.3 Hz where the settings of B.2.2 and B.2.3 give 18 s to 19 s; and
Formula (3) and the words of 7.2.4.3 and of IEC 61260-1 5.16 take the
summation difference in opposite directions.
* A periodic verdict checks that the tests cover the filters and frequencies they must, and a filter figure keeps a failing band in view
verify_filter_periodic now reads the Annex B maximum of a 10.2 mid-band result off the attenuation measured, as clause 13 does, so a filter that has drifted past 2 dB at its mid-band fails instead of being set aside as unusable. It lists in `incomplete` a record that measures fewer than the three filters of 11.3 and 13.1, or leaves out a test frequency 13.4 requires, and does not pass it; a new `linearity_midband_frequencies_hz` names the filter of each 11.7 result, and without the frequency labels `coverage_checked` is false and the statement says the coverage was not checked.
A deviation outside its acceptance interval always reads a share of its limit above 1, also below a stop-band minimum. The effective bandwidth, summation and swept-test figures frame their data as well as their limits, the class figure of a band filtered at the full rate stops at the G² breakpoint of Table 1, a clause figure draws a reading 5.3 forbids using as unusable, and a one-sided interval's legend names one limit. The fiche of a full-rate bank no longer credits a multirate stage it does not have. The printed limits of 5.12.2, 5.14.3 and 5.16, the sign Formula (3) is graded with and the inclusive boundaries of Annex B are held by tests.
* The filter guides say what the verifiers grade and how the default banks class, and the two verification diagrams show it
The README and the filter design docstrings no longer call every bank class 1 under IEC 61260-1:2014: the Table 1 mask is class 1, the one-third-octave bank is class 1 on every requirement, and the decimated octave bank is class 2 on the summation of its outputs and class 1 filtered at the full rate. The guide quotes the full-rate octave bank over its default range (from −0.06 dB to +0.69 dB, 0.11 dB to spare) and the decimated Chebyshev II one, the order paragraph of Filter Banks names the summation as what binds past order 4, the periodic example is the record its figure draws, and a paragraph explains the coverage check. The filter, metrology and signals indexes and the guide one-liners name the effective bandwidth, the summation, the swept test and the periodic grading instead of saying they are not implemented.
The class-check diagram moves the Formula (1) grid, 5.12, 5.16 and the sweep into what is computed on the design, and the verification-regimes diagram adds verify_time_invariance and the verify_filter_periodic arrow into Part 3. The errata entries on Formula (A.2) and Formula (3) record that the consolidated IEC 61260-2:2016+AMD1:2017 prints both unchanged.
* The ISO 9295 Formula (A.5) record keeps its status next to the filter records
* The generated pages follow the layers below
* The errata give the unrounded input uncertainty the A.3.5 example derives, the migration guide names the filter verdict among what changed, and the filter plot labels are named once
* The generated pages follow the layers below
Every verdict reads its pass and fail flags, grades and classes from the values it holds (#949)
A result no longer stores a verdict beside the readings it came from. Sixty-two result classes used to keep the flag, grade or class their function had worked out (`passes`, `complies`, `qualified`, the `*_met` and `*_ok` flags, the advisories, the per-band classes of the IEC 61260-1, IEC 61672-1 and IEC 61043 verdicts, the ISO 9614-2 grade, the ISO/PAS 1996-3 category, the IEC TS 61400-11-2 block status and the rest), so a result built by hand or rewritten with `dataclasses.replace` could hold readings that fail and a flag that says they pass. Each of them is now a read-only property, read from the values the result keeps and the limit the standard prints, and so is any figure that only fed it, such as the rounded level of an RD 1367/2007 period or the acceptance region of a trend test.
The five verify_* returned a dictionary, and two of them had a twin that wrapped it (#758)
* The five verify_* return a result object, and the two twins that wrapped one are gone
Every verifier in the library returns one of the 194 result dataclasses
except these five, which returned a bare dict[str, Any]. Two of them had a
public twin whose only job was to run the verifier and package what it gave
back: filters.filter_class_compliance and emission.intensity_class_compliance.
The verifier now returns the object itself, so there is one door onto each
computation instead of two, and the rows a caller reads come back on a name
rather than on a string key.
verify_filter_class returns the FilterComplianceResult and
verify_intensity_class the IntensityInstrumentComplianceResult that their
twins used to build, with .plot() and the accredited .report() fiche on them
as before. The two twins are gone.
The other three gain a result class of their own: WeightingComplianceResult,
QuasiPeakDynamicsResult and AircraftSystemComplianceResult. Each one pins the
summary it states against the rows under it, because the summary is the
conjunction, the minimum or the strictest class of a column a reader prints
beside it, and a sheet whose box disagrees with its own table is the one
reading a caller cannot correct.
Everything after the argument the call is about is keyword-only:
verify_filter_class took num_points positionally where its twin did not, and
verify_quasi_peak_dynamics took the ballistics second.
* Pin the three new verdicts against the rows under them, and publish the weighting result
* Say keyword-only where the table says it, and name the verifier in the pages that pointed at its twin
* Every class the edition defines has to be on the row, and on the sweep
Find the free-field corrections of a sound level meter on a calibrator, a coupler or an actuator, with their uncertainty and the verdict on it, by IEC 62585 (#880)
* A sound level meter's free-field corrections, their uncertainty and the verdict on them, by IEC 62585
The four measurement models of IEC 62585:2012: the adjustment value at the calibration check frequency fitted over the free-field response (Annex A), and the corrections for a multi-frequency sound calibrator, a comparison coupler and an electrostatic actuator (Formulas (D.7), (E.6) and (F.13)), averaged over the determinations with their range kept. The budget of Table I.1 is built on combine_uncertainty with its 15 components, the clause 6 component below 97 kPa and the Welch-Satterthwaite degrees of freedom, and the expanded uncertainties are verified against the maxima of clauses 9 to 14, with the range over the microphones for clauses 12 to 14. The exact frequencies of Annex H come from Formula (H.1). Every result plots, and the verdict renders the documentation of clause 15 n) and o) as a fiche.
* The IEC 62585 figures and example fiche, drawn by the results' own plot and report
Four figures for the free-field correction guide: the adjustment value of Annex A for a synthetic class 1 meter, its corrections on a calibrator and on an actuator, the budgets of Tables I.2 and I.3, and the clause 12 verdict on the calibrator's corrections, each in both languages and both themes. The example fiche renders that verdict. The descriptors a1 to a4 keep the ind subscript Table I.1 prints in the Spanish figure.
* IEC 62585 is checked against Tables I.2, I.3 and H.1, and three of its printed defects are errata
Fifteen conformance rows: the budgets of Tables I.2 and I.3, the 41 exact frequencies of Table H.1, the maxima of clauses 9 to 14 either side of each boundary, the clause 6 static-pressure component, and the three measurement models against the equations they are derived from. Table I.2 prints k = 2,11 beside its own 29,98 effective degrees of freedom, for which the factor at 95 % is 2,04, so the row pins the value the page's numbers give. Table H.1 prints the exponent of index 31 as 31/80, and Formulas (E.4) to (E.6) exchange the two readings in the coupler that Figure E.1 defines; all three are in the errata register. The module is mapped in the API reference and every new name has its row in the curated table.
* A guide to the free-field corrections of a sound level meter, by IEC 62585
The new guide under Calibration and uncertainty runs the adjustment value of Annex A on a synthetic class 1 meter weighed against the IEC 61672-1 tolerances, its corrections on a multi-frequency calibrator and on an electrostatic actuator, the budgets of Tables I.2 and I.3 with the coverage factor their own degrees of freedom give, and the clause 12 verdict with its fiche, in English, in Spanish and in the plain-Markdown mirror. The IEC 61183 guide now points to it, the guide counts and the indexes carry it, and the changelog says what was added. Grouped decimals in the new prose hold together with narrow no-break spaces, and the maths of the Annex E erratum no longer starts a line with a list marker.
* The IEC 62585 fiche names the clause's subject from the verdict it renders
The basis line read what each clause corrects for from a table of its own that repeated the one the verdict already carries; it now reads the verdict's subject, so the two cannot drift apart.
* The free-field corrections guide shows how each method's readings are taken
A diagram in "How the measurement goes" lays the three substitutions of
IEC 62585 side by side: the meter and the reference microphone in the free
field, then on a sound calibrator (Formula (D.7)), face to face on a
comparison coupler (Formula (E.6), with the labels of Figure E.1) or with an
electrostatic actuator on the meter (Formula (F.13)). The reference
conditions in the English table now read 101.325 kPa.
* A free-field correction's range is taken over its microphones, and its verdict derives the maximum it is judged against
IEC 62585 clauses 12 to 14 judge the range of the corrections measured with three microphones. FreeFieldCorrection now takes the range over the microphones' mean corrections, and the three correction functions take microphones= to say which determinations share one, so the nine determinations of three microphones on three calibrators are not judged on the spread between the calibrators.
CorrectionUncertaintyVerification derives maximum_uncertainty_db from its clause and frequencies instead of storing it, and compares with the rule of the IEC TC 29 conformance verdict, so a value that reaches its maximum through floating-point arithmetic is on it. A CorrectionUncertaintyBudget refuses a combination its own columns do not give.
The Table I.2 row pins the expanded uncertainty the page's own numbers give, 0,121 dB, which tells it apart from the misprinted 0,12(4); the clause 6 component is pinned either side of 3 kHz, and the adjustment value of Annex A gets a closed-form row. The verification axis names the range it also carries, the Spanish fiche keeps the U_max subscript, and the fiche's plot ends at the right margin.
* The IEC 62585 errata state the expanded uncertainty Table I.2's numbers give, and how far the printed (E.6) can be off
The Table I.2 entry now writes the expanded uncertainty from the unrounded factors, 2,0423 times 0,059031 dB, that is 0,121 dB with the guard digit 0,12(1), where it used to multiply the rounded factors. The Formulas (E.4) to (E.6) entry now says that the error of the printed (E.6), read with the labels of Figure E.1, carries the difference of the two channels' absolute sensitivities and is there at every frequency, since the reference channel reads the microphone's output voltage and the method needs no absolute calibration; it reduces to twice the difference of the two pressure responses only when both channels read sound pressure level.
* The free-field corrections guide groups determinations by microphone, and its diagram shows the coupler readings as the standard prints them
The guide shows how nine determinations of three microphones on three calibrators are grouped with microphones=, states the expanded uncertainty of Table I.2 as 0,121 dB, gives the actuator's 80 dB to 105 dB at 1 kHz as clause 14 does, and names what it covers as the calculations of Annexes A, D, E, F, H and I: the corrections of clauses 9 to 11 are judged against their maxima but not computed, which the IEC 61183 pages now say too, and the mirror of that guide links here.
In the diagram L_ind3a and L_ind3b are upright from end to end, as Figure E.1 and Table I.1 print them; (D.7) and (E.6) are marked as the forms that hold with stable sources, the coupler pair may be read together or in turn, and the footer's substitution at one place is said of the free-field pairs only.
* The generated pages follow the layers below
* The reference-microphone label is named once, and the repeatability's degrees of freedom are checked on their own
* The free-field corrections guide, written to the periodic test of IEC 61672 meters, is among the pages a search for IEC 61672-1 must lead with
Find what a sound level meter reads in a field from every direction, by the IEC 61183 free-field and diffuse-field methods (#877)
* A sound level meter's response to sound from every direction, by IEC 61183
metrology.directivity_factor takes the levels a meter indicates at equal
angular steps in two planes, or in four when the reference direction is not
normal to the diaphragm (NOTE 2 of A.6), and returns its directivity factor
by Formula (A.3). metrology.axisymmetric_directivity_factor does the same
from one plane for a rotationally symmetric meter (Formula (A.4)), and
metrology.equal_area_directivity_factor from the 38 equal-area directions of
the note to A.1.8 (Formula (A.5)), whose angles
metrology.equal_area_incidence_angles computes from the construction rather
than from the printed list.
metrology.adjustment_factors gives the weights of Formulas (6), (7), (A.1)
and (A.2) for any angular step that divides 180 degrees and any number of
planes, metrology.largest_element_fraction the largest element of that
division, and metrology.SphereDivisionWarning is raised when it passes the
3 % of A.1.6. metrology.random_incidence_sensitivity applies Formula (1)
band by band, and metrology.diffuse_field_sensitivity the three routes of
Formulas (8) to (11), taking the directivity factor and the
diffuse-to-pressure difference of the reference microphone from
metrology.IEC61183_TABLE_B1 unless it is given others. Every result has
.plot(): the polar response of each plane and the weight of each reading,
the sensitivity levels and the correction against frequency, and the three
terms of the diffuse-field comparison.
The readings at 0 and 180 degrees enter both plane sums of Formula (A.3).
That is what makes the 72 factors of Table A.1 sum to one and an
omnidirectional meter read gamma = 1; counted once, as the paragraph under
the formula could be read, they sum to 0,998097 and every directivity index
comes out 0,008 dB high. The tests hold all ten rows of Table A.1 to their
five decimals, the 2,2 % of A.1.7, the halving of NOTE 2, the convergence
of the sum to the integral of Formula (3) on a cardioid, and every column of
every result as read-only.
* IEC 61183 Annex A is checked against the page, and two of its equal-area angles are errata
Eight conformance rows reproduce what IEC 61183:1994 prints for its
free-field and diffuse-field methods: the adjustment factor of each of the
36 angles of a plane to the five decimals of Table A.1, the same factors
halved for the four planes of NOTE 2 of A.6, the largest of the 70 elements
of 10 degree steps (2,179 % against the "approximately 2,2 %" of A.1.7), the
72 factors summing to one with the poles in both sums of Formula (A.3), an
omnidirectional meter reading 10 lg gamma = 0 dB, the directions of the
equal-area division of the note to A.1.8 and its 2,6 % element, and the 60
cells of Table B.1 that Formulas (10) and (11) take by default.
The note to A.1.8 prints its twenty equal-area angles to 0,1 degree, and two
of them break the list's own symmetry about grazing incidence: every pair of
the list sums to 180,0 degrees except 77,9 + 102,2, and 282,1 mirrors 77,9
where 257,8 mirrors 77,8. The direction that halves each element's area in
polar angle reproduces the other eighteen and gives 77,846 and 282,154
degrees. The entry is in the errata register in English and Spanish, and the
row on the note checks the eighteen and names the two.
* A guide to what a sound level meter reads when sound arrives from every direction
The new page under Calibration and uncertainty runs both methods of
IEC 61183:1994 on a synthetic meter, a microphone whose directivity at each
band is the one Table B.1 prints for an LS2aP/LS2F microphone, on a case
that narrows it in one plane: the directivity factor of Formulas (2) and
(3), the weight each 10 degree reading takes by Table A.1 and why the poles
enter both plane sums, the one-plane and 38-element alternatives with the
two misprinted angles, the random-incidence sensitivity level band by band,
and the diffuse-field comparison with a pressure-calibrated reference, which
returns the level the anechoic measurement gave. The three figures are drawn
by the results' own .plot().
It is registered in the sidebar, the guides index (now 141 guides), the
signal-analysis and calibration overviews in both languages and the docs
index, with its GitHub mirror, and the CHANGELOG says what arrived.
* Annex B of IEC 61183 recommends two reference microphones, and Table B.1 prints the first
The guide, its mirror and the docstrings said Annex B recommends a type
LS2aP/LS2F microphone for the reference of the diffuse-field method. B.1.2
recommends a type LS2aP/LS2F or a type LS2bP, and Table B.1 prints the
characteristics of the first; the text now says both, and which one the
table is for.
* The Spanish IEC 61183 guide takes a title the page head can carry
"Respuesta en incidencia aleatoria y campo difuso (IEC 61183)" ran past the
seventy characters a page title may have once the site name is appended, and
html-validate refused the built page. The guide is now "Incidencia aleatoria
y campo difuso (IEC 61183)", and the guides index and the two overviews that
link it use the same words.
* The diffuse-field figure keeps Formula (8) in the symbols IEC 61183 prints
The Spanish variant of the diffuse-field figure draws the legend entry for the
level difference of Formula (8) exactly as the English one does, with the
subscript D,ref the standard writes. The language gate read ref as an English
word; the label is listed among the strings that stay as they are by design,
with that reason.
* The IEC 61183 guide draws both measurement set-ups, its figures come from the code it prints, and a directivity factor checks itself
Counting the pole readings of Formula (A.3) once puts 10 lg gamma high by -10 lg(1 - gamma K(0) [p(0) + p(180)]): 0,008 dB for an omnidirectional meter and about 0,02 dB at 7 dB. The module notes, the guide and the changelog now say so instead of quoting the omnidirectional figure for every meter, and a test checks the general expression on a directional pattern.
DirectivityFactor refuses a formula other than A.3, A.4 or A.5, a reference level that is not finite and a largest element that is not a fraction of the sphere; the field is named largest_element_fraction. Every refusal names the parameter it is about.
The polar response lays its own figure out with the legend inside, labels its radial scale in dB, and runs the equal-area X-Z curve through the poles it shares with the X-Y plane. The one-plane weights title counts two elements to a reading. G_RI and the diffuse-field reference and difference are drawn with open markers, so the curves stay visible where they coincide.
The guide builds the synthetic meter at every preferred frequency of Table B.1 with a free-field level that rolls off above 10 kHz, so its figure code draws the published figures; it gains a drawing of the anechoic and reverberation-room set-ups with the requirements of each clause. It now says what IEC 61672-1:2013 asks of the random-incidence response (5.5.4, 5.5.5) and what IEC 62585 corrects, and attributes the signal-to-noise ratio to A.2.3.
The Table B.1 conformance row counts the 30 printed cells rather than 60.
* The generated pages follow the layers below
* The guides index counts the random-incidence guide, the IEC 61183 plot labels are named once, and the step check reads as the test it is
Calibrate laboratory standard microphones by reciprocity, in a coupler by IEC 61094-2 and in a free field by IEC 61094-3 (#919)
Three laboratory standard microphones measured in pairs now give their complex sensitivities with no reference microphone: in a closed coupler by IEC 61094-2:2009, and in a free field by IEC 61094-3:2016 read with its corrigendum COR1:2016. Until now the library held only Annex F of IEC 61094-2, the humid air; the primary calibration that air exists for is here in full, in phonometry.metrology, with the coupler impedances of Annexes A, B, C and E, the free-field attenuation of Annex B of IEC 61094-3, the checks of each set-up and the uncertainty budgets keyed by Table 1 of each part. Three printed defects go to the errata register: the radius heading Tables B.1 and B.2 of IEC 61094-2, the factor -j that Formulas (8) and (9) of IEC 61094-3 drop, and a coefficient of the saturation vapour pressure in its Annex B.
Results keep their own copy of the arrays they were given (#939)
np.asarray hands back the very array it is given when that array is already
float64, and so does every validation helper built on it, so a result built
from such an array kept the caller's array, or a view of it: changing that
array afterwards changed a result already computed, and nothing raised. Every
array a function or a method of the library keeps from its arguments is now a
read-only copy of its own, through the private helper read_only_copy, and the
objects that keep arrays to hand out later (SilencerChain, AnpDatabase,
FDTD2D, ElasticFDTD2D, window_metrics) do the same; a Signal keeps a writeable
copy of its samples. The values do not move. scripts/check_array_aliasing.py
(make array-aliasing and a CI job of its own) follows each parameter of every
function of the package to the places an array is kept and fails on one kept
without a copy of its own.
Calibrate laboratory standard microphones by reciprocity, in a coupler by IEC 61094-2 and in a free field by IEC 61094-3 (#919)
Three laboratory standard microphones measured in pairs now give their complex sensitivities with no reference microphone: in a closed coupler by IEC 61094-2:2009, and in a free field by IEC 61094-3:2016 read with its corrigendum COR1:2016. Until now the library held only Annex F of IEC 61094-2, the humid air; the primary calibration that air exists for is here in full, in phonometry.metrology, with the coupler impedances of Annexes A, B, C and E, the free-field attenuation of Annex B of IEC 61094-3, the checks of each set-up and the uncertainty budgets keyed by Table 1 of each part. Three printed defects go to the errata register: the radius heading Tables B.1 and B.2 of IEC 61094-2, the factor -j that Formulas (8) and (9) of IEC 61094-3 drop, and a coefficient of the saturation vapour pressure in its Annex B.
Calibrate laboratory standard microphones by reciprocity, in a coupler by IEC 61094-2 and in a free field by IEC 61094-3 (#919)
Three laboratory standard microphones measured in pairs now give their complex sensitivities with no reference microphone: in a closed coupler by IEC 61094-2:2009, and in a free field by IEC 61094-3:2016 read with its corrigendum COR1:2016. Until now the library held only Annex F of IEC 61094-2, the humid air; the primary calibration that air exists for is here in full, in phonometry.metrology, with the coupler impedances of Annexes A, B, C and E, the free-field attenuation of Annex B of IEC 61094-3, the checks of each set-up and the uncertainty budgets keyed by Table 1 of each part. Three printed defects go to the errata register: the radius heading Tables B.1 and B.2 of IEC 61094-2, the factor -j that Formulas (8) and (9) of IEC 61094-3 drop, and a coefficient of the saturation vapour pressure in its Annex B.
The ISO 1683 reference values are one published table, and every level reads it (#863)
* The ISO 1683 reference values are one published table that every level reads
phonometry.metrology.ISO1683_REFERENCE_VALUES holds Tables 1 to 3 of ISO 1683:2015 (sounds in gases, sounds in liquids, vibratory quantities) and the 50 nm/s that note b of Table 3 allows for structure-borne sound, keyed by medium and quantity. Each row is a frozen ReferenceValue with its quantity, medium, SI value and unit, the value as the table prints it, and the table it comes from.
The 20 µPa that was typed out seventeen times across the package, the 1 pW typed seven times and the other copies of the table now read it instead. _P0 no longer means a pressure in some modules and a power in others: the sound power references are _W0. A reference that deliberately comes from another document keeps its value and now names that document beside it: the 50 nm/s of ISO/TS 7849-1 and ISO 9611, the squared 20 µPa of ISO 532-1 and ISO 226, the 1 N of ISO 16283-2, the 1 kJ of DIN 4150-1, the kilopascals of ECAC Doc 29 and the inlet pressure of IEC 60534-8-4.
Every number the library returns is unchanged: the values the table stores are the same floats the copies held.
* A reference value in the package either reads the ISO 1683 table or names its source
scripts/check_reference_values.py walks the source tree and fails on a reference value that repeats a value of the table instead of reading it, and on one that differs from it without naming, in the comment above it or on its line, the document it comes from. What is a reference is decided by the name (a reference marker together with a quantity ISO 1683 lists, spelled out or as its symbol), and the places a name binds a number are all read: assignments at any scope, parameter defaults and keyword arguments. The bare 2e-05 and its square are caught wherever they stand, with a keyed exemption for the one place 2e-05 is a gravity gradient.
Run over the tree as it was before the table, it reports forty-three declarations; run over this one, none. It has a make target, reference-values, and a job of its own in CI.
* Every printed ISO 1683 reference value is a conformance row
Twenty rows join Levels & dosimetry: the eighteen values of Tables 1 to 3 and the 50 nm/s of note b of Table 3, each compared exactly with the published table (the float the library divides by has to be the float the printed decimal is), and note b of Table 2, the 10 lg(20²/1²) dB between a level re 1 µPa and the same pressure re 20 µPa, run through underwater.in_air_to_underwater_spl against the printed "approximately 26,0 dB". The joule, the newton and the pascal squared second join the unit vocabulary of the report.
The 1261 rows already in the report are unchanged to the last digit.
* The levels guide says which reference each level is counted from
The integrated-levels guide, in English, in Spanish and in its docs/ mirror, answers the question a reader of a level asks first: the ISO 1683:2015 reference of every quantity for gases, liquids and vibration, the 26.0 dB between the air and water pressure references, the modules that count from another value and why, and how to read the table from metrology.ISO1683_REFERENCE_VALUES. ISO 1683:2015 joins the page's references, the API reference gains its metrology.reference_values page, and the changelog records the table, the guard and the new conformance rows.
* A reference value typed wrong under its old comment now fails the check
scripts/check_reference_values.py counted any standard named in the comment beside a value as the document that value comes from, so a pointer replaced by a mistyped number kept its "(ISO 1683:2015 Table 1)" comment and passed. A value that differs from the table now has to name a document other than ISO 1683 itself and be listed in DIFFERENT_REFERENCES with the number that document prints, so a typo in one of the twelve deliberate departures fails too.
The check also reads the notation the standards print for the vibratory references (v0, a0, F0, xi0) and holds it to the values of the table only, sees a literal through float() or np.float64(), through tuple unpacking and through the string keys of a dict, and catches a value of the table written into the arithmetic of a level: the divisor inside a logarithm and the factor of an antilogarithm, which is where the two references that used to be written inline stood. A sentence that starts "In 2019" no longer reads as a citation, and a standard needs a number of two digits.
Run over the tree as it was before the table, it now reports forty-five places. On a copy of this tree with sixteen defects put back (old literals, pointers replaced by a wrong number with their comments left, a listed departure mistyped, a citation removed) it reports sixteen. On this tree, none. The tests put a wrong number back in seven places of the real modules, and removing any one branch of the check makes at least one test fail.
* Each reference value names the document it is actually read from
DIN 45672-2:1995-07 defines the 5·10⁻⁸ m/s of its velocity level itself, in Formula (2) on page 4, and names DIN EN 21683 only for the acceleration reference of Formula (3). The railway module and the ISO 1683 table said the velocity reference came from ISO 1683:1983 through DIN EN 21683; both now cite Formula (2) and say it is the 50 nm/s that note b of ISO 1683:2015 Table 3 says is also used for structure-borne sound.
The reference of the structure-borne power level of EN 15657 and of the power input into a floating floor is the 10⁻¹² W of EN 15657:2018 clause 7.1 and of Hopkins (2007) Table 2.1. ISO 1683 lists no structure-borne power, so the comments say where the number comes from and that it is read from the airborne 1 pW of Table 1.
The roex slope of the Moore and Glasberg loudness models is called p51, so _P_REF means a reference pressure everywhere in the package, and the wind-noise anchor of the ambient-noise model takes its 20 µPa to 1 µPa step from the table. Every number the library returns is unchanged; the anchor is the same float, 51.020599913279625.
* The guides say where each reference value comes from
The railway vibration guide, in English, in Spanish and in its docs/ mirror, no longer says DIN 45672-2 takes its 5·10⁻⁸ m/s from ISO 1683:1983: the standard defines it in Formula (2) without naming a source, and it is the 50 nm/s of note b of ISO 1683:2015 Table 3, 34 dB from the 1 nm/s of its main row. The integrated-levels guide and the curated API table tell the same story.
The underwater acoustics guide, where a reader meets the 1 µPa and 20 µPa references and the step between them, now says both are sound pressures of ISO 1683:2015 and points at metrology.ISO1683_REFERENCE_VALUES, with ISO 1683:2015 among its references. The metrology row of the namespace table lists the reference values, and the changelog entry describes the check as it now stands.
* Each ISO 1683 table name is spelled once in the reference-value module
The table labels are module constants, and the reference-value check resolves
a row field that names a module-level literal, so it still reads the table
from the source.
A sound calibrator gets its IEC 60942:2017 verdict, by the conformance rule of the IEC TC 29 instrument standards (#872)
* A sound calibrator gets the IEC 60942:2017 verdict, by the conformance rule of the IEC TC 29 instrument standards
metrology.verify_conformance is the rule IEC 60942 and IEC 61672-1 print in
the same sentence: a measured deviation within its acceptance limits and the
laboratory's expanded uncertainty within the maximum permitted, both
inclusive. The verdict object says which of the four outcomes it is, in the
words of Tables E.1 and C.1, draws itself as Figure E.1 does, and has no
truth value.
metrology.verify_sound_calibrator grades a laboratory's record of a class LS,
1 or 2 calibrator (LS/M and 1/M included) against Tables 2 to 7, Tables A.1 to
A.5, the supply-voltage and field-immunity figures printed in the text and the
reduced limits of the abbreviated environmental test. Every table is
published read-only. The static-pressure correction of a pistonphone is an
input from the manufacturer's data, and a calibrator that is not one is
refused any correction.
sensitivity() now screens a calibrator take against the Table 2 limit of the
calibrator's class, read from the published table, instead of a private copy
of the class 1 column.
* The eighteen printed conformance examples of IEC 60942 and IEC 61672-1 are conformance rows, and the calibration guides grade the calibrator itself
Twenty-seven rows in a new calibrators domain of the conformance report: the
eight examples of IEC 60942:2017 Table E.1 and the ten of IEC 61672-1:2013
Table C.1, which had no row before, each reproducing the printed verdict and
the printed reason, the boundary cases included (a deviation equal to its
limit, an uncertainty equal to its maximum, -1,2 dB on the lower limit of
C.1); every cell of Tables 2 to 7, A.1 to A.5 and the limits 5.9.4.2, A.5.5.7
and A.6.4.7 print in their text, dashes and range ends included; and the
verdicts where the tables meet the rule.
The calibration guide gains a section on verifying the calibrator itself,
with its figure, the pistonphone correction and the abbreviated environmental
test; the compliance guide gains the conformance rule of IEC TC 29, drawn on
the eighteen examples as the standards draw them. The sound level meter,
signals and metrology pages stop saying the calibrator goes ungraded and say
instead what is graded and what is not, in English and Spanish, and the
plain-Markdown calibration guide no longer attributes the class 1 tolerance
to Table 1, which lists the classes.
* The calibrator verdict grades the in-band static pressures against Table 2, and its figures and rows follow what the pages print
IEC 60942:2017 A.6.2.4 judges each point of the static-pressure sweep against Table 2 or Table 5, as appropriate for the pressure. A laboratory record now has environmental_level_in_band for the points inside the band of 5.3.2, graded against Table 2 with the Table A.4 maximum, and the abbreviated test leaves them alone. The record also says that the level measured at each end of the supply range goes into level_deviation_db, since 5.3.4 holds it to Table 2 as well.
The overall figure colours a bar from the verdict rather than from its share, so a level that lands on its limit through floating-point arithmetic is no longer drawn red under a title that says it conforms. Its legend sits below the x label at a distance set in points, so it clears the label on a record of one requirement as on one of twenty, and names the red bars and the dashed 100 % line. A fluctuation or a distortion is drawn against its maximum alone, with its own quantity on the axis. The Table E.1 panel of the conformance rule figure draws its limits at 0 dB and 0.25 dB, as Figure E.1 does.
The conformance rows compare the two frequencies of every printed range as well as which of them it includes, and the printed reason of every Table E.1 and C.1 example as well as its verdict. A new row grades class 1 at 2 kHz, where Table 2 and Table 5 part. The tests check the limits and maximum uncertainty every requirement reads, for every class at a frequency in every printed row, against the page transcription.
The guides and the CHANGELOG scope the rule to the IEC TC 29 instrument standards written since 2013, say that the guard band of Annex D lowers the risk of passing an instrument outside its tolerance rather than removing it, count at least three couplings, and describe ISO 8041-1 the right way round.
* The acceptance limit's legend entry is named once
* The calibrator claims say what the verdict grades and that it runs no physical test
* The llms files follow the calibrator claims