pull halpha from that time from Virtual Solar Observatory GONG archive
        :param correct: remove nans and negatives
        :return: tuple of "halpha", a fits header, and data object for the GONG image at that time
            header and data will be None if request failed

def fetch_halpha(self, correct=True, median_kernel=5):
        """
        pull halpha from that time from Virtual Solar Observatory GONG archive
        :param correct: remove nans and negatives
        :return: tuple of "halpha", a fits header, and data object for the GONG image at that time
            header and data will be None if request failed
        """

        if self.verbose:
            print("Requesting halpha")

        def time_interval(time):
            """ get a window of three minutes around the requested time to ensure an image at GONG cadence"""
            return time - timedelta(minutes=3), time + timedelta(minutes=3)

        # setup the query for an halpha image and fetch, saving the image in the current directory
        client = vso.VSOClient()
        halpha, source = Quantity(656.28, "nm"), "gong"
        query = client.search(vso.attrs.Time(*time_interval(self.date)),
                              vso.attrs.Source(source),
                              vso.attrs.Wavelength(halpha))

        if not query: # no images found in query
            return "halpha", None, None
        else:
            query = query[0]

        result = client.fetch([query], path="./").wait(progress=False)
        time.sleep(1) # sleep because on macs there's sometimes a bug where the file isn't recognized if you dont...

        # open the image and remove the file
        with fits.open(result[0]) as hdu:
            head = hdu[1].header
            data = hdu[1].data
        os.remove(result[0])

        # scale halpha to suvi
        scale = 2.35
        tform = AffineTransform(scale=(scale, scale))  # , translation=(-1280/2,-1280/2))
        data = warp(data, tform, output_shape=(1280, 1280))
        tform = AffineTransform(
            translation=(-(640 - 1024 / scale), -(640 - 1024 / scale)))
        data = warp(data, tform)

        if correct:
            data[np.isnan(data)] = 0
            data[data < 0] = 0

        if median_kernel:
            data = medfilt(data, median_kernel)

        return "halpha", head, data