docs: def _reclassify_Bird_regions_with_data(self):
          '''
          The SHIFT regionalisation defines only 'C','R','S','O' - need to
          use strain data to reclassify to sub-categories according to the
          definition in Bird & Liu (2007)
          '''
          # Treat trivial cases of subduction zones and oceanic types
          self.strain.data['region'][
              self.strain.data['region'] == b'IPL'] = ['IPL']
          self.strain.data['region'][
              self.strain.data['region'] == b'S'] = ['SUB']
          self.strain.data['region'][
              self.strain.data['region'] == b'O'] = ['OCB']
  
          # Continental types
          id0 = self.strain.data['region'] == b'C'
          self.strain.data['region'][id0] = ['CTF']
          id0_pos_err = np.logical_and(
              self.strain.data['err'] > 0.,
              self.strain.data['err'] > (0.364 * self.strain.data['e2h']))
  
          id0_neg_err = np.logical_and(
              self.strain.data['err'] < 0.,
              self.strain.data['err'] <= (0.364 * self.strain.data['e1h']))
  
          self.strain.data['region'][np.logical_and(id0, id0_pos_err)] = 'CCB'
          self.strain.data['region'][np.logical_and(id0, id0_neg_err)] = 'CRB'
  
          # Ridge Types
          id0 = self.strain.data['region'] == b'R'
          for iloc in np.where(id0)[0]:
              cond = (self.strain.data['e1h'][iloc] > 0.0 and
                      self.strain.data['e2h'][iloc] > 0.0)
              if cond:
                  self.strain.data['region'][iloc] = 'OSRnor'
              # Effective == 0.0
              elif fabs(self.strain.data['e1h'][iloc]) < 1E-99:
                  self.strain.data['region'][iloc] = 'OSRnor'
              elif ((self.strain.data['e1h'][iloc] *
                     self.strain.data['e2h'][iloc]) < 0.0) and\
                   ((self.strain.data['e1h'][iloc] +
                     self.strain.data['e2h'][iloc]) >= 0.):
                  self.strain.data['region'][iloc] = 'OSR_special_1'
              elif ((self.strain.data['e1h'][iloc] *
                     self.strain.data['e2h'][iloc]) < 0.) and\
                   ((self.strain.data['e1h'][iloc] +
                     self.strain.data['e2h'][iloc]) < 0.):
                  self.strain.data['region'][iloc] = 'OSR_special_2'
              else:
                  self.strain.data['region'][iloc] = 'OCB'