Last change
on this file since 2067 was 1648, checked in by Max Voronkov, 15 years ago |
Added a test of the full-blown line finder
|
-
Property svn:executable
set to
*
|
File size:
1.5 KB
|
Rev | Line | |
---|
[1646] | 1 | #!/usr/bin/env python
|
---|
[1648] | 2 | # run this script with a command line parameter "wait" in order it to wait
|
---|
| 3 | # pressing enter instead of a time delay
|
---|
| 4 |
|
---|
[1646] | 5 | from asap import *
|
---|
| 6 | import time,sys
|
---|
| 7 |
|
---|
| 8 | wait_str = ""
|
---|
| 9 | if len(sys.argv)>=2:
|
---|
| 10 | if sys.argv[1].lower() == "wait":
|
---|
| 11 | wait_str = " Press Enter."
|
---|
| 12 |
|
---|
| 13 | # read the spectrum from ascii file
|
---|
| 14 | f = open('data/atca_spectrum.dat')
|
---|
| 15 | spc=[]
|
---|
| 16 | try:
|
---|
| 17 | for line in f:
|
---|
| 18 | parts=line.split()
|
---|
| 19 | if len(parts)!=3:
|
---|
| 20 | raise RuntimeError, "Expect 3 parts, you have %s"% (parts,)
|
---|
| 21 | spc.append(float(parts[2]))
|
---|
| 22 | finally:
|
---|
| 23 | f.close()
|
---|
| 24 |
|
---|
| 25 |
|
---|
| 26 | #run the line finder
|
---|
| 27 |
|
---|
| 28 | lf = simplelinefinder()
|
---|
| 29 | rng=lf.find_lines(spc,threshold=3,splitFeatures=False)
|
---|
| 30 |
|
---|
| 31 | print "Found %i lines.%s" % (len(rng),wait_str)
|
---|
| 32 | b=len(spc)/4
|
---|
| 33 | e=len(spc)*3/4
|
---|
| 34 | plotter._plotter.plot(range(b,e),spc[b:e])
|
---|
[1647] | 35 | plotter._plotter.set_line(number=0,label='Input spectrum')
|
---|
[1646] | 36 | plotter._plotter.show()
|
---|
| 37 | if wait_str == "":
|
---|
| 38 | time.sleep(1.5)
|
---|
| 39 | else:
|
---|
| 40 | raw_input()
|
---|
| 41 | cnt = 1
|
---|
| 42 | for line in rng:
|
---|
| 43 | if len(line)!=2:
|
---|
| 44 | raise RuntimeError, "Line is supposed to have two parameters"
|
---|
| 45 | b = line[0]-1
|
---|
| 46 | if b<0:
|
---|
| 47 | b=0
|
---|
| 48 | e = line[1]+1
|
---|
| 49 | if e>len(spc):
|
---|
| 50 | e=len(spc)
|
---|
[1647] | 51 | print "Showing line %i located at %s.%s" % (cnt,line,wait_str)
|
---|
[1646] | 52 | plotter._plotter.set_line(label='Line %i' % cnt)
|
---|
| 53 | cnt = cnt + 1
|
---|
| 54 | plotter._plotter.plot(range(b,e),spc[b:e])
|
---|
| 55 | plotter._plotter.show()
|
---|
| 56 | if wait_str == "":
|
---|
| 57 | time.sleep(1.5)
|
---|
| 58 | else:
|
---|
| 59 | raw_input()
|
---|
| 60 |
|
---|
[1648] | 61 | plotter.save('output/simple_linefinder.png', dpi=80)
|
---|
[1647] | 62 | print "Test of simple line finder is successful"
|
---|
Note:
See
TracBrowser
for help on using the repository browser.