Cable thermal model
Cable Thermal Model is a physical model which can be used to calculate cable temperature profiles in situations with dynamic profiles for loads, ambient temperature, soil properties. The model uses an implicit Euler finite difference approach to discretize the heat equation. Moreover, it relies on the NEN-IEC norms for cable ratings. Cable Thermal Model supports different bonding types, circuit types and environments in soil as well as in air.
Getting started
System Requirements
- Python Version: Python 3.11 or higher
- Operating System: Windows, Linux, or macOS
- Package Manager: uv
Installation
For Users
Installation via pip
Install the package from PyPI:
pip install cable-thermal-model
Installation via uv (Recommended)
For better dependency management, use uv:
Adding to an Existing uv Project:
uv add cable-thermal-model
Creating a New uv Project:
If you're starting from scratch, first create a new uv project:
# Create a new uv project
uv init my-cable-thermal-model
cd my-cable-thermal-model
# Add cable-thermal-model
uv add cable-thermal-model
# Install the project dependencies
uv sync
For Developers
If you plan to contribute to the Cable Thermal Model, follow these steps to set up your development environment:
1. Clone the Repository
git clone https://github.com/alliander-opensource/cable-thermal-model
cd cable-thermal-model
2. Install Dependencies with uv
We recommend using uv for development:
# Install all dependencies including development tools
uv sync --group dev
3. Enable Pre-commit Hooks
Pre-commit hooks ensure code quality and proper licensing headers:
# Install pre-commit hooks
pre-commit install --install-hooks
The reuse pre-commit hook ensures that all files have proper copyright headers (MPL-2.0 license).
Verifying Your Installation
After installation, verify that the package is correctly installed by importing some of the main classes:
from cable_thermal_model import (
CircuitType,
BondingType,
StaticEnvSoil,
StaticEnvAir,
ModelFactory,
CableKey
)
# Check the installed version
from cable_thermal_model import __version__
print(f"Cable Thermal Model version: {__version__}")
If the import succeeds without errors, your installation is complete!
Documentation
For more information regarding the model, technical documentation and working examples, please visit the documentation:
Metadata
Release files for cable-thermal-model 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cable_thermal_model-2.0.0.tar.gz | 83.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cable_thermal_model-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 198.0 kB
Release files / cable_thermal_model-2.0.0.tar.gz
| Download URL | cable_thermal_model-2.0.0.tar.gz |
|---|---|
| Size | 83.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b934fadbccbadf49674b13ab4a03766bfea7081a0dc585053d2736840d8c1660
|
|
BLAKE2b-256 checksum How to use checksums |
26744e69298bbffae0a7728eb4a5236ed92dfc20a36d3dbd469ff56f0444c52d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / cable_thermal_model-2.0.0-py3-none-any.whl
| Download URL | cable_thermal_model-2.0.0-py3-none-any.whl |
|---|---|
| Size | 114.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73d01b69f6906b74e5dc04f7a0c4cdc99bb2095f5e96cc3bbdcc779c15ccca30
|
|
BLAKE2b-256 checksum How to use checksums |
7c68b34882bc0b6ffc9fcfbe6b11256f65984680a884f5f0ee02c23206a07952
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|