def _extract_special(current, table_data):
    """
    Extract year, age, and depth column from table data
    :param dict table_data: Data at the table level
    :param dict current: Current data
    :return dict current:
    """
    logger_ts.info("enter extract_special")
    try:
        # Add age, year, and depth columns to ts_root where possible
        for k, v in table_data['columns'].items():
            s = ""

            # special case for year bp, or any variation of it. Translate key to "age""
            if "bp" in k.lower():
                s = "age"

            # all other normal cases. clean key and set key.
            elif any(x in k.lower() for x in ('age', 'depth', 'year', "yr", "distance_from_top", "distance")):
                # Some keys have units hanging on them (i.e. 'year_ad', 'depth_cm'). We don't want units on the keys
                if re_pandas_x_und.match(k):
                    s = k.split('_')[0]
                elif "distance" in k:
                    s = "depth"
                else:
                    s = k

            # create the entry in ts_root.
            if s:
                try:
                    current[s] = v['values']
                except KeyError as e:
                    # Values key was not found.
                    logger_ts.warn("extract_special: KeyError: 'values' not found, {}".format(e))
                try:
                    current[s + 'Units'] = v['units']
                except KeyError as e:
                    # Values key was not found.
                    logger_ts.warn("extract_special: KeyError: 'units' not found, {}".format(e))

    except Exception as e:
        logger_ts.error("extract_special: {}".format(e))

    return current
Extract year, age, and depth column from table data
    :param dict table_data: Data at the table level
    :param dict current: Current data
    :return dict current: