Download the data from source url, unless it's already here.
        Args:
            filename: string, name of the file in the directory.
            work_directory: string, path to working directory.
            source_url: url to download from if file doesn't exist.
        Returns:
            Path to resulting file.

def maybe_download(self, filename, work_directory, source_url):
        """Download the data from source url, unless it's already here.
        Args:
            filename: string, name of the file in the directory.
            work_directory: string, path to working directory.
            source_url: url to download from if file doesn't exist.
        Returns:
            Path to resulting file.
        """
        if not os.path.exists(work_directory):
            os.makedirs(work_directory)
        filepath = os.path.join(work_directory, filename)
        if not os.path.exists(filepath):
            temp_file_name, _ = urllib.request.urlretrieve(source_url)
            copyfile(temp_file_name, filepath)
            print('Successfully downloaded', filename)
        return filepath