def METHOD_NAME(self, chunks, selector, fields, size):
    chunks = list(chunks)
    if any((ftype != "athena" for ftype, fname in fields)):
        raise NotImplementedError
    rv = {}
    for field in fields:
        rv[field] = np.empty(size, dtype="float64")
    ng = sum(len(c.objs) for c in chunks)
    mylog.debug(
        "Reading %s cells of %s fields in %s grids",
        size,
        [f2 for f1, f2 in fields],
        ng,
    )
    ind = 0
    for chunk in chunks:
        data = self._read_chunk_data(chunk, fields)
        for g in chunk.objs:
            for field in fields:
                ftype, fname = field
                ds = data[g.id].pop(field)
                nd = g.select(selector, ds, rv[field], ind)  # caches
            ind += nd
            data.pop(g.id)
    return rv