Skip to content

SolarHeating

SolarHeating

SolarHeating(
    latitude: floatArrayLike,
    altitude: floatArrayLike,
    cable_azimuth: floatArrayLike,
    turbidity: floatArrayLike,
    datetime_utc: datetimeArrayLike,
    outer_diameter: floatArrayLike,
    solar_absorptivity: floatArrayLike,
    solar_irradiance: floatArrayLike,
    **kwargs: Any,
)

Bases: SolarHeatingBase

:param latitude: Latitude in degrees. :param altitude: Altitude. :param cable_azimuth: Azimuth of the conductor in degrees. :param turbidity: Air pollution from 0 (clean) to 1 (polluted). :param datetime_utc: Datetime in UTC. :param outer_diameter: external diameter of the conductor. :param solar_absorptivity: Solar absorption coefficient of the conductor. :param solar_irradiance: Optional precomputed solar irradiance term.

Source code in src/thermohl/power/ieee/solar_heating.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
def __init__(
    self,
    latitude: floatArrayLike,
    altitude: floatArrayLike,
    cable_azimuth: floatArrayLike,
    turbidity: floatArrayLike,
    datetime_utc: datetimeArrayLike,
    outer_diameter: floatArrayLike,
    solar_absorptivity: floatArrayLike,
    solar_irradiance: floatArrayLike,
    **kwargs: Any,
):
    """Init with args.
    If more than one input are numpy arrays, they should have the same size.

    :param latitude: Latitude in degrees.
    :param altitude: Altitude.
    :param cable_azimuth: Azimuth of the conductor in degrees.
    :param turbidity: Air pollution from 0 (clean) to 1 (polluted).
    :param datetime_utc: Datetime in UTC.
    :param outer_diameter: external diameter of the conductor.
    :param solar_absorptivity: Solar absorption coefficient of the conductor.
    :param solar_irradiance: Optional precomputed solar irradiance term.
    """
    est = _SRad(
        [
            -4.22391e01,
            +6.38044e01,
            -1.9220e00,
            +3.46921e-02,
            -3.61118e-04,
            +1.94318e-06,
            -4.07608e-09,
        ],
        [
            +5.31821e01,
            +1.4211e01,
            +6.6138e-01,
            -3.1658e-02,
            +5.4654e-04,
            -4.3446e-06,
            +1.3236e-08,
        ],
    )
    super().__init__(
        latitude,
        altitude,
        cable_azimuth,
        turbidity,
        datetime_utc,
        outer_diameter,
        solar_absorptivity,
        est,
        solar_irradiance,
        **kwargs,
    )

derivative

derivative(
    conductor_temperature: floatArrayLike,
) -> floatArrayLike

Compute solar heating derivative.

:param conductor_temperature: Conductor temperature. :return: Derivative of solar heating.

Source code in src/thermohl/power/solar_heating.py
134
135
136
137
138
139
140
def derivative(self, conductor_temperature: floatArrayLike) -> floatArrayLike:
    """Compute solar heating derivative.

    :param conductor_temperature: Conductor temperature.
    :return: Derivative of solar heating.
    """
    return np.zeros_like(conductor_temperature)

value

value(
    conductor_temperature: floatArrayLike,
) -> floatArrayLike

Compute solar heating.

:param conductor_temperature: Conductor temperature (°C). :return: Power term value (W·m⁻¹).

Source code in src/thermohl/power/solar_heating.py
121
122
123
124
125
126
127
128
129
130
131
132
def value(self, conductor_temperature: floatArrayLike) -> floatArrayLike:
    """Compute solar heating.

    :param conductor_temperature: Conductor temperature (°C).
    :return: Power term value (W·m⁻¹).
    """
    return (
        self.solar_absorptivity
        * self.solar_irradiance
        * self.outer_diameter
        * np.ones_like(conductor_temperature)
    )