Load data

GHEtool supports different types of load data (and more are coming, check our project for more information: https://github.com/users/wouterpeere/projects/2) Currently you can use:

  1. Geothermal loads with a monthly resolution for one year (so it repeats itself every year)

  2. Geothermal loads with an hourly resolution for one year (so it repeats itself every year)

  3. Geothermal loads with an hourly resolution but multiple years (it does not repeat itself)

All of the load classes are based children of the abstract _LoadData class.

class GHEtool.VariableClasses.LoadData._LoadData._LoadData(hourly_resolution: bool, simulation_period: int = 20)

Bases: BaseClass, ABC

This class contains information w.r.t. load data for the borefield sizing.

Parameters
hourly_resolutionbool

True if the load class uses an hourly resolution

simulation_periodint

Length of the simulation period in years

property UPM: ndarray

Depending on whether all months are assumed to have equal length, the UPM are either constant or vary during the year.

Returns
Hours per monthnp.ndarray
_calculate_first_year_params(HC: bool) tuple

This function calculates the parameters for the sizing based on the first year of operation. This is needed for the L2 sizing.

Parameters
HCbool

True if the borefield is limited by extraction load

Returns
th, tpm, tcm, qh, qpm, qcmfloat

Peak duration [s], cumulative time passed at the start of the month [s], cumulative time passed at the end of the month [s], peak load [W], average cumulative load of the past months [W avg], average load of the current month [W avg]

_calculate_last_year_params(HC: bool) tuple

This function calculates the parameters for the sizing based on the last year of operation. This is needed for the L2 sizing.

Parameters
HCbool

True if the borefield is limited by extraction load

Returns
th, qh, qm, qafloat

Peak length [s], peak load [W], corresponding monthly load [W], yearly imbalance [W]

abstract _check_input(input: Union[ndarray, list, tuple]) bool

This function checks whether the input is valid or not.

Parameters
inputnp.ndarray, list, tuple

Thermal load input

Returns
bool

True if the input is correct for the load class

add_dhw(dhw: float) None

This function adds the domestic hot water (dhw). An error is raies is the dhw is not positive.

Parameters
dhwfloat

Yearly consumption of domestic hot water [kWh/year]

Returns
None
property all_months_equal: bool

Returns the attribute all months are equal

Returns
bool

True if the months are assumed to be of equal length (i.e. 730 hours/month). False if the correct number of hours is used.

abstract baseload_cooling() ndarray

This function returns the baseload cooling in kWh/month.

Returns
baseload coolingnp.ndarray
property baseload_cooling_power: ndarray

This function returns the baseload cooling in kW avg/month.

Returns
baseload coolingnp.ndarray
property baseload_cooling_power_simulation_period: ndarray

This function returns the average cooling power in kW avg/month for a whole simulation period.

Returns
average cooling powernp.ndarray

average cooling for the whole simulation period

property baseload_cooling_simulation_period: ndarray

This function returns the baseload cooling in kWh/month for a whole simulation period.

Returns
baseload coolingnp.ndarray

baseload cooling for the whole simulation period

abstract baseload_heating() ndarray

This function returns the baseload heating in kWh/month.

Returns
baseload heatingnp.ndarray
property baseload_heating_power: ndarray

This function returns the baseload heating in kW avg/month.

Returns
baseload heatingnp.ndarray
property baseload_heating_power_simulation_period: ndarray

This function returns the average heating power in kW avg/month for a whole simulation period.

Returns
average heating powernp.ndarray

average heating power for the whole simulation period

property baseload_heating_simulation_period: ndarray

This function returns the baseload heating in kWh/month for a whole simulation period.

Returns
baseload heatingnp.ndarray

baseload heating for the whole simulation period

abstract correct_for_start_month(array: ndarray) ndarray

This function corrects the load for the correct start month. If the simulation starts in september, the start month is 9 and hence the array should start at index 9.

Parameters
arraynp.ndarray

Load array

Returns
loadnp.ndarray
property dhw: float

This function returns the yearly domestic hot water consumption.

Returns
dhwfloat

Yearly domestic hot water consumption [kWh/year]

property dhw_power: float

This function returns the power related to the dhw production.

Returns
dhw powerfloat
static get_month_index(peak_load, avg_load) int

This function calculates and returns the month index (i.e. the index of the month in which the field should be sized). It does so by taking 1) the month with the highest peak load. 2) if all the peak loads are the same, it takes the month with the highest average load 3) if all average loads are the same, it takes the last month

Parameters
peak_loadnp.ndarray

array with the peak loads [kW]

avg_loadnp.ndarray

array with the monthly average loads [kW]

Returns
month_indexint

0 = jan, 1 = feb …

property imbalance: float

This function calculates the ground imbalance. A positive imbalance means that the field is injection dominated, i.e. it heats up every year.

Returns
imbalancefloat
property max_peak_cooling: float

This returns the max peak cooling in kW.

Returns
max peak coolingfloat
property max_peak_heating: float

This returns the max peak heating in kW.

Returns
max peak heatingfloat
property monthly_average_load: ndarray

This function calculates the average monthly load in kW.

Returns
monthly average loadnp.ndarray
property monthly_average_load_simulation_period: ndarray

This function calculates the average monthly load in kW for the whole simulation period.

Returns
monthly average loadnp.ndarray
abstract peak_cooling() ndarray

This function returns the peak cooling load in kW/month.

Returns
peak coolingnp.ndarray
property peak_cooling_duration: float

Duration of the peak in cooling.

Returns
Duration of the peak in cooling [s]
property peak_cooling_simulation_period: ndarray

This function returns the peak cooling in kW/month for a whole simulation period.

Returns
peak coolingnp.ndarray

peak cooling for the whole simulation period

property peak_duration: None

Dummy object to set the length peak for both heating and cooling.

Returns
None
abstract peak_heating() ndarray

This function returns the peak heating load in kW/month.

Returns
peak heatingnp.ndarray
property peak_heating_duration: float

Length of the peak in heating.

Returns
Length peak in heating [s]
property peak_heating_simulation_period: ndarray

This function returns the peak heating in kW/month for a whole simulation period.

Returns
peak heatingnp.ndarray

peak heating for the whole simulation period

property start_month: int

This function returns the start month.

Returns
float

Start month

property time_L3: ndarray

Time for L3 sizing, i.e. an array with monthly the cumulative seconds that have passed. [744, 1416 …] * 3600

Returns
Times for the L3 sizingnp.ndarray
property time_L4: ndarray

Times for the L4 sizing, i.e. an array with hourly the cumulative seconds that have passed. [1, 2, 3, 4 …] * 3600

Returns
Times for the L4 sizingnp.ndarray
property ty: float

Simulation period in seconds.

Returns
Simulation period in seconds
property yearly_cooling_load: float

This function returns the yearly cooling load in kWh/year.

Returns
float

Yearly cooling load kWh/year

property yearly_heating_load: float

This function returns the yearly heating load in kWh/year.

Returns
float

Yearly heating load kWh/year

This class contains all the information for geothermal load data with a monthly resolution and absolute input. This means that the inputs are both in kWh/month and kW/month.

This class contains all the information for geothermal load data with a monthly resolution and absolute input. This means that the inputs are both in kWh/month and kW/month.

This class contains all the information for geothermal load data with a monthly resolution and absolute input. This means that the inputs are both in kWh/month and kW/month.