def binFunc (data, bins, mean, std, binWidth, leftBin):
m,n = data.shape;
for i in range(m):
for j in range(n):
p_mean = mean[i,j];
p_std = std[i,j];
p_bin_w = binWidth[i][j]
p_data = data[i][j];
if p_data < p_mean - p_std :
leftBin[i,j] +=1;
if(p_data >= p_mean - p_std and p_data < p_mean + p_std) :
index = int((p_data-(p_mean-p_std))/p_bin_w)
bins[i, j,index] +=1
return bins, leftBin;
def median_bins_fits(imageArr, noOfBins):
mean, stdDev = calcMeanStdDev(imageArr);
# minVal = mean - stdDev;
# maxVal = mean + stdDev;
binWidth = (2*stdDev)/noOfBins;
firstImage = load_fits(imageArr[0])
leftbin = np.zeros_like(firstImage)
m,n = leftbin.shape;
binsMat = np.zeros((m,n,noOfBins));
for fname in imageArr :
data = load_fits(fname);
mat = np.array(data);
print("image i:", fname)
binsMat, leftbin = binFunc(data, binsMat, mean, stdDev,binWidth, leftbin)
return mean, stdDev, leftbin, binsMat