docs: def get_magnitude_depth_distribution(self, magnitude_bins, depth_bins,
                                           normalisation=False, bootstrap=None):
          '''
          Returns a 2-D magnitude-depth histogram for the catalogue
  
          :param numpy.ndarray magnitude_bins:
               Bin edges for the magnitudes
  
          :param numpy.ndarray depth_bins:
              Bin edges for the depths
  
          :param bool normalisation:
              Choose to normalise the results such that the total contributions
              sum to 1.0 (True) or not (False)
  
          :param int bootstrap:
              Number of bootstrap samples
  
          :returns:
              2D histogram of events in magnitude-depth bins
          '''
          if len(self.data['depth']) == 0:
              # If depth information is missing
              raise ValueError('Depths missing in catalogue')
  
          if len(self.data['depthError']) == 0:
              self.data['depthError'] = np.zeros(self.get_number_events(),
                                                 dtype=float)
  
          if len(self.data['sigmaMagnitude']) == 0:
              self.data['sigmaMagnitude'] = np.zeros(self.get_number_events(),
                                                     dtype=float)
  
          return bootstrap_histogram_2D(self.data['magnitude'],
                                        self.data['depth'],
                                        magnitude_bins,
                                        depth_bins,
                                        boundaries=[(0., None), (None, None)],
                                        xsigma=self.data['sigmaMagnitude'],
                                        ysigma=self.data['depthError'],
                                        normalisation=normalisation,
                                        number_bootstraps=bootstrap)