Source code for bin.comparePeaks

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import re
import sys

[docs]def getPeaks(filename): peak_list = []; file = open(filename,'r'); file.readline(); for line in file: parts = line.split(','); frequency = float(parts[0]); decay_constant = float(parts[1]); Q = float(parts[2]); amplitude = float(parts[3]); phase = float(parts[4]); error = float(parts[5]); peak_list.append([frequency, decay_constant, Q, amplitude, phase, error]) file.close(); return peak_list;
[docs]def comparePeaks(harminv_filename, matlab_filename, out_filename): harminv_peak_list = getPeaks(harminv_filename) matlab_peak_list = getPeaks(matlab_filename) #for peak_idx in range(len(matlab_peak_list)): #print peak_idx #print matlab_peak_list[peak_idx][0]-matlab_peak_list[peak_idx][0]; merge_peak_list = [[] for i in range(len(matlab_peak_list))] for peak_idx in range(len(matlab_peak_list)): matlab_peak = matlab_peak_list[peak_idx]; mindiff_set = False; mindiff = -1; for harminv_peak in harminv_peak_list: # TODO: Finish? raise UserWarning('Unfinished and untested bit of code.') diff = abs(harminv_peak[0]-matlab_peak[0]) if (not mindiff_set) or (mindiff_set and diff < mindiff): mindiff = diff merge_peak_list[peak_idx] = harminv_peak; mindiff_set = True; #for peak in merge_peak_list: #print peak print(merge_peak_list[len(merge_peak_list)-1]) out_file = open(out_filename,'w'); out_file.write(str(merge_peak_list[len(merge_peak_list)-1])+'\n') out_file.close();
#print "SUCCESS" if __name__ == '__main__': # harminv_filename = sys.argv[1]; # matlab_filename = sys.argv[2]; # out_filename = sys.argv[3]; # out_filename = 'resonance.txt' comparePeaks(sys.argv[1],sys.argv[2],sys.argv[3])