Temperature uncertainty budgets
temperature_uncertainty_budget() combines the propagated resistance
contribution with additional independent components that are already expressed
as standard uncertainties in °C.
The result remains inspectable rather than collapsing every contribution into one unexplained number.
Example with a named sensor contribution
from rtd_sensor import pt100, tolerance, uncertainty
class_a_limit = tolerance.thermometer_tolerance_c(
100.0,
tolerance_class="A",
construction="wire_wound",
)
# This rectangular distribution is an explicit user assumption.
sensor_u = uncertainty.standard_uncertainty_from_bound(
class_a_limit,
distribution="rectangular",
)
sensor_component = uncertainty.TemperatureUncertaintyComponent(
name="Sensor class limit",
standard_uncertainty_c=sensor_u,
evaluation_method="B",
source="IEC 60751 Class A limit modeled as rectangular",
)
budget = uncertainty.temperature_uncertainty_budget(
pt100.celsius_to_resistance(100.0),
0.01,
model=pt100,
additional_components=(sensor_component,),
coverage_factor=2.0,
)
print(budget.combined_standard_uncertainty_c)
print(budget.expanded_uncertainty_c)
What a component contains
TemperatureUncertaintyComponent stores:
- a human-readable
name; standard_uncertainty_c;- optional Type A/Type B evaluation method;
- optional source; and
- optional note.
The optional fields provide provenance only. All supplied numerical components must already be standard uncertainties in °C.
What the budget contains
TemperatureUncertaintyBudget retains the resistance propagation result,
additional named components, combined standard uncertainty, and—if requested—the
coverage factor and expanded uncertainty.
Its temperature_c property reports the nominal converted temperature from the
resistance contribution.
Independence assumption
The current budget combines components as uncorrelated terms. It does not
automatically ingest fitted-parameter covariance, effective degrees of freedom,
or Monte Carlo results. Fitted-parameter covariance can be propagated separately
into resistance uncertainty with propagate_fit_covariance_to_resistance() or
into first-order inferred-temperature uncertainty with
propagate_fit_covariance_to_temperature(), but whether that contribution is
independent of the rest of a particular measurement budget is a property of the
actual calibration and measurement process.
If two uncertainty sources are materially correlated, do not treat this helper as if it had modeled that covariance.