code: def get_dip(self):
          
          areas = self._get_areas()
          dips = numpy.array([surf.get_dip() for surf in self.surfaces])
  
          return numpy.sum(areas * dips) / numpy.sum(areas)
docs: Compute dip of each surface element and return area-weighted average
          value (in range ``(0, 90]``).
  
          Given that dip values are constrained in the range (0, 90], the simple
          formula for weighted mean is used.