thermal_cable_model.ground — Ground Temperature Models

Seasonal ground and ambient temperature models.

The Kasuda equation models the undisturbed ground temperature as a function of depth and day-of-year, accounting for seasonal thermal wave penetration.

class GroundTemperatureModel[source]

Bases: ABC

Base class for ground / ambient temperature models.

abstractmethod temperature(depth, time_s)[source]

Return ground temperature [°C] at depth [m] and time_s [s].

Parameters:
Return type:

float

temperature_array(depth, times_s)[source]

Vectorised convenience wrapper.

Parameters:
Return type:

ndarray

class ConstantGroundTemperature[source]

Bases: GroundTemperatureModel

Spatially and temporally uniform ground temperature.

__init__(temperature_c=15.0)[source]
Parameters:

temperature_c (float)

temperature(depth, time_s)[source]

Return ground temperature [°C] at depth [m] and time_s [s].

Parameters:
Return type:

float

class KasudaModel[source]

Bases: GroundTemperatureModel

Kasuda & Archenbach (1965) undisturbed ground temperature.

\[T(z,t) = T_\text{mean} - T_\text{amp} \exp\!\Bigl( -z \sqrt{\frac{\pi}{P\,\alpha}}\Bigr) \cos\!\Bigl(\frac{2\pi}{P}\bigl(t - t_0 - \tfrac{z}{2}\sqrt{\frac{P}{\pi\,\alpha}}\bigr)\Bigr)\]
Parameters:
  • mean_surface_temp (float) – Annual mean surface temperature [°C].

  • annual_amplitude (float) – Half the peak-to-peak annual surface temperature swing [°C].

  • day_of_min_surface_temp (float) – Day of year at which the surface temperature is at its minimum (e.g. ~35 for central Europe ≈ early February).

  • soil_diffusivity (float) – Thermal diffusivity α of the soil [m²/s]. Typical range 0.3–0.8 × 10⁻⁶.

SECONDS_PER_DAY = 86400.0
DAYS_PER_YEAR = 365.25
__init__(mean_surface_temp=12.0, annual_amplitude=10.0, day_of_min_surface_temp=35.0, soil_diffusivity=5e-07)[source]
Parameters:
  • mean_surface_temp (float)

  • annual_amplitude (float)

  • day_of_min_surface_temp (float)

  • soil_diffusivity (float)

temperature(depth, time_s)[source]

Return ground temperature [°C] at depth [m] and time_s [s].

Parameters:
Return type:

float

temperature_array(depth, times_s)[source]

Vectorised convenience wrapper.

Parameters:
Return type:

ndarray