Fetches a suvi composite from a local directory
        NOTE: the suvi_composite_path must be properly set for this methd
        :param product: the requested product, e.g. suvi-l2-c094
        :param correct: remove nans and negatives
        :return: tuple of product name, fits header, and data object
            the header and data object will be None if the request failed

def fetch_suvi_composite(self, product, correct=True, median_kernel=5):
        """
        Fetches a suvi composite from a local directory
        NOTE: the suvi_composite_path must be properly set for this methd
        :param product: the requested product, e.g. suvi-l2-c094
        :param correct: remove nans and negatives
        :return: tuple of product name, fits header, and data object
            the header and data object will be None if the request failed
        """
        path = os.path.join(self.suvi_composite_path, product,
                            "{:4d}/{:02d}/{:02d}/".format(self.date.year, self.date.month, self.date.day))

        if not os.path.isdir(path):
            return product, None, None
        else:  # exists!
            # find the composite with the closest time code
            candidate_fns = [fn for fn in os.listdir(path) if ".fits" in fn
                             and os.path.getsize(os.path.join(path, fn)) > 0]
            candidate_fns = sorted([self.parse_filename_meta(fn) for fn in candidate_fns],
                                   key=lambda entry: abs((self.date - entry[2]).total_seconds()))
            candidate_fns = [entry[0] for entry in candidate_fns]
            with fits.open(os.path.join(path, candidate_fns[0])) as hdus:
                # if the file has the expected number of headers, use it!
                if len(hdus) == 2 and 'empty' in hdus[1].header and not hdus[1].header['empty']:
                    head, data = hdus[1].header, hdus[1].data
                    if correct:
                        data[np.isnan(data)] = 0
                        data[data < 0] = 0

                    if median_kernel:
                        data = medfilt(data, median_kernel)
                    return product, head, data
                else:
                    return product, None, None