code: def _simulate_surface(
      self, x: np.ndarray, noise: bool = True
  ) -> float:
      try:
          from olympus.surfaces import (
              import_surface,
          )  # pylint: disable=import-outside-toplevel
          from olympus import noises
      except ImportError as e:
          raise ng.errors.UnsupportedExperiment(
              "Please install olympus for Olympus experiments"
          ) from e
  
      if noise:
          noise = noises.Noise(
              kind=self.noise_kind, scale=self.noise_scale
          )
          surface = import_surface(self.kind)(
              param_dim=self.param_dim, noise=noise
          )
      else:
          surface = import_surface(self.kind)(param_dim=self.param_dim)
      return surface.run(x - self.shift)[0][0]
  
file_path: nevergrad/nevergrad/functions/olympussurfaces/core.py
imports: import numpy
  from functools import partial
  from nevergrad.parametrization import parameter
  from ..base import ExperimentFunction
  import nevergrad
label_desc: Use image node_id 2 for calling the OlympusSurface obj's underlying member method code with example usage: obj._simulate_surface(x, noise) and returns: surface