1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
module PeakSearch
import ..CrystFEL: libcrystfel
import ..CrystFEL.Images: InternalImage
import ..CrystFEL.PeakLists: PeakList, InternalPeakList
export zaefpeaks, peakfinder8, peakfinder9
function tf10(val)
if val
return 1
else
return 0
end
end
function zaefpeaks(image; threshold=100, mingrad=100000, minsnr=5,
radiusinn=4, radiusmid=5, radiusout=7, usesaturated=true)
out = @ccall libcrystfel.search_peaks(image.internalptr::Ptr{InternalImage},
threshold::Cfloat,
mingrad::Cfloat,
minsnr::Cfloat,
radiusinn::Cdouble,
radiusmid::Cdouble,
radiusout::Cdouble,
tf10(usesaturated)::Cint)::Ptr{InternalPeakList}
if out == C_NULL
throw(ErrorException("Peak search failed"))
end
PeakList(out)
end
function peakfinder8(image; threshold=100, minsnr=5, minpix=2, maxpix=200,
localbg=3, minres=0, maxres=5000, usesaturated=true, maxpeaks=2000)
out = @ccall libcrystfel.peakfinder8(image.internalptr::Ptr{InternalImage},
maxpeaks::Cint,
threshold::Cfloat,
minsnr::Cfloat,
minpix::Cint,
maxpix::Cint,
localbg::Cint,
minres::Cint,
maxres::Cint,
tf10(usesaturated)::Cint,
0::Cint,
C_NULL::Ptr{Cvoid})::Ptr{InternalPeakList}
if out == C_NULL
throw(ErrorException("Peak search failed"))
end
PeakList(out)
end
function peakfinder9(image; minsnrbig=7, minsnrpeak=6, minsnrwhole=5, minbgsig=11,
brightpxcut=-Inf, window=5)
out = @ccall libcrystfel.search_peaks_peakfinder9(image.internalptr::Ptr{InternalImage},
minsnrbig::Cfloat,
minsnrpeak::Cfloat,
minsnrwhole::Cfloat,
minbgsig::Cfloat,
brightpxcut::Cfloat,
window::Cint)::Ptr{InternalPeakList}
if out == C_NULL
throw(ErrorException("Peak search failed"))
end
PeakList(out)
end
end # of module
|