def crop_image(inlist, outlist, mod): ##mod=intersect or union ##img_list, the r, g, b stacked files img0 = Image(inlist[0]) img1 = Image(inlist[1]) img2 = Image(inlist[2]) if mod=="intersect": ind_zero = ((img0.data <=1.0) | (img1.data <=1.0) | (img2.data <=1.0)) elif mod == "union": ind_zero = ((img0.data <=1.0) & (img1.data <=1.0) & (img2.data <=1.0)) else: ind_zero = (img0.data <=1.0) ind_rows = np.all(ind_zero, axis=0) ind_cols = np.all(ind_zero, axis=1) x_ind_to_rm = np.where(ind_cols==True)[0] y_ind_to_rm = np.where(ind_rows==True)[0] tmp = img0.data[:,[y for y in range(img0.data.shape[1]) if y not in y_ind_to_rm]] img0.data = tmp[[x for x in range(img0.data.shape[0]) if x not in x_ind_to_rm],:] img0.write_to(outlist[0]) tmp = img1.data[:,[y for y in range(img1.data.shape[1]) if y not in y_ind_to_rm]] img1.data = tmp[[x for x in range(img1.data.shape[0]) if x not in x_ind_to_rm],:] img1.write_to(outlist[1]) tmp = img2.data[:,[y for y in range(img2.data.shape[1]) if y not in y_ind_to_rm]] img2.data = tmp[[x for x in range(img2.data.shape[0]) if x not in x_ind_to_rm],:] img2.write_to(outlist[2]) return