Skip to content

Commit

Permalink
- Added Residual to noise ratio
Browse files Browse the repository at this point in the history
- Fixed a bug with figure
- Nyquist frequency is more stable (when most common value is 0)
  • Loading branch information
MarcoMuellner committed Nov 13, 2018
1 parent 9f81d04 commit 7ced867
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 9 deletions.
2 changes: 1 addition & 1 deletion smurfs/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.4.0"
__version__ = "0.4.2"
6 changes: 4 additions & 2 deletions smurfs/analysis/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ def run(file: str, snrCriterion: float, windowSize: float, **kwargs):
tList.append(t)
iList.append(i)

result[(data[0][0], max(data[0]))] = frequencyList
print(term.format(f"Residual noise {frequencyList[-1][4]}", term.Color.GREEN))

result[(data[0][0], max(data[0]),frequencyList[-1][4])] = frequencyList
if defines.dieGracefully:
break

Expand All @@ -83,5 +85,5 @@ def run(file: str, snrCriterion: float, windowSize: float, **kwargs):


waitForProcessesFinished()
writeResults("results/results.txt",result,nyquistFrequency(fileData))
writeResults("results/results.csv",result,nyquistFrequency(fileData))

3 changes: 2 additions & 1 deletion smurfs/files/dataHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ def writeResults(file: str, data: Dict[Tuple[float,float],List[Tuple[float,float
f.write("Lowerrange;Upperrange;f(c/d);f_err(c/d);snr;amp;amp_err;phase;phase_err\n")
for key,value in data.items():
f.write(f"{key[0]};{key[1]};;;;;;;\n")
f.write(f"Residuals to noise;{key[2]};;;;;;;\n")

for i in value:
text = ";"
Expand Down Expand Up @@ -206,4 +207,4 @@ def saveAmpSpectrumAndImage(ampSpectrum: np.ndarray, path: str, name: str):
plotData = {name:(ampSpectrum, '-')}
p = plotCustom(name,plotData,xLabel="Frequency(c/d)",yLabel="Amplitude")
p.savefig(name+".pdf")
pl.close(fig=p)
pl.close()
10 changes: 5 additions & 5 deletions smurfs/timeseries/timerseries.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def findMostCommonDiff(time: np.ndarray) -> float:
:return:
"""
realDiffX = time[1:len(time)] - time[0:len(time) - 1]
realDiffX = realDiffX[realDiffX!=0]
(values, counts) = np.unique(realDiffX, return_counts=True)
mostCommon = values[np.argmax(counts)]
return mostCommon
Expand Down Expand Up @@ -300,7 +301,8 @@ def recursiveFrequencyFinder(data: np.ndarray, snrCriterion: float, windowSize:

while (snr > snrCriterion):
try:
frequencyList.append((fit[1], snr, fit[0], fit[2],))
resNoise = np.mean(data[1])
frequencyList.append((fit[1], snr, fit[0], fit[2],resNoise))
saveStuff = True if kwargs['mode'] == 'Full' else False
except:
saveStuff = True
Expand All @@ -323,7 +325,7 @@ def recursiveFrequencyFinder(data: np.ndarray, snrCriterion: float, windowSize:

if not cutoffCriterion(frequencyList):
break

resNoise = np.mean(amp)
try:
if kwargs['mode'] == 'Normal':
pass
Expand All @@ -333,11 +335,9 @@ def recursiveFrequencyFinder(data: np.ndarray, snrCriterion: float, windowSize:
except KeyboardInterrupt:
print(term.format("Interrupted Run", term.Color.RED))
defines.dieGracefully = True
finally:
return frequencyList, f, t, i

return frequencyList, f, t, i


def combineDatasets(fList: List[np.ndarray], tList: List[np.ndarray], iList: List[np.ndarray]) -> Tuple[
np.ndarray, np.ndarray, np.ndarray]:
if fList == [] or tList == [] or iList == []:
Expand Down

0 comments on commit 7ced867

Please sign in to comment.