class_docstr: Map X to [0, 1]^d for RangeParameter of type float and not log scale.
  
  Uses bounds l <= x <= u, sets x_tilde_i = (x_i - l_i) / (u_i - l_i).
  Constraints wTx <= b are converted to gTx_tilde <= h, where
  g_i = w_i (u_i - l_i) and h = b - wTl.
  
  Transform is done in-place.
class_docstr_tok: ["Map","X","to","[","0",",","1","]","^d","for","RangeParameter","of","type","float","and","not","log","scale",".","Uses","bounds","l","<","=","x","<","=","u",",","sets","x_tilde_i","=","(","x_i","-","l_i",")","\/","(","u_i","-","l_i",")",".","Constraints","wTx","<","=","b","are","converted","to","gTx_tilde","<","=","h",",","where","g_i","=","w_i","(","u_i","-","l_i",")","and","h","=","b","-","wTl",".","Transform","is","done","in-place","."]
code: def transform_observation_features(
      self, observation_features: List[ObservationFeatures]
  ) -> List[ObservationFeatures]:
      for obsf in observation_features:
          for p_name, (l, u) in self.bounds.items():
              if p_name in obsf.parameters:
                  # pyre: param is declared to have type `float` but is used
                  # pyre-fixme[9]: as type `Optional[typing.Union[bool, float, str]]`.
                  param: float = obsf.parameters[p_name]
                  obsf.parameters[p_name] = self._normalize_value(
                      param, (l, u)
                  )
      return observation_features
  
imports: from typing import Dict, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from ax.core.observation import Observation, ObservationFeatures
  from ax.core.parameter import ParameterType, RangeParameter
  from ax.core.parameter_constraint import ParameterConstraint
  from ax.core.parameter_distribution import ParameterDistribution
  from ax.core.search_space import RobustSearchSpace, SearchSpace
  from ax.exceptions.core import UnsupportedError, UserInputError
  from ax.modelbridge.transforms.base import Transform
  from ax.models.types import TConfig
label_desc: Use image node_id 2 for calling the UnitX obj's underlying member method code with example usage: obj.transform_observation_features(observation_features) and returns: observation_features