code: def get_top_edge_depth(self):
          
          areas = self._get_areas()
          depths = numpy.array(
              [surf.get_top_edge_depth() for surf in self.surfaces])
          return numpy.sum(areas * depths) / numpy.sum(areas)
docs: Compute top edge depth of each surface element and return area-weighted
          average value (in km).