docs: def scale(self, data, unit):
          """Scales quantity to obtain dimensionful quantity.
  
          Args:
              data (numpy.array): the quantity that should be scaled.
              dim (str): the dimension of data as defined in phyvars.
          Return:
              (float, str): scaling factor and unit string.
          Other Parameters:
              conf.scaling.dimensional: if set to False (default), the factor is
                  always 1.
          """
          if self.par['switches']['dimensional_units'] or \
             not conf.scaling.dimensional or \
             unit == '1':
              return data, ''
          scaling = phyvars.SCALES[unit](self.scales)
          factor = conf.scaling.factors.get(unit, ' ')
          if conf.scaling.time_in_y and unit == 's':
              scaling /= conf.scaling.yearins
              unit = 'yr'
          elif conf.scaling.vel_in_cmpy and unit == 'm/s':
              scaling *= 100 * conf.scaling.yearins
              unit = 'cm/y'
          if factor in phyvars.PREFIXES:
              scaling *= 10**(-3 * (phyvars.PREFIXES.index(factor) + 1))
              unit = factor + unit
          return data * scaling, unit