If I am not wrong, there is a missing multiplication by grid_mask in L.120 of py102-example2-zernike.py
rec_wf = sum(val * zernikel(i, grid_rho, grid_phi) for (i, val) in enumerate(rec_wf_pow)
should be
rec_wf = sum(val * zernikel(i, grid_rho, grid_phi)*grid_mask for (i, val) in enumerate(rec_wf_pow)
to have a consistent result.