Chronaxis用户手册English
本页目录

chronaxis.core.calculation_output_reference

源码基线:8904c2f744951857659abd40aaa3535d57faf53c

1"""将一个已归约的数值换到目标单位,保留空值和数值质量。23输入为标量归约结果、原类型和编译期转换;输出数值及质量标志。4复用参考仿射核,在归约结束后只换算一次,不重算样本,不读写文件。5"""67from .affine import affine_reference8from .numeric import ScalarValue9from .types import SignalDType as D, QualityFlag as Q101112def convert_result_reference(value, input_dtype, conversion):13    """以参考数值核换算单个非空结果,合法温度抵消为零保持有效。1415    参数: value为int/float或None;input_dtype为原数值类型;conversion为单位描述符。16    返回: (数值或None, QualityFlag),失败不把结果当成正常零。17    异常: 非法模型或系数错误传播,数值范围错误由质量表示。18    """19    # 无样本的空值不能因为有温度偏移而产生数值。20    if value is None:21        return None, Q.NONE22    if conversion.factor == 1 and conversion.offset == 0:23        return value, Q.NONE24    dtype = D.FLOAT64 if type(value) is float else input_dtype25    converted = affine_reference(ScalarValue(value, dtype), conversion.factor,26                                 conversion.offset, conversion.dtype(dtype))27    return converted.value if converted.valid else None, converted.quality28
Chronaxis 用户手册 · 离线阅读