docs: def initialize_sector_geometry(self, phi):
          """
          Initialize geometry attributes associated with an elliptical
          sector at the given polar angle ``phi``.
  
          This function computes:
  
          * the four vertices that define the elliptical sector on the
            pixel array.
          * the sector area (saved in the ``sector_area`` attribute)
          * the sector angular width (saved in ``sector_angular_width``
            attribute)
  
          Parameters
          ----------
          phi : float
              The polar angle (radians) where the sector is located.
  
          Returns
          -------
          x, y : 1D `~numpy.ndarray`
              The x and y coordinates of each vertex as 1D arrays.
          """
  
          # These polar radii bound the region between the inner
          # and outer ellipses that define the sector.
          sma1, sma2 = self.bounding_ellipses()
          eps_ = 1. - self.eps
  
          # polar vector at one side of the elliptical sector
          self._phi1 = phi - self.sector_angular_width / 2.
          r1 = (sma1 * eps_ / math.sqrt((eps_ * math.cos(self._phi1))**2
                                        + (math.sin(self._phi1))**2))
          r2 = (sma2 * eps_ / math.sqrt((eps_ * math.cos(self._phi1))**2
                                        + (math.sin(self._phi1))**2))
  
          # polar vector at the other side of the elliptical sector
          self._phi2 = phi + self.sector_angular_width / 2.
          r3 = (sma2 * eps_ / math.sqrt((eps_ * math.cos(self._phi2))**2
                                        + (math.sin(self._phi2))**2))
  
          r4 = (sma1 * eps_ / math.sqrt((eps_ * math.cos(self._phi2))**2
                                        + (math.sin(self._phi2))**2))
  
          # sector area
          sa1 = _area(sma1, self.eps, self._phi1, r1)
          sa2 = _area(sma2, self.eps, self._phi1, r2)
          sa3 = _area(sma2, self.eps, self._phi2, r3)
          sa4 = _area(sma1, self.eps, self._phi2, r4)
          self.sector_area = abs((sa3 - sa2) - (sa4 - sa1))
  
          # angular width of sector. It is calculated such that the sectors
          # come out with roughly constant area along the ellipse.
          self.sector_angular_width = max(min((self._area_factor / (r3 - r4) /
                                               r4), self._phi_max),
                                          self._phi_min)
  
          # compute the 4 vertices that define the elliptical sector.
          vertex_x = np.zeros(shape=4, dtype=float)
          vertex_y = np.zeros(shape=4, dtype=float)
  
          # vertices are labelled in counterclockwise sequence
          vertex_x[0:2] = np.array([r1, r2]) * math.cos(self._phi1 + self.pa)
          vertex_x[2:4] = np.array([r4, r3]) * math.cos(self._phi2 + self.pa)
          vertex_y[0:2] = np.array([r1, r2]) * math.sin(self._phi1 + self.pa)
          vertex_y[2:4] = np.array([r4, r3]) * math.sin(self._phi2 + self.pa)
          vertex_x += self.x0
          vertex_y += self.y0
  
          return vertex_x, vertex_y