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 theenvthat can be overwritten to change the returned data.reset(*[, seed, options])Modifies the
envafter callingreset(), returning a modified observation usingself.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
envafter callingstep()usingself.observation()on the returned observations.wrapper_spec(**kwargs)Generates a WrapperSpec for the wrappers.
Attributes
action_spaceReturn the
Envaction_spaceunless overwritten then the wrapperaction_spaceis used.metadataReturns the
Envmetadata.np_randomReturns the
Envnp_randomattribute.np_random_seedReturns the base environment's
np_random_seed.observation_spaceReturn the
Envobservation_spaceunless overwritten then the wrapperobservation_spaceis used.render_modeReturns the
Envrender_mode.specReturns the
Envspecattribute with the WrapperSpec if the wrapper inherits from EzPickle.unwrappedReturns 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