def apply(func): def inner(data, **kwargs): Z = func(data, **kwargs) result = [] for element in data: if abs(element) > abs(Z): result.append(element) else: result.append(0.0) return result return inner @apply def cfar(data, N=3): return 1 / N * len(data) * sum(data) @apply def cago_cfar(data, N=3): return max(_cfar(data, N)) @apply def caso_cfar(data, N=3): return min(_cfar(data, N)) @apply def caos_cfar(data, percent): N = int(len(data) / 100 * percent) return sum(sorted(data)[:N]) / (N or 1) def _cfar(data, N): n = len(data) * N res1 = (2/n) * sum(data[:n//2]) res2 = (2/n) * sum(data[(n//2)+1:]) return res1, res2
Comments
0 B
|👍
/👎