@staticmethod
def _fromlines(lines):
    """Interpret a list of lines as a header, converting its values."""
    args = []
    for line_no, line in enumerate(lines):
        split = line.strip().split('#')
        comment = split[1].strip() if len(split) > 1 and split[1] else None
        split = split[0].strip().split() if split else []
        key = split[0] if split and split[0] else '_{0:d}'.format(line_no)
        value = split[1] if len(split) > 1 and split[1] else None
        if key in ('FILE_SIZE', 'FILE_NUMBER', 'HDR_SIZE', 'OBS_OFFSET',
            'OBS_OVERLAP', 'NBIT', 'NDIM', 'NPOL', 'NCHAN', 'RESOLUTION', 'DSB'
            ):
            value = int(value)
        elif key in ('FREQ', 'BW', 'TSAMP'):
            value = float(value)
        args.append((key, (value, comment)))
    return args
