Skip to content

Component classes

An overview of the component classes:

Component superclass

Superclass for model components.

Component dataclass

Bases: ABC

Abstract class defining methods and rules for model elements.

The bulk of attributes will be defined in the subclasses inheriting from this superclass.

Source code in src/pyelq/component/component.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
72
73
74
75
76
77
78
79
@dataclass
class Component(ABC):
    """Abstract class defining methods and rules for model elements.

    The bulk of attributes will be defined in the subclasses inheriting from this superclass.

    """

    @abstractmethod
    def initialise(self, sensor_object: SensorGroup, meteorology: MeteorologyGroup, gas_species: GasSpecies):
        """Take data inputs and extract relevant properties.

        Args:
            sensor_object (SensorGroup): sensor data
            meteorology (MeteorologyGroup): meteorology data
            gas_species (GasSpecies): gas species information

        """

    @abstractmethod
    def make_model(self, model: list) -> list:
        """Take model list and append new elements from current model component.

        Args:
            model (list, optional): Current list of model elements. Defaults to [].

        Returns:
            list: model output list.

        """

    @abstractmethod
    def make_sampler(self, model: Model, sampler_list: list) -> list:
        """Take sampler list and append new elements from current model component.

        Args:
            model (Model): Full model list of distributions.
            sampler_list (list, optional): Current list of samplers. Defaults to [].

        Returns:
            list: sampler output list.

        """

    @abstractmethod
    def make_state(self, state: dict) -> dict:
        """Take state dictionary and append initial values from model component.

        Args:
            state (dict, optional): current state vector. Defaults to {}.

        Returns:
            dict: current state vector with components added.

        """

    @abstractmethod
    def from_mcmc(self, store: dict):
        """Extract results of mcmc from mcmc.store and attach to components.

        Args:
            store (dict): mcmc result dictionary.

        """

initialise(sensor_object, meteorology, gas_species) abstractmethod

Take data inputs and extract relevant properties.

Parameters:

Name Type Description Default
sensor_object SensorGroup

sensor data

required
meteorology MeteorologyGroup

meteorology data

required
gas_species GasSpecies

gas species information

required
Source code in src/pyelq/component/component.py
24
25
26
27
28
29
30
31
32
33
@abstractmethod
def initialise(self, sensor_object: SensorGroup, meteorology: MeteorologyGroup, gas_species: GasSpecies):
    """Take data inputs and extract relevant properties.

    Args:
        sensor_object (SensorGroup): sensor data
        meteorology (MeteorologyGroup): meteorology data
        gas_species (GasSpecies): gas species information

    """

make_model(model) abstractmethod

Take model list and append new elements from current model component.

Parameters:

Name Type Description Default
model list

Current list of model elements. Defaults to [].

required

Returns:

Name Type Description
list list

model output list.

Source code in src/pyelq/component/component.py
35
36
37
38
39
40
41
42
43
44
45
@abstractmethod
def make_model(self, model: list) -> list:
    """Take model list and append new elements from current model component.

    Args:
        model (list, optional): Current list of model elements. Defaults to [].

    Returns:
        list: model output list.

    """

make_sampler(model, sampler_list) abstractmethod

Take sampler list and append new elements from current model component.

Parameters:

Name Type Description Default
model Model

Full model list of distributions.

required
sampler_list list

Current list of samplers. Defaults to [].

required

Returns:

Name Type Description
list list

sampler output list.

Source code in src/pyelq/component/component.py
47
48
49
50
51
52
53
54
55
56
57
58
@abstractmethod
def make_sampler(self, model: Model, sampler_list: list) -> list:
    """Take sampler list and append new elements from current model component.

    Args:
        model (Model): Full model list of distributions.
        sampler_list (list, optional): Current list of samplers. Defaults to [].

    Returns:
        list: sampler output list.

    """

make_state(state) abstractmethod

Take state dictionary and append initial values from model component.

Parameters:

Name Type Description Default
state dict

current state vector. Defaults to {}.

required

Returns:

Name Type Description
dict dict

current state vector with components added.

Source code in src/pyelq/component/component.py
60
61
62
63
64
65
66
67
68
69
70
@abstractmethod
def make_state(self, state: dict) -> dict:
    """Take state dictionary and append initial values from model component.

    Args:
        state (dict, optional): current state vector. Defaults to {}.

    Returns:
        dict: current state vector with components added.

    """

from_mcmc(store) abstractmethod

Extract results of mcmc from mcmc.store and attach to components.

Parameters:

Name Type Description Default
store dict

mcmc result dictionary.

required
Source code in src/pyelq/component/component.py
72
73
74
75
76
77
78
79
@abstractmethod
def from_mcmc(self, store: dict):
    """Extract results of mcmc from mcmc.store and attach to components.

    Args:
        store (dict): mcmc result dictionary.

    """