def getDMCparam(fn: Path, xyPix, xyBin,
                FrameIndReq=None, ut1req=None, kineticsec=None, startUTC=None, nHeadBytes=4, verbose=0):
    """
    nHeadBytes=4 for 2013-2016 data
    nHeadBytes=0 for 2011 data
    """
    Nmetadata = nHeadBytes // 2  # FIXME for DMCdata version 1 only

    if not fn.is_file():  # leave this here, getsize() doesn't fail on directory
        raise ValueError(f'{fn} is not a file!')

    print(f'reading {fn}')

    # int() in case we are fed a float or int
    SuperX = int(xyPix[0] // xyBin[0])
    SuperY = int(xyPix[1] // xyBin[1])

    PixelsPerImage, BytesPerImage, BytesPerFrame = howbig(
        SuperX, SuperY, nHeadBytes)

    (firstRawInd, lastRawInd) = getRawInd(
        fn, BytesPerImage, nHeadBytes, Nmetadata)

    FrameIndRel = whichframes(fn, FrameIndReq, kineticsec, ut1req, startUTC, firstRawInd, lastRawInd,
                              BytesPerImage, BytesPerFrame, verbose)

    return {'superx': SuperX, 'supery': SuperY, 'nmetadata': Nmetadata,
            'bytesperframe': BytesPerFrame, 'pixelsperimage': PixelsPerImage,
            'nframeextract': FrameIndRel.size,
            'frameindrel': FrameIndRel}
nHeadBytes=4 for 2013-2016 data
    nHeadBytes=0 for 2011 data