schemas
ScenarioSchemaAir
Bases: AbstractScenarioSchema
Air scenario schema extending the base scenario schema.
This schema currently does not add extra checks beyond AbstractScenarioSchema, but exists to allow air-specific evolution in the future.
ScenarioSchemaSoil
Bases: AbstractScenarioSchema
Soil scenario schema extending the base scenario with required soil properties.
check_required_soil_columns
classmethod
check_required_soil_columns(df: DataFrame)
Ensure soil-specific required columns are present.
Source code in cable_thermal_model/model/schemas/model_input_schemas.py
85 86 87 88 89 90 91 92 | |
check_numeric_soil_columns
classmethod
check_numeric_soil_columns(df: DataFrame)
Ensure soil thermal columns contain numeric values.
Source code in cable_thermal_model/model/schemas/model_input_schemas.py
94 95 96 97 98 99 100 101 102 | |
ModelOutputSchema
Bases: BaseModel, Generic[StateT]
Schema for the output of the thermal cable model, containing the temperature results and the final state.
TemperatureResultSchema
Bases: DataFrameModel
Schema for temperature result DataFrame with MultiIndex columns.
Structure: - Index: datetime (time series) - Columns: MultiIndex with 3 levels: - Level 0: circuit_name (str) - Level 1: cable_position (CablePosition enum values) - Level 2: cable_layer (CableLayer enum values) - Values: temperature in degrees Celsius (float)
check_datetime_index
classmethod
check_datetime_index(df: DataFrame)
Ensure index is datetime-like.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
34 35 36 37 38 | |
check_multiindex_columns
classmethod
check_multiindex_columns(df: DataFrame)
Ensure columns are a MultiIndex with 3 levels.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
40 41 42 43 44 45 46 47 | |
check_circuit_names
classmethod
check_circuit_names(df: DataFrame) -> bool
Ensure circuit names are non-empty strings.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
50 51 52 53 54 55 56 57 58 | |
check_cable_positions
classmethod
check_cable_positions(df: DataFrame) -> bool
Ensure cable positions are valid CablePosition enum values.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
61 62 63 64 65 66 | |
check_cable_layers
classmethod
check_cable_layers(df: DataFrame) -> bool
Ensure cable layers are valid CableLayer enum values.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
69 70 71 72 73 74 | |
check_temperature_values
classmethod
check_temperature_values(df: DataFrame) -> bool
Ensure temperature values are floats.
Source code in cable_thermal_model/model/schemas/model_output_schemas.py
77 78 79 80 81 82 83 84 | |
State
Bases: BaseModel
Stores information about temperatures within cables at the final state.
The final state is reached at the end of the simulation. In addition, the relevant cable representations and their properties are stored.
Attributes:
| Name | Type | Description |
|---|---|---|
cable_representations |
list[PosCable]
|
list[PosCable]: List of cable representations with their properties and positions in the environment. |
full_solution |
dict[CableKey, ndarray]
|
dict[CableKey, np.ndarray]: Combines the internal heating solution with the ambient temperature profile and, for a StateSoil object, the mutual heating solution. |
internal_heating_solution |
dict[CableKey, ndarray]
|
dict[CableKey, np.ndarray]: The temperature delta profile as a result of internal heating due to the load. |
check_solution_consistency
check_solution_consistency()
Validate that full_solution and internal_heating_solution share the same cable keys.
Source code in cable_thermal_model/model/schemas/state_schemas.py
44 45 46 47 48 49 50 51 52 53 54 | |
check_cable_representations_consistency
check_cable_representations_consistency()
Validate that cable_representations and internal_heating_solution share the same cable keys.
Source code in cable_thermal_model/model/schemas/state_schemas.py
56 57 58 59 60 61 62 63 64 65 66 67 | |
StateAir
Bases: State
StateAir has no added attributes on top of State.
However, we want to make sure there is only one circuit (check for a unique circuit_name).
validate_single_circuit
validate_single_circuit()
Ensure that all cable representations in StateAir belong to the same circuit.
Source code in cable_thermal_model/model/schemas/state_schemas.py
104 105 106 107 108 109 110 | |
StateSoil
Bases: State
Extends upon the base State class. Includes additional attribute mutual_heating_solutions and validation thereof.
Attributes:
| Name | Type | Description |
|---|---|---|
mutual_heating_solutions |
dict[CableKey, ndarray]
|
dict[CableKey, np.ndarray] A dictionary containing the temperature increase inside a cable due to mutual heating from other cables in the environment. This is stored as a dict with CableKey as key and an array of temperature increases per grid point as value. |
validate_mutual_heating_solutions
validate_mutual_heating_solutions()
Validate that mutual_heating_solutions keys match the cable representation keys.
Source code in cable_thermal_model/model/schemas/state_schemas.py
84 85 86 87 88 89 90 91 92 93 94 95 | |