How to convert Celsius/Fahrenheit/Kelvin temperatures in Python using UliEngineering
In this example, we’ll use the UliEngineering library to convert between the three most commonly used units of temperature: Celsius (°C
), Fahrenheit (°F
) and Kelvin (K
)
In order to install UliEngineering (a Python 3 library) run:
sudo pip3 install -U UliEngineering
We can now use the following functions from the UliEngineering.Physics.Temperature
package to convert between the units of temperature:
celsius_to_kelvin(temperature)
kelvin_to_celsius(temperature)
fahrenheit_to_kelvin(temperature)
fahrenheit_to_celsius(temperature)
Tip: You can pass both numbers (like 120
) or strings (like 120 °C
or 0.01 °F
) to most UliEngineering functions. SI prefixes like k
and m
are automatically decoded.
Example:
from UliEngineering.EngineerIO import auto_print
from UliEngineering.Physics.Temperature import *
# Convert to celsius and store in variable
temp = fahrenheit_to_celsius("120 °F") # temp = 48.88888888888897
# Automatically format value & print. Prints "48.9 °C"
auto_print(fahrenheit_to_celsius, "120 °F")
Additionally, UliEngineering provides normalize_temperature_celsius(temp, default_unit="°C")
which takes a string and automatically recognizes the unit (if there is no unit given, the default_unit
is assumed).
Examples:
normalize_temperature_celsius("120 °C") == 120.0
normalize_temperature_celsius("120") == 120.0
normalize_temperature_celsius(120) == 120.0
normalize_temperature_celsius("120 °F") == 48.88888888888897
normalize_temperature_celsius("120 K") == -153.14999999999998
auto_print(normalize_temperature_celsius, "120 K")
prints-153.15 °C
Note that while °K
is recognized by UliEngineering’s functions, K
is correctly used without a degree symbol.
Also there is normalize_temperature(temp, default_unit="°C")
which is equivalent to normalize_temperature_celsius()
except it returns the temperature in Kelvin instead of degrees Celsius.