@@ -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 )
0 commit comments