@classmethod
def run(cls, wind_dirs, sc_points, n_dirs=2, sort_on='total_lcoe', downwind
    =False, out_fpath=None):
    """
        Exclude given number of neighboring Supply Point gids based on most
        prominent wind directions

        Parameters
        ----------
        wind_dirs : pandas.DataFrame | str
            path to .csv or reVX.wind_dirs.wind_dirs.WindDirs output with
            the neighboring supply curve point gids and power-rose value at
            each cardinal direction
        sc_points : pandas.DataFrame | str
            Supply curve point summary table
        n_dirs : int, optional
            Number of prominent directions to use, by default 2
        sort_on : str, optional
            column to sort on before excluding neighbors,
            by default 'total_lcoe'
        downwind : bool, optional
            Flag to remove downwind neighbors as well as upwind neighbors,
            by default False
        out_fpath : str, optional
            Path to .csv file to save updated sc_points to,
            by default None

        Returns
        -------
        sc_points : pandas.DataFrame
            Updated supply curve points after removing non-competative
            wind farms
        """
    cwf = cls(wind_dirs, sc_points, n_dirs=n_dirs)
    sc_points = cwf.remove_noncompetitive_farm(sc_points, sort_on=sort_on,
        downwind=downwind)
    if out_fpath is not None:
        sc_points.to_csv(out_fpath, index=False)
    return sc_points
