Works quite well in simple tests! Idea is to find maximum in freq-doppler space, blank signal in freq-time space, then rerun doppler and find next maximum in freq-doppler space. Code gist:
data = np.copy(np.expand_dims(frame.data, axis=1))
data = normalize(data.astype('float32'), return_space='cpu')
dd, _md = dedoppler(data, metadata, max_dd=1.0, return_space='cpu')
plt.imshow(dd.data.squeeze(), aspect='auto')
hits = find_hits_recursive(frame.data)
h = np.array(hits)
plt.scatter(h[:, 2], h[:, 0], color='red', marker='x')
Main advantage is that it can find hits hiding behind very bright signals. Would likely need a lot of optimizations if used in practice, but could be good to get rid of high S/N hits as a first-pass
Works quite well in simple tests! Idea is to find maximum in freq-doppler space, blank signal in freq-time space, then rerun doppler and find next maximum in freq-doppler space. Code gist:
Then plotting:
Main advantage is that it can find hits hiding behind very bright signals. Would likely need a lot of optimizations if used in practice, but could be good to get rid of high S/N hits as a first-pass