sinergym.utils.wrappers.DatetimeWrapper

class sinergym.utils.wrappers.DatetimeWrapper(*args, **kwargs)

Wrapper to transform datetime variables into a more useful representation for deep RL: - ‘day_of_month’ is replaced with ‘day_of_month_cos’ and ‘day_of_month_sin’ (cyclic encoding). - ‘hour’ is replaced with ‘hour_cos’ and ‘hour_sin’ (cyclic encoding). - ‘month’ is replaced with ‘month_cos’ and ‘month_sin’ (cyclic encoding).

Cyclic encoding using sine and cosine is essential for deep RL because it preserves the circular nature of temporal variables (e.g., hour 23:59 is close to 00:00). Both sine and cosine are needed to uniquely represent each point in the cycle.

The observation space is updated automatically.

__init__(*args, **kwargs)

Constructor for the observation wrapper.

Parameters:

env – Environment to be wrapped.

Methods

__init__(*args, **kwargs)

Constructor for the observation wrapper.

class_name()

Returns the class name of the wrapper.

close()

Closes the wrapper and env.

get_obs_dict(obs)

Convert observation array to dictionary with variable names as keys.

get_wrapper_attr(name)

Gets an attribute from the wrapper and lower environments if name doesn't exist in this object.

has_wrapper_attr(name)

Checks if the given attribute is within the wrapper or its environment.

observation(obs)

Transforms the observation to replace time variables with cyclic encoded representations.

render()

Uses the render() of the env that can be overwritten to change the returned data.

reset(*[, seed, options])

Modifies the env after calling reset(), returning a modified observation using self.observation().

set_wrapper_attr(name, value, *[, force])

Sets an attribute on this wrapper or lower environment if name is already defined.

step(action)

Modifies the env after calling step() using self.observation() on the returned observations.

wrapper_spec(**kwargs)

Generates a WrapperSpec for the wrappers.

Attributes

action_space

Return the Env action_space unless overwritten then the wrapper action_space is used.

logger

metadata

Returns the Env metadata.

np_random

Returns the Env np_random attribute.

np_random_seed

Returns the base environment's np_random_seed.

observation_space

Return the Env observation_space unless overwritten then the wrapper observation_space is used.

render_mode

Returns the Env render_mode.

spec

Returns the Env spec attribute with the WrapperSpec if the wrapper inherits from EzPickle.

unwrapped

Returns the base environment of the wrapper.

logger = <Logger WRAPPER DatetimeWrapper (INFO)>
observation(obs: ndarray) ndarray

Transforms the observation to replace time variables with cyclic encoded representations.

Parameters:

obs (np.ndarray) – Original observation.

Returns:

Transformed observation with cyclic encoding for temporal variables.

Return type:

np.ndarray