@classmethod
def run(cls, excl_fpath, res_fpath, dset, save_flag=True,
    distance_upper_bound=0.03, map_chunk=2560, max_workers=None):
    """Run parallel mapping and save to h5 file.

        Parameters
        ----------
        excl_fpath : str
            Filepath to exclusions h5 (tech layer). dset will be
            created in excl_fpath.
        res_fpath : str
            Filepath to .h5 resource file that we're mapping to.
        dset : str
            Dataset name in excl_fpath to save mapping results to.
        save_flag : bool
            Flag to write techmap to excl_fpath.
        kwargs : dict
            Keyword args to initialize the TechMapping object.

        Returns
        -------
        lats : np.ndarray
            2D un-projected latitude array of tech exclusion points.
            0's if no res point found. Shape is equal to exclusions shape.
        lons : np.ndarray
            2D un-projected longitude array of tech exclusion points.
            0's if no res point found. Shape is equal to exclusions shape.
        ind_all : np.ndarray
            Index values of the NN resource point. -1 if no res point found.
            2D integer array with shape equal to the exclusions extent shape.
        """
    kwargs = {'distance_upper_bound': distance_upper_bound, 'map_chunk':
        map_chunk, 'max_workers': max_workers}
    with cls(excl_fpath, res_fpath, dset, **kwargs) as mapper:
        lats, lons, ind = mapper._parallel_resource_map()
        distance_upper_bound = mapper._distance_upper_bound
    if save_flag:
        mapper.save_tech_map(lats, lons, ind, excl_fpath, res_fpath, dset,
            distance_upper_bound)
    return lats, lons, ind
