EoRImaging / eppsilon

eppsilon - error propagated power spectrum with interleaved observed noise
BSD 2-Clause "Simplified" License
5 stars 4 forks source link

Error when calculating the FoV of image for a ultralow data #146

Open syoshiura opened 3 years ago

syoshiura commented 3 years ago

When I ran epsilon for a ultralow data using a commend below IDL> ps_Wrapper,'/fred/oz048/MWA/data/1097159712/fhd_sy_limit_wForA_v2/','1097159712',spec_window_type='Blackman-Nutall',refresh_beam=1 , I got an error like Image FoV is smaller than expected, increasing delta kperp to match image FoV % CHOOSE_PIX_FT: No image pixels included in FoV cut. % Execution halted at: CHOOSE_PIX_FT 152 /fred/oz048/syoshiur/eppsilon/ps_utils/choose_pix_ft.pro % PS_IMAGE_TO_UVF 260 /fred/oz048/syoshiur/eppsilon/ps_core/ps_image_to_uvf.pro % PS_KCUBE 163 /fred/oz048/syoshiur/eppsilon/ps_core/ps_kcube.pro % PS_POWER 20 /fred/oz048/syoshiur/eppsilon/ps_core/ps_power.pro % PS_MAIN_PLOTS 272 /fred/oz048/syoshiur/eppsilon/ps_core/ps_main_plots.pro % PS_WRAPPER 304 /fred/oz048/syoshiur/eppsilon/ps_wrappers/ps_wrapper.pro % GET_FOLDER 16 /fred/oz048/syoshiur/eppsilon/ps_wrappers/get_folder.pro % PS_WRAPPER 56 /fred/oz048/syoshiur/eppsilon/ps_wrappers/ps_wrapper.pro % $MAIN$ % Program caused arithmetic error: Floating divide by 0 % Program caused arithmetic error: Floating illegal operand.

nicholebarry commented 3 years ago

Note: running with the uvf_input=1 mode worked, so something is weird with the HEALPix mode.

syoshiura commented 3 years ago

I haven't solve the problem, but let me report something. Following the error No image pixels included in FoV cut., I inspected image_len, which is a variable in choose_pix_ft.pro, given as image_len = min([limits[2]-limits[0],limits[3]-limits[1]]) , and it is negative (-0.10372800). The limits values are, limits = 0.78376472 0.81083477 0.70710677 0.70710677 , it seems that something is wrong. I guess limits[0] should be lower than limits[2], and the values should be negative (right?). This result came from function of healpix_limits, lims2 = amoeba(1.0e-5, function_name = 'limits_fom', scale=length_scales, p0 = lims, function_value=fval, ncalls = ncalls) and n_out_inside and n_inside, which are variables in limits_fom, are zero after running amoeba. I think the minimization failed. I'm still learning the meaning of healpix_limits though...

syoshiura commented 3 years ago

The epsilon worked by modifying the weights of the first term of loss function in healpix_limits.pro as fom = **10***double(n_out_inside)/n_pts_out + double((n_pts - n_inside))/n_pts + (max_len_ratio-1). Limits, ranges and counts are

limits     -0.17706251     -0.17794004      0.98340462      0.98252772
x_y_ranges     -0.35901467      0.52515461     -0.35958667      0.52458261
count close       53181

The result of power spectrum looks fairly consistent with the result with the uvf_input=1mode (but not identical).

I'm not sure if this edit is safe. I'd be happy if someone let me know if there is anything to be noticed.