Skip to main content

Cable thermal model

Quality Gate Status Code Smells Coverage Duplicated Lines (%) Maintainability Rating

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:

https://alliander-opensource.github.io/cable-thermal-model/

Metadata

Release files for cable-thermal-model 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cable-thermal-model 2.1.0
File Size Uploaded
cable_thermal_model-2.1.0.tar.gz 83.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cable-thermal-model 2.1.0
File Interpreter ABI Platform
cable_thermal_model-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 197.9 kB

Release files / cable_thermal_model-2.1.0.tar.gz

Download URL cable_thermal_model-2.1.0.tar.gz
Size 83.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8b5b58eb67a69ecfdc345b9982d87fb65229bb0eede97b87c36910a24e704582
BLAKE2b-256 checksum
How to use checksums
d8ca45ae5f2c63cab8c8c17bb72c3831a4d4fff6c37fde706d1d2a8072e76471
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.1.0-py3-none-any.whl

Download URL cable_thermal_model-2.1.0-py3-none-any.whl
Size 114.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
913fdddadac5641ef1dcf683f457e0d0788f86dab407cdd45f0f6fcd1a325e32
BLAKE2b-256 checksum
How to use checksums
a8b9061f0f8f2286d1e56c2749a4597971862c8ef72c6c841dd12e2dbbbf0c86
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 history Release notifications | RSS feed

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

This release

2.1.0 This release

2 release files

2.0.0

2 release files

1.15.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page