Source code for tw_source_finder.breizorro_extract

import numpy as np
import scipy.ndimage
import scipy.special

# extracted from breizorro (https://github.com/ratt-ru/breizorro)


[docs]def make_noise_map(input_image_array, boxsize=50): # Cyril's magic minimum filter # Plundered from the depths of https://github.com/cyriltasse/DDFacet/blob/master/SkyModel/MakeMask.py box = (boxsize, boxsize) n = boxsize**2.0 x = np.linspace(-10, 10, 1000) f = 0.5 * (1.0 + scipy.special.erf(x / np.sqrt(2.0))) F = 1.0 - (1.0 - f) ** n ratio = np.abs(np.interp(0.5, F, x)) noise = -scipy.ndimage.filters.minimum_filter(input_image_array, box) / ratio negative_mask = noise < 0.0 noise[negative_mask] = 1.0e-10 median_noise = np.median(noise) median_mask = noise < median_noise noise[median_mask] = median_noise return median_noise