class_docstr: Holds data for an asset class vol surface
  
      
class_docstr_tok: ["Holds","data","for","an","asset","class","vol","surface"]
code: def extract_vol_surface_across_dates(
      self,
      dates,
      num_strike_intervals=60,
      vol_surface_type="vol_surface_strike_space",
      reverse_plot=True,
  ):
      vol_surface_dict = {}
  
      min_x = None
      max_x = None
      min_z = None
      max_z = None
  
      for i in range(0, len(dates)):
          self.build_vol_surface(dates[i])
  
          # Note for unstable vol surface dates (eg. over Brexit date) you may need to increase tolerance
          # in FinancePy
          # in FinFXVolSurface.buildVolSurface method
          df_vol_surface = self.extract_vol_surface(
              num_strike_intervals=num_strike_intervals
          )[vol_surface_type]
  
          if reverse_plot:
              # Reverse order of tenors to match the way BBG plots it
              vol_surface_dict[dates[i]] = df_vol_surface.iloc[:, ::-1]
          else:
              vol_surface_dict[dates[i]] = df_vol_surface
  
          # x_axis = strike - index
          # y_axis = tenor - columns
          # z_axis = implied_vol vol - values
          min_x, max_x = self._extremes(
              min_x, max_x, df_vol_surface.index.values
          )
          min_z, max_z = self._extremes(
              min_z, max_z, df_vol_surface.values
          )
  
      extremes_dict = {
          "min_x": min_x,
          "max_x": max_x,
          "min_z": min_z,
          "max_z": max_z,
      }
  
      return vol_surface_dict, extremes_dict
  
file_path: finmarketpy/finmarketpy/curve/volatility/abstractvolsurface.py
imports: import abc
  import numpy
  from financepy.utils.date import Date
label_desc: Use image node_id 4 for calling the AbstractVolSurface obj's underlying member method code with example usage: obj.extract_vol_surface_across_dates(dates, num_strike_intervals, vol_surface_type, reverse_plot) and returns: vol_surface_dict,  extremes_dict