code: def update(self):
          
  
          step = self.geometry.astep
  
          # Update the mean value first, using extraction from main sample.
          s = self.extract()
          self.mean = np.mean(s[2])
  
          # Get sample with same geometry but at a different distance from
          # center. Estimate gradient from there.
          gradient, gradient_error = self._get_gradient(step)
  
          # Check for meaningful gradient. If no meaningful gradient, try
          # another sample, this time using larger radius. Meaningful
          # gradient means something  shallower, but still close to within
          # a factor 3 from previous gradient estimate. If no previous
          # estimate is available, guess it.
          previous_gradient = self.gradient
          if not previous_gradient:
              previous_gradient = -0.05    # good enough, based on usage
  
          if gradient >= (previous_gradient / 3.):   # gradient is negative!
              gradient, gradient_error = self._get_gradient(2 * step)
  
          # If still no meaningful gradient can be measured, try with
          # previous one, slightly shallower. A factor 0.8 is not too far
          # from what is expected from geometrical sampling steps of 10-20%
          # and a deVaucouleurs law or an exponential disk (at least at its
          # inner parts, r <~ 5 req). Gradient error is meaningless in this
          # case.
          if gradient >= (previous_gradient / 3.):
              gradient = previous_gradient * 0.8
              gradient_error = None
  
          self.gradient = gradient
          self.gradient_error = gradient_error
          if gradient_error:
              self.gradient_relative_error = gradient_error / np.abs(gradient)
          else:
              self.gradient_relative_error = None
docs: Update this `~photutils.isophote.EllipseSample` instance.
  
          This method calls the
          :meth:`~photutils.isophote.EllipseSample.extract` method to get
          the values that match the current ``geometry`` attribute, and
          then computes the the mean intensity, local gradient, and other
          associated quantities.