docs: def init(self, fle=None):
          """
          Executes the preprocessing steps at the instantiation stage to read in
          the tables from hdf5 and hold them in memory.
          """
          if fle is None:
              fname = self.kwargs.get('gmpe_table', self.GMPE_TABLE)
              if fname is None:
                  raise ValueError('You forgot to set GMPETable.GMPE_TABLE!')
              elif os.path.isabs(fname):
                  self.GMPE_TABLE = fname
              else:
                  # NB: (hackish) GMPE_DIR must be set externally
                  self.GMPE_TABLE = os.path.abspath(
                      os.path.join(self.GMPE_DIR, fname))
              fle = h5py.File(self.GMPE_TABLE, "r")
          try:
              # this is the format inside the datastore
              self.distance_type = fle["distance_type"].value
          except KeyError:
              # this is the original format outside the datastore
              self.distance_type = decode(fle["Distances"].attrs["metric"])
          self.REQUIRES_DISTANCES = set([self.distance_type])
          # Load in magnitude
          self.m_w = fle["Mw"][:]
          # Load in distances
          self.distances = fle["Distances"][:]
          # Load intensity measure types and levels
          self.imls = hdf_arrays_to_dict(fle["IMLs"])
          self.DEFINED_FOR_INTENSITY_MEASURE_TYPES = set(self._supported_imts())
          if "SA" in self.imls and "T" not in self.imls:
              raise ValueError("Spectral Acceleration must be accompanied by "
                               "periods")
          # Get the standard deviations
          self._setup_standard_deviations(fle)
          if "Amplification" in fle:
              self._setup_amplification(fle)