class_docstr: A connector used to mean-std-filter observations.
  
  Incoming observations are filtered such that the output of this filter is on
  average zero and has a standard deviation of 1. This filtering is applied
  separately per element of the observation space.
class_docstr_tok: ["A","connector","used","to","mean-std-filter","observations",".","Incoming","observations","are","filtered","such","that","the","output","of","this","filter","is","on","average","zero","and","has","a","standard","deviation","of","1",".","This","filtering","is","applied","separately","per","element","of","the","observation","space","."]
code: def transform(
      self, ac_data: AgentConnectorDataType
  ) -> AgentConnectorDataType:
      d = ac_data.data
      assert (
          type(d) == dict
      ), "Single agent data must be of type Dict[str, TensorStructType]"
      if SampleBatch.OBS in d:
          d[SampleBatch.OBS] = self.filter(
              d[SampleBatch.OBS], update=self._is_training
          )
      if SampleBatch.NEXT_OBS in d:
          d[SampleBatch.NEXT_OBS] = self.filter(
              d[SampleBatch.NEXT_OBS], update=self._is_training
          )
  
      return ac_data
  
imports: from typing import Any, List
  from gymnasium.spaces import Discrete, MultiDiscrete
  import numpy
  import tree
  from ray.rllib.connectors.agent.synced_filter import SyncedFilterAgentConnector
  from ray.rllib.connectors.connector import AgentConnector
  from ray.rllib.connectors.connector import ConnectorContext
  from ray.rllib.connectors.registry import register_connector
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.filter import Filter
  from ray.rllib.utils.filter import MeanStdFilter, ConcurrentMeanStdFilter
  from ray.rllib.utils.spaces.space_utils import get_base_struct_from_space
  from ray.rllib.utils.typing import AgentConnectorDataType
  from ray.util.annotations import PublicAPI
  from ray.rllib.utils.filter import RunningStat
label_desc: Use image node_id 2 for calling the MeanStdObservationFilterAgentConnector obj's underlying member method code with example usage: obj.transform(ac_data) and returns: ac_data