Skip to main content

Library for computing line ampacity ratings for overhead lines

Project description

Overview

A package containing functionality to compute ampacity line ratings for overhead lines. Currently, the package only contains equations from CIGRE TB 601.

Installation

pip install linerate

Documentation

This library is split into four main parts:

  1. The equations module, which contains one pure function for each equation in CIGRE TB 601,
  2. the types module, which contains datatypes for conductors, weather parameters and spans,
  3. the model module, which contains a wrapper class Cigre601 to easily compute the ampacity and conductor temperature based on a Span and Weather instance,
  4. and the solver module, which contains a vectorized bisection solver for estimating the steady state ampacity and temperature of a conductor.

A typical user of this software package will only use the types and model module, and the model module will then use functions from equations and solver to estimate the conductor temperature and ampacity. However, to understand the parameters, it may be useful to look at the functions in the equations module, as we have taken care to ensure that the argument names stay consistent.

Below, we see an example of how to compute the conductor temperature based on Example B on page 79-81 in CIGRE TB 601.

import numpy as np
import linerate


conductor = linerate.Conductor(
    core_diameter=10.4e-3,
    conductor_diameter=28.1e-3,
    outer_layer_strand_diameter=2.2e-3,
    emissivity=0.9,
    solar_absorptivity=0.9,
    temperature1=25,
    temperature2=75,
    resistance_at_temperature1=7.283e-5,
    resistance_at_temperature2=8.688e-5,
    aluminium_cross_section_area=float("nan"),  # No core magnetisation loss
    constant_magnetic_effect=1,
    current_density_proportional_magnetic_effect=0,
    max_magnetic_core_relative_resistance_increase=1,
)


start_tower = linerate.Tower(latitude=50 - 0.0045, longitude=0, altitude=500 - 88)
end_tower = linerate.Tower(latitude=50 + 0.0045, longitude=0, altitude=500 + 88)
span = linerate.Span(
    conductor=conductor,
    start_tower=start_tower,
    end_tower=end_tower,
    ground_albedo=0.15,
    num_conductors=1,
)


weather = linerate.Weather(
    air_temperature=20,
    wind_direction=np.radians(80),  # Conductor azimuth is 0, so angle of attack is 80
    wind_speed=1.66,
    clearness_ratio=0.5,
)


time_of_measurement = np.datetime64("2016-10-03 14:00")
max_conductor_temperature = 100
current_load = 1000

model = linerate.Cigre601(span, weather, time_of_measurement)
conductor_rating = model.compute_steady_state_ampacity(max_conductor_temperature)
print(f"The span has a steady-state ampacity rating of {conductor_rating:.0f} A if the maximum temperature is {max_conductor_temperature} °C")
conductor_temperature = model.compute_conductor_temperature(current_load)
print(f"The conductor has a temperature of {conductor_temperature:.0f} °C when operated at {current_load} A")

Transient state solver

There is currently no transient solver or short time thermal rating solver, but that is on the roadmap.

Development

Dependencies for the project are managed with poetry. To install all dependencies run:

poetry install

Remember that when developing a library it is not recommended to commit the poetry.lock file.

Generate docs

To generate docs locally:

  • Install required dependencies with poetry install --with docs.
  • Generate docs with poetry run make html in the docs folder.

Release new version

Press the "Draft new release" button on the Releases page. Choose or create an appropriate tag, e.g. 1.2.3. Press "Generate release notes" to generate release notes. Edit Release notes if necessary and press "Publish release". This causes the publish workflow to run, which publishes the package to PyPI and generates docs on Github pages.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linerate-1.2.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

linerate-1.2.0-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

Details for the file linerate-1.2.0.tar.gz.

File metadata

  • Download URL: linerate-1.2.0.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for linerate-1.2.0.tar.gz
Algorithm Hash digest
SHA256 aa0ab12a1e232c76b538e11b013854a9c2d8e1f9476d7e55873ff5d8510ea385
MD5 972c6ac31683cb84c206d0c6565fb7f0
BLAKE2b-256 84f6438575a236acbb940264e31db0fa1d8a3ddf0fa070d2f60aedb278b42ba1

See more details on using hashes here.

File details

Details for the file linerate-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: linerate-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 41.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for linerate-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc982e9b4aa2b99573a65e4ee37ec703fb9b205fea9089f88faf1100f613879f
MD5 9f585ae7fe2320bcd7ec990744764877
BLAKE2b-256 039f8146a99051327b5edfbbc8560702fcd7bb78c7a9e16d4cd257f640c7e4fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page