def METHOD_NAME(filename):
    """
    The pix files are sparse 3D arrays.
    Will store as a Table and remove invalid data.
    """
    # pylint: disable=unused-variable
    src = open(filename, "rb")
    recs = numpy.fromfile(src, dtype="int32", count=3)
    xgrid = numpy.fromfile(src, dtype="float32", count=recs[0])
    ygrid = numpy.fromfile(src, dtype="float32", count=recs[1])
    idxlon = numpy.fromfile(src, dtype="int16", count=recs[2])
    idxlat = numpy.fromfile(src, dtype="int16", count=recs[2])
    date = numpy.fromfile(src, dtype="int16", count=recs[2] * 3).reshape(3, recs[2])
    time = numpy.fromfile(src, dtype="int16", count=recs[2] * 3).reshape(3, recs[2])
    # lat, lon variables are read to move the buffer pointer
    lat = numpy.fromfile(src, dtype="float32", count=recs[2])  # noqa: F841
    lon = numpy.fromfile(src, dtype="float32", count=recs[2])  # noqa: F841
    aot = numpy.fromfile(src, dtype="float32", count=recs[2])
    src.close()
    obs_lon = xgrid[idxlon]
    obs_lat = ygrid[idxlat]
    timestamps = []
    for i in range(recs[2]):
        timestamps.append(
            dt(date[0, i], date[1, i], date[2, i], time[0, i], time[1, i], time[2, i])
        )
    df = pandas.DataFrame(
        {"timestamp": timestamps, "lon": obs_lon, "lat": obs_lat, "aerosol": aot}
    )
    # throw away bad data
    wh = (df["aerosol"] > 0.0) & (df["aerosol"] <= 1.0)
    df = df[wh]
    df.reset_index(inplace=True, drop=True)
    # get the minimum bounding box
    ul = (df["lon"].min(), df["lat"].max())
    ur = (df["lon"].max(), df["lat"].max())
    lr = (df["lon"].max(), df["lat"].min())
    ll = (df["lon"].min(), df["lat"].min())
    extents = Polygon([ul, ur, lr, ll])
    return df, extents