def calc_parameters(mgnt, p, vp, posp, negp): """Calculates certain parameters based on passed pixel groups. p: pixels defined by the polar crown vp: finite pixels in the polar crown posp: positive flux pixels in the polar crown negp: negative flux pixels in the polar crown """ swt = 0 meanf = M.nanmean(mgnt.im_raw_u[vp]) meanfc = M.nanmean(mgnt.im_corr[vp]) sumf = M.nansum(mgnt.im_raw_u[vp]) sumfc = M.nansum(mgnt.im_corr[vp]) unsflux = M.nansum(abs(mgnt.mflux_raw[vp])) unsfluxc = M.nansum(abs(mgnt.mflux_corr[vp])) sflux = M.nansum(mgnt.mflux_raw[vp]) sfluxc = M.nansum(mgnt.mflux_corr[vp]) posfluxc = M.nansum(mgnt.mflux_corr[posp]) negfluxc = M.nansum(mgnt.mflux_corr[negp]) visarea = M.nansum(mgnt.area[vp]) max_pxflux = M.nanmax(abs(mgnt.mflux_corr[vp])) max_pxf = M.nanmax(mgnt.im_raw.data[vp]) max_pxfc = M.nanmax(mgnt.im_corr[vp]) # Corrected field might be zero. Replace entries with NaNs. if unsfluxc == 0.0: unsfluxc = M(np.nan, np.nan) sfluxc = M(np.nan, np.nan) posfluxc = M(np.nan, np.nan) negfluxc = M(np.nan, np.nan) max_pxflux = np.nan swt = 4 var = {'meanf': meanf, 'meanfc': meanfc, 'sumf': sumf, 'sumfc': sumfc, 'unsflux': unsflux, 'unsfluxc': unsfluxc, 'sflux': sflux, 'sfluxc': sfluxc, 'posfluxc': posfluxc, 'negfluxc': negfluxc, 'nvp_px': np.size(vp), 'p_ratio': np.size(vp)/np.size(p), 'visarea': visarea, 'max_pxflux': max_pxflux, 'max_pxf': max_pxf, 'max_pxfc': max_pxfc, 'swt': swt} return var