Skip to main content
Glama
dfieser

io.github.dfieser/thermocouple-its90

by dfieser

thermocouple-its90

NIST ITS-90 thermocouple conversion for Python: voltage to temperature and temperature to voltage for all eight letter-designated types (B, E, J, K, N, R, S, T), with cold-junction compensation and Seebeck coefficients. The test suite verifies every one of the 12,026 tabulated points of the NIST reference tables on every run.

Tests PyPI Python License: MIT DOI

Pure standard library, no dependencies, fully typed. A browser version of this engine runs as a free online thermocouple calculator, vendored from this repository on every release.

Install

pip install thermocouple-its90

Related MCP server: mcp-units

Convert thermocouple millivolts to temperature

from thermocouple_its90 import TypeK

TypeK.emf(300.0)          # 12.209  (mV at 300 C, 0 C reference: the table value)
TypeK.temperature(12.209) # 300.0   (C, ice-bath reference)
TypeK.seebeck(300.0)      # 0.0416  (mV per C)
TypeK.range               # (-270.0, 1372.0)

Cold-junction compensation

A thermocouple measures the difference between its junctions, and the reference tables assume the cold junction sits at 0 C. If your meter's terminals are at room temperature, a direct table lookup is wrong:

from thermocouple_its90 import TypeK

# Meter reads 4.096 mV, terminals at 25 C:
TypeK.temperature(4.096)                  # 100.0 C  <- naive lookup, wrong
TypeK.temperature(4.096, reference=25.0)  # 124.3 C  <- the actual answer

All eight types work the same way:

from thermocouple_its90 import get, letters

letters()                       # ['B', 'E', 'J', 'K', 'N', 'R', 'S', 'T']
get("s").emf(1400.0)            # 14.373 mV
get("t").temperature(-4.648)    # -149.98 C (cryogenic ranges included)

Accuracy, verified rather than asserted

  • The forward reference functions reproduce all 12,026 one-degree points of the NIST reference tables within their 0.001 mV print rounding. The full comparison runs in CI on every push (tests/test_full_tables.py).

  • Inversion seeds with the published ITS-90 inverse polynomials and refines by Newton iteration on the exact forward function. Round trips agree to microdegrees instead of the inverse polynomials' 0.02 to 0.06 C error bands.

  • Types K, E and T invert over their full cryogenic ranges (to -270 C), below where the published inverse polynomials stop.

  • Type B is handled with its physics: its EMF is non-monotonic near room temperature, so inversion below 0.291 mV (about 250 C) is refused with an explanation instead of returning one of two possible answers.

MCP server for AI agents

Language models mis-remember thermocouple polynomials. The package ships a Model Context Protocol server so agents call the verified implementation instead:

pip install "thermocouple-its90[mcp]"
claude mcp add thermocouple -- thermocouple-its90-mcp

Tools: thermocouple_to_temperature, thermocouple_to_emf, thermocouple_types.

Data provenance and licensing

Coefficients were machine-parsed, never hand-typed, from the NIST ITS-90 Thermocouple Database (SRD 60, https://its90.nist.gov/). The database reproduces NIST Monograph 175 (Burns, Scroger, Strouse, Croarkin, and Guthrie, 1993), a United States government publication not subject to copyright. The canonical dataset lives in data/its90.json; _data.py is generated from it and CI fails if they drift. Code is MIT licensed.

Citation

If this library is useful in published work, please cite it via the concept DOI https://doi.org/10.5281/zenodo.22036393, which always resolves to the latest release (see CITATION.cff). Please also cite the underlying reference: Burns, G. W., Scroger, M. G., Strouse, G. F., Croarkin, M. C., & Guthrie, W. F. (1993). Temperature-electromotive force reference functions and tables for the letter-designated thermocouple types based on the ITS-90 (NIST Monograph 175). NIST.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for converting cooking measurements (volume, weight, temperature) between common units like ml, cup, g, oz, and Celsius/Fahrenheit.
    3
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server for controlling lab instruments (oscilloscopes, signal generators, etc.) via standardized interfaces like USBTMC, RS-232, and LAN.
    100
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    This MCP server enables AI clients to calculate the boiling temperature of water at a given absolute pressure using the IAPWS-IF97 standard, separating natural-language reasoning from authoritative scientific computation.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dfieser/thermocouple-its90'

If you have feedback or need assistance with the MCP directory API, please join our Discord server