Skip to content

Commit 860eea8

Browse files
committed
Line finding works (sort of)
1 parent c4ea8d9 commit 860eea8

File tree

3 files changed

+40
-21
lines changed

3 files changed

+40
-21
lines changed

dedisperse/dedisperse.py

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def dedisperse(samples, dm=None):
1111

1212
if dm is None:
1313
print("Finding possible DM's")
14-
dm = estimate_dm(samples)
14+
dm = find_initial_line(samples)
1515

1616
# Distribute the DM over the amount of samples
1717
delays_per_sample = np.round(np.linspace(dm, 0, samples.shape[1])).astype(int)
@@ -94,29 +94,52 @@ def find_initial_line(samples):
9494
'''
9595

9696
avg_intensity = find_avg_intensity(samples, 10)
97-
max_delay = 8
97+
max_delay = 10
9898

99-
for s, sample in enumerate(samples[:, 1]):
99+
for s, sample in enumerate(samples[:, 0]):
100100
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)
101+
start_sample_index = s
102+
print("Attempting to find line on freq,", 0, "sample", s)
103+
line_coordinates = find_line(samples, start_sample_index, max_delay, avg_intensity)
104+
if(line_coordinates is not None):
105+
dm = line_coordinates[1] - line_coordinates[0]
106+
print(dm)
107+
return dm
104108

105109

106-
print("NO INITIAL SIGNAL FOUND")
110+
107111
return None
108112

109113

110-
def find_line(samples, previous_sample_index, max_delay, avg_intensity):
114+
def find_line(samples, start_sample_index, max_delay, avg_intensity):
115+
116+
previous_sample_index = start_sample_index
117+
break_freq_loop = True
118+
break_samples_loop = False
119+
111120
for f, frequency in enumerate(samples[1]):
112-
for i, intensity in enumerate(samples[:, f][previous_sample_index:previous_sample_index+max_delay]):
121+
for i, intensity in enumerate(samples[:, f][previous_sample_index:previous_sample_index + max_delay]):
122+
if(f == 0):
123+
break_freq_loop = False
124+
break
125+
#print(previous_sample_index, previous_sample_index+max_delay)
113126
if(intensity > avg_intensity):
114-
print("Continuing to find line on freq,", f, "sample", i, intensity)
115-
previous_sample_index = i
127+
print("Continuing to find line on freq,", f, "sample", previous_sample_index + i, intensity)
128+
previous_sample_index = previous_sample_index + i
129+
break_freq_loop = False
130+
break_samples_loop = True
116131
break
117-
else:
118-
continue
119-
132+
133+
if break_freq_loop:
134+
break
135+
136+
if break_freq_loop:
137+
print("Failed to find line")
138+
return None
139+
140+
print("All freqs are looped")
141+
return start_sample_index, previous_sample_index
142+
120143

121144

122145
def find_avg_intensity(samples, top = 10):

examples/dedisperse_samples.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,8 @@
2323

2424
frequencies, samples = special_pspm.select_data()
2525

26-
# Use this if you have your own file with a clear pulsar signal, this method assumes all signals other than the pulsar are lower than 10
27-
print_possible_dm(samples)
28-
2926
# Dispersion Measure
30-
DM = 240
27+
DM = 235
3128

3229
plt.subplot(2,1,1)
3330
data, extent = waterfall_plot(samples, frequencies)

examples/dedisperse_stream.py

Lines changed: 2 additions & 3 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-
samples = dedisperse.find_initial_line(samples)
54+
#samples = dedisperse.find_initial_line(samples)
5555

5656
plt.subplot(2,1,1)
5757
data, extent = waterfall_plot(samples, frequencies)
@@ -63,7 +63,6 @@
6363
interpolation='nearest',
6464
extent=extent,
6565
cmap='cubehelix')
66-
plt.colorbar()
6766

6867
time_series = []
6968

0 commit comments

Comments
 (0)