prereise.gather.griddata.transmission package

Subpackages

Submodules

prereise.gather.griddata.transmission.const module

prereise.gather.griddata.transmission.geometry module

class prereise.gather.griddata.transmission.geometry.Conductor(name: str | None = None, radius: float | None = None, material: str | None = None, resistance_per_km: float | None = None, gmr: float | None = None, area: float | None = None, permeability: float | None = None, current_limit: float | None = None)[source]

Bases: DataclassWithValidation

Represent a single conductor (which may be a stranded composite). Conductors can be instantiated by either: - looking them up via their standardized bird name, - passing the parameters relevant to impedance and rating calculations (radius, gmr, resistance_per_km, and current_limit), or - passing paramters which can be used to estimate parameters relevant to impedance and rating calculations (radius, material, and current_limit). In this case, a solid conductor is assumed.

Parameters:
  • name (str) – name of standard conductor.

  • radius (float) – outer radius of conductor.

  • material (str) – material of conductor. Used to calculate resistance_per_km and gmr if these aren’t passed to the constructor, unnecessary otherwise.

  • resistance_per_km (float) – resistance (ohms) per kilometer. Will be estimated from other parameters if it isn’t passed.

  • gmr (float) – geometric mean radius of conductor. Will be estimated from other parameters if it isn’t passed.

  • area (float) – cross-sectional area of conductor. Will be estimated from other parameters if it isn’t passed.

area: float = None
current_limit: float = None
gmr: float = None
material: str = None
name: str = None
permeability: float = None
radius: float = None
resistance_per_km: float = None
class prereise.gather.griddata.transmission.geometry.ConductorBundle(conductor: Conductor, n: int = 1, spacing: float | None = None, layout: str = 'circular')[source]

Bases: DataclassWithValidation

Represent a bundle of conductors (or a ‘bundle’ of one).

Parameters:
  • n (int) – number of conductors in bundle (can be one).

  • conductor (Conductor) – information for each conductor.

  • spacing (float) – distance between the centers of each conductor (meters).

  • layout (str) – either ‘circular’ (conductors are arranged in a regular polygon with edge length spacing) or ‘flat’ (conductors are arranged in a line, at regular spacing spacing).

calculate_equivalent_spacing(type='inductance')[source]
calculate_equivalent_spacing_circular(conductor_distance)[source]
calculate_equivalent_spacing_flat(conductor_distance)[source]
conductor: Conductor
current_limit: float = None
layout: str = 'circular'
n: int = 1
resistance_per_km: float
spacing: float = None
spacing_C: float
spacing_L: float
class prereise.gather.griddata.transmission.geometry.Line(tower: Tower, length: float, voltage: float, freq: float = 60.0)[source]

Bases: DataclassWithValidation

Given a Tower design, line voltage, and length, calculate whole-line impedances and rating.

Parameters:
  • tower (Tower) – tower parameters (containing per-kilometer impedances).

  • length (int/float) – line length (kilometers).

  • voltage (int/float) – line voltage (kilovolts).

  • freq (int/float) – the system nominal frequency (Hz).

freq: float = 60.0
length: float
power_rating: float = None
propogation_constant_per_km: complex
series_impedance: complex
series_impedance_per_km: complex
shunt_admittance: complex
shunt_admittance_per_km: complex
stability_rating: float = None
surge_impedance: complex
thermal_rating: float = None
tower: Tower
voltage: float
class prereise.gather.griddata.transmission.geometry.PhaseLocations(a: tuple, b: tuple, c: tuple, circuits: int = 1)[source]

Bases: DataclassWithValidation

Represent the locations of each conductor bundle on a transmission tower. Each of a, b, and c are the (x, y) location(s) of that phase’s conductor(s).

Parameters:
  • a (tuple) – the (x, y) location of the single ‘A’ phase conductor if circuits == 1, or the ((x1, y1), (x2, y2), …) locations of the ‘A’ phase conductors if circuits > 1. Units are meters.

  • b (tuple) – the (x, y) location of the single ‘B’ phase conductor if circuits == 1, or the ((x1, y1), (x2, y2), …) locations of the ‘B’ phase conductors if circuits > 1. Units are meters.

  • c (tuple) – the (x, y) location of the single ‘C’ phase conductor if circuits == 1, or the ((x1, y1), (x2, y2), …) locations of the ‘C’ phase conductors if circuits > 1. Units are meters.

  • circuits (int) – the number of circuits on the tower.

a: tuple
b: tuple
c: tuple
calculate_distances()[source]
calculate_multi_circuit_distances()[source]
calculate_single_circuit_distances()[source]
circuits: int = 1
equivalent_distance: float
equivalent_height: float
equivalent_reflected_distance: float
phase_self_distances: dict = None
class prereise.gather.griddata.transmission.geometry.Tower(locations: PhaseLocations, bundle: ConductorBundle)[source]

Bases: DataclassWithValidation

Given the geometry of a transmission tower and conductor bundle information, estimate per-kilometer inductance, resistance, and shunt capacitance.

Parameters:
bundle: ConductorBundle
calculate_inductance_per_km()[source]
calculate_shunt_capacitance_per_km()[source]
capacitance: float
inductance: float
locations: PhaseLocations
phase_current_limit: float = None
resistance: float

prereise.gather.griddata.transmission.helpers module

class prereise.gather.griddata.transmission.helpers.DataclassWithValidation[source]

Bases: object

A stub class which defines a method that checks dataclasses.dataclass types.

validate_input_types()[source]
prereise.gather.griddata.transmission.helpers.approximate_loadability(length_km, method='power')[source]

Approximate the value of the St. Clair curve at a given point, using a given approximation method.

Parameters:
  • length_km (float) – line length (kilometers).

  • method (str) – curve approximation method. Currently, only ‘power’ is supported.

Returns:

(float) – line loadibility (normalized to surge impedance loading).

Raises:

ValueError – if the method is not supported.

prereise.gather.griddata.transmission.helpers.calculate_z_base(v_base, s_base)[source]

Calculate base impedance from voltage and system base apparent power.

Parameters:
  • v_base (int/float) – base voltage (kV).

  • s_base (int/float) – base apparent power (MVA).

Returns:

(float) – base impedance (ohms).

prereise.gather.griddata.transmission.helpers.get_standard_conductors()[source]

Read the data file on standard conductor parameter values.

Returns:

(pandas.DataFrame) – data frame, indexed by conductor code name.

prereise.gather.griddata.transmission.helpers.translate_to_per_unit(x, nominal_unit, z_base)[source]

Translate parameters in nominal units to per-unit values.

Parameters:
  • x (int/float) – value to be converted.

  • nominal_unit (str) – the units of x.

  • z_base (int/float) – base impedance (can be calculated with calculate_z_base()).

Returns:

(float) – per-unit value.

Raises:

ValueError – if the nominal unit isn’t recognized.

Module contents