code: def from_cap(cls, theta, lwin, clat=None, clon=None, nwin=None,
                   theta_degrees=True, coord_degrees=True, dj_matrix=None,
                   weights=None):
          
          if theta_degrees:
              tapers, eigenvalues, taper_order = _shtools.SHReturnTapers(
                  _np.radians(theta), lwin)
          else:
              tapers, eigenvalues, taper_order = _shtools.SHReturnTapers(
                  theta, lwin)
  
          return SHWindowCap(theta, tapers, eigenvalues, taper_order,
                             clat, clon, nwin, theta_degrees, coord_degrees,
                             dj_matrix, weights, copy=False)
docs: Construct spherical cap localization windows.
  
          Usage
          -----
          x = SHWindow.from_cap(theta, lwin, [clat, clon, nwin, theta_degrees,
                                              coord_degrees, dj_matrix, weights])
  
          Returns
          -------
          x : SHWindow class instance
  
          Parameters
          ----------
          theta : float
              Angular radius of the spherical cap localization domain (default
              in degrees).
          lwin : int
              Spherical harmonic bandwidth of the localization windows.
          clat, clon : float, optional, default = None
              Latitude and longitude of the center of the rotated spherical cap
              localization windows (default in degrees).
          nwin : int, optional, default (lwin+1)**2
              Number of localization windows.
          theta_degrees : bool, optional, default = True
              True if theta is in degrees.
          coord_degrees : bool, optional, default = True
              True if clat and clon are in degrees.
          dj_matrix : ndarray, optional, default = None
              The djpi2 rotation matrix computed by a call to djpi2.
          weights : ndarray, optional, default = None
              Taper weights used with the multitaper spectral analyses.