I think there are some errors in the way uncertainties are calculated on the cloud properties. I'm sorry I don't have more time to check these right now, but here is what I found. It's roughly ordered from what I'm more confident is incorrect to less. These are all in cloudalyze.py.
RAD_UC, RAD_NODC_UC, RAD_NOEX_UC, and RAD_NODC_NOEX_UC combine rmsx_* with itself in quadrature instead of rmsx_* with rmsy_*.
- The uncertainty on the virial mass (line 431) should multiply the velocity dispersion uncertainty by 4, not 2.
thiscloud["MVIR_UC"] = np.sqrt(thiscloud["RAD_UC"] ** 2 + 4 * thiscloud["SIGV_UC"] ** 2)
- Should the uncertainties on the deconvolved quantities be multiplied by an extra factor from the deconvolution compared to the non-deconvolved versions?
- E.g. the relative uncertainty on
SIGV_KMS would be ((moments_rot['rmsv_ex'] * dv ** 2) / (moments_rot['rmsv_ex'] ** 2 * dv ** 2 - sigchan_kms ** 2)) * uc_dict['rmsv_ex'].
- I think
ucval and ucval_rot (lines 398 and 401) are supposed to be the relative standard error on the median. If that's right then here are a couple points.
- Shouldn't the number of pixels per beam be replaced with the number of bootstrap samples?
- Also, I think for the standard error on the median it should be
np.sqrt(np.pi / 2) * (1 / np.sqrt(N + 2)) * (std / median) (from the approximation here, but could probably be improved with equation 2 here).
I think there are some errors in the way uncertainties are calculated on the cloud properties. I'm sorry I don't have more time to check these right now, but here is what I found. It's roughly ordered from what I'm more confident is incorrect to less. These are all in
cloudalyze.py.RAD_UC,RAD_NODC_UC,RAD_NOEX_UC, andRAD_NODC_NOEX_UCcombinermsx_*with itself in quadrature instead ofrmsx_*withrmsy_*.thiscloud["MVIR_UC"] = np.sqrt(thiscloud["RAD_UC"] ** 2 + 4 * thiscloud["SIGV_UC"] ** 2)SIGV_KMSwould be((moments_rot['rmsv_ex'] * dv ** 2) / (moments_rot['rmsv_ex'] ** 2 * dv ** 2 - sigchan_kms ** 2)) * uc_dict['rmsv_ex'].ucvalanducval_rot(lines 398 and 401) are supposed to be the relative standard error on the median. If that's right then here are a couple points.np.sqrt(np.pi / 2) * (1 / np.sqrt(N + 2)) * (std / median)(from the approximation here, but could probably be improved with equation 2 here).