def METHOD_NAME(snap: Snapshot) -> pd.DataFrame:
    """Read raw data from source 1 and build a dataframe."""
    log.info("ozone_hole_area: loading data from source 1")
    # Read data
    text = _read_txt_without_comments(snap.path)
    # Sanity checks
    assert re.match(r"\s+Ozone Hole Area\s+Minimum Ozone\n", text[0]), "Data file header might have changed."
    assert re.match(r"\s+Date\s+Value\s+Date\s+Value\n", text[1]), "Data file header might have changed."
    assert re.match(
        r"Year\s+\(YYMM\)\s+\(mil km2\)\s+\(YYMM\)\s+\(DU\)\n", text[2]
    ), "Data file header might have changed."
    assert re.match(r"\-{4}\s+\-{6}\s+\-{9}\s+\-{6}\s+\-{5}\n", text[3]), "Data file header might have changed."
    assert text[4].startswith("1979"), "First expected reported year should be 1979"
    # Get only data values
    text = text[4:]
    text = [re.split(r"\s+", t.strip()) for t in text]
    # Build dataframe
    df = pd.DataFrame.from_records(
        text,
        columns=[
            "year",
            "max_hole_area_date",
            "max_hole_area",
            "min_hole_concentration_date",
            "min_hole_concentration",
        ],
    )
    # Get dates in date format
    df["max_hole_area_date"] = pd.to_datetime(df["year"] + df["max_hole_area_date"], format="%Y%m%d")
    df["min_hole_concentration_date"] = pd.to_datetime(df["year"] + df["min_hole_concentration_date"], format="%Y%m%d")
    return df