Thanks for the question. Assuming LA refers to numpy.linalg , I believe your implementation is mathematically equivalent to the method demonstrated in Section 3.3 of NB 303.2. I recommend comparing the results of both methods to ensure consistency. If this addresses your question, please mark this as the solution.
Just to clarify: gauss2d has no support for WCS or physical units. The main difference between the Covariance and lsst.afw.geom.ellipses.Quadrupole classes - besides the interfaces - is that gauss2d avoids taking the sqrt of negative numbers due to floating point roundoff.
Note that in DP2 the reff_x/y will be in arcsec rather than pixels. If you’re interested, I can point you at how and where that conversion is done using a local WCS, but the correction is very small and converting using a 0.2" pixel scale is fine for DP1.
Thank you @dtaranu for your clarification. I’ve modified my initial response to incorporate your feedback and to ensure that future users are not misled by any inaccuracies.
It is good to know that DP2 provides these measurements in arcsec.
Major/minor axis and position angle columns will be available in DP2. The reason the parameters are given as correlation/covariance matrix terms is because that’s what multiprofit (and meas_modelfit for CModel) fit and - for multiprofit - provide uncertainties for.