code: def fetch_suvi_composite(self, product, correct=True, median_kernel=5):
          
          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
docs: 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