Skip to content
Snippets Groups Projects
Commit d763a29f authored by GuenterQuast's avatar GuenterQuast
Browse files

added more command line options

parent b1e0828c
No related branches found
No related tags found
No related merge requests found
......@@ -52,6 +52,12 @@ parser.add_argument('-r','--rel_height',
parser.add_argument('-f','--fit_range_factor',
help = "fit_range_factor: fit range = fit_range_factor * fwhm",
type=float, default=1.5)
parser.add_argument('-t','--threshold',
help = "threshold, i.e. minimum valid channel nmber",
type=float, default=51)
parser.add_argument('-n','--noplot', action='store_true')
parser.add_argument('-v','--verbose', action='store_true')
args = parser.parse_args()
filename=args.filename
# some constants for peak-finder
......@@ -60,10 +66,13 @@ min_width = args.width # minimum width
rel_height = args.rel_height # width at half peak height (i.e. FWHM)
# constants for fit range
fit_range_factor = args.fit_range_factor # fit range = fit_range_factor * fwhm
min_channel = args.threshold # threshold for min. valid channel number
verbose = args.verbose
plot = not args.noplot
# read data
hst = np.loadtxt(filename, dtype=np.uint32)
bin_edges= np.linspace(0, 4096, 4097)
hst = np.loadtxt(filename, dtype=np.uint32)
bin_edges= np.linspace(0, len(hst), len(hst)+1, endpoint=True)
# find maxima with scipy.signal.find_peaks()
peaks, peak_props = find_peaks(hst,
......@@ -96,7 +105,7 @@ for i, p in enumerate(peaks):
base = (hst[left_bases[i]]+hst[right_bases[i]])/2.
# print(p, wid, base)
mn = int(p-wid)
mn = max(min_channel, int(p-wid))
mx = int(p+wid)
bins = range(mn, mx+1)
counts = hst[mn : mx]
......@@ -120,7 +129,8 @@ for i, p in enumerate(peaks):
# Anpassung ausführen:
fit.do_fit()
fit.report() # optionally, report fit results
if verbose:
fit.report() # optionally, report fit results
# Ergebnisse anzeigen und speichern:
print("{} Peak {}: {:.2f} ± {:.2g} ( {:.2f} {:.1f}% {:.1f}% )".format(i, p,
......@@ -134,8 +144,9 @@ for i, p in enumerate(peaks):
plot_ranges[i][0] = p-wid
plot_ranges[i][1] = p+wid+1
fit_results = np.append(fit_results, hdata)
plot_ranges[len(peaks+1)][1] = 4000
kafe2.plot(fits = fit_results, x_range = list(map(tuple, plot_ranges)),
if plot:
fit_results = np.append(fit_results, hdata)
plot_ranges[len(peaks+1)][1] = 4000
kafe2.plot(fits = fit_results, x_range = list(map(tuple, plot_ranges)),
x_label = "Channel number", y_label = "Counts",
font_scale = 0.5, save=False)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment