Last change
on this file since 2363 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.