Skip to content

Commit c4ea8d9

Browse files
committed
Progression on finding signal based on continuous signal
1 parent d44436f commit c4ea8d9

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

dedisperse/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""
22
import file for dedisperse.py
33
"""
4-
from .dedisperse import dedisperse, estimate_dm, find_initial_signal
4+
from .dedisperse import dedisperse, estimate_dm, find_initial_signal, find_initial_line

dedisperse/dedisperse.py

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def estimate_dm(samples):
4646
if(j > last_sample[1]):
4747
if(data_point > 10):
4848
last_sample = i, j
49-
#print("At Frequency ", i, " found on Time sample ", j, " - ", data_point)
49+
print("At Frequency ", i, " found on Time sample ", j, " - ", data_point)
5050
break
5151

5252
highest_difference = 0
@@ -75,19 +75,61 @@ def find_initial_signal(samples):
7575
for i, frequency in enumerate(samples[1]):
7676
for j, data_point in enumerate(samples[:, i]):
7777
if(j < lowest_sample[1]):
78-
if(data_point > 1):
79-
print("Initial signal found on freq, sample", i, j)
78+
if(data_point > 5):
79+
print("Initial signal found on freq, sample", i, j, data_point)
8080
return i, j
8181
'''
8282
print(lowest_sample, " ", j)
83-
print("At Frequency ", i, " found on Time sample ", j, " - ", data_point)
8483
lowest_sample = i, j
8584
break
86-
if(lowest_sample[1] == 0):
87-
print("", lowest_sample)
88-
return i, j
8985
'''
9086

9187
print("NO INITIAL SIGNAL FOUND")
9288
return None
9389

90+
91+
def find_initial_line(samples):
92+
'''
93+
This method attempts to find a line to dedisperse
94+
'''
95+
96+
avg_intensity = find_avg_intensity(samples, 10)
97+
max_delay = 8
98+
99+
for s, sample in enumerate(samples[:, 1]):
100+
if(sample > avg_intensity):
101+
previous_sample_index = s
102+
print("Attempting to find line on freq,", 1, "sample", s)
103+
find_line(samples, previous_sample_index, max_delay, avg_intensity)
104+
105+
106+
print("NO INITIAL SIGNAL FOUND")
107+
return None
108+
109+
110+
def find_line(samples, previous_sample_index, max_delay, avg_intensity):
111+
for f, frequency in enumerate(samples[1]):
112+
for i, intensity in enumerate(samples[:, f][previous_sample_index:previous_sample_index+max_delay]):
113+
if(intensity > avg_intensity):
114+
print("Continuing to find line on freq,", f, "sample", i, intensity)
115+
previous_sample_index = i
116+
break
117+
else:
118+
continue
119+
120+
121+
122+
def find_avg_intensity(samples, top = 10):
123+
'''
124+
Finds average intensity for top x intensities
125+
'''
126+
127+
sum_intensities = 0
128+
# Looks for the 3 highest intensities in the first 10 samples
129+
for sample in samples:
130+
#top_samples.append((sorted([(x,i) for (i,x) in enumerate(sample)], reverse=True)[:3] ))
131+
sum_intensities += np.sum(sorted(sample, reverse=True)[:top])
132+
133+
avg_intensity = (sum_intensities) / (samples.shape[0] * top)
134+
135+
return (avg_intensity)

examples/dedisperse_stream.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@
4848
plt.show()
4949

5050
#clipped_samples = clipping(frequencies, samples)
51-
samples = dedisperse.dedisperse(samples)
51+
#samples = dedisperse.dedisperse(samples)
5252
#samples = dedisperse.find_lowest_pulsar(samples)
5353
#samples = dedisperse.estimate_dm(samples)
54-
54+
samples = dedisperse.find_initial_line(samples)
5555

5656
plt.subplot(2,1,1)
5757
data, extent = waterfall_plot(samples, frequencies)

0 commit comments

Comments
 (0)