def METHOD_NAME(directory, filename, array=False, full_filename=False):
    """ Read a FF structure from a FITS file. 
    Arguments:
        directory: [str] Path to directory containing file
        filename: [str] Name of FF*.fits file (either with FF and extension or without)
    Keyword arguments:
        array: [ndarray] True in order to populate structure's array element (default is False)
        full_filename: [bool] True if full file name is given explicitly, a name which may differ from the
            usual FF*.fits format. False by default.
    Return:
        [ff structure]
    """
    # Make sure the file starts with "FF_"
    if (filename.startswith('FF') and ('.fits' in filename)) or full_filename:
        fid = open(os.path.join(directory, filename), "rb")
    else:
        fid = open(os.path.join(directory, "FF_" + filename + ".fits"), "rb")
    # Init an empty FF structure
    ff = FFStruct()
    # Read in the FITS
    hdulist = fits.open(fid)
    # Read the header
    head = hdulist[0].header
    # Read in the data from the header
    ff.nrows = head['NROWS']
    ff.ncols = head['NCOLS']
    ff.nbits = head['NBITS']
    ff.nframes = head['NFRAMES']
    ff.first = head['FIRST']
    ff.camno = head['CAMNO']
    ff.fps = head['FPS']
    # Read in the image data
    ff.maxpixel = hdulist[1].data
    ff.maxframe = hdulist[2].data
    ff.avepixel = hdulist[3].data
    ff.stdpixel = hdulist[4].data
    if array:
        ff.array = np.dstack([ff.maxpixel, ff.maxframe, ff.avepixel, ff.stdpixel])
        ff.array = np.swapaxes(ff.array, 0, 1)
        ff.array = np.swapaxes(ff.array, 0, 2)
    # CLose the FITS file
    hdulist.close()
    return ff