diff --git a/dap/algos/__init__.py b/dap/algos/__init__.py new file mode 100644 index 0000000..064c713 --- /dev/null +++ b/dap/algos/__init__.py @@ -0,0 +1,4 @@ + +from .radprof import prepare_radial_profile, radial_profile + + diff --git a/dap/algos/radprof.py b/dap/algos/radprof.py new file mode 100644 index 0000000..bad21f8 --- /dev/null +++ b/dap/algos/radprof.py @@ -0,0 +1,23 @@ +import numpy as np + + +def radial_profile(data, r, nr, keep_pixels=None): + if keep_pixels is not None: + tbin = np.bincount(r, data[keep_pixels].ravel()) + else: + tbin = np.bincount(r, data.ravel()) + radialprofile = tbin / nr + return radialprofile + +def prepare_radial_profile(data, center, keep_pixels=None): + y, x = np.indices((data.shape)) + r = np.sqrt((x - center[0])**2 + (y - center[1])**2) + if keep_pixels is not None: + r = r[keep_pixels].astype(int).ravel() + else: + r = r.astype(np.int).ravel() + nr = np.bincount(r) + return r, nr + + + diff --git a/dap/worker.py b/dap/worker.py index ddafd99..2a0ff1b 100644 --- a/dap/worker.py +++ b/dap/worker.py @@ -10,29 +10,12 @@ import numpy as np import zmq from peakfinder8_extension import peakfinder_8 +from .algos import prepare_radial_profile, radial_profile + FLAGS = 0 -def radial_profile(data, r, nr, keep_pixels=None): - if keep_pixels is not None: - tbin = np.bincount(r, data[keep_pixels].ravel()) - else: - tbin = np.bincount(r, data.ravel()) - radialprofile = tbin / nr - return radialprofile - -def prepare_radial_profile(data, center, keep_pixels=None): - y, x = np.indices((data.shape)) - r = np.sqrt((x - center[0])**2 + (y - center[1])**2) - if keep_pixels is not None: - r = r[keep_pixels].astype(int).ravel() - else: - r = r.astype(np.int).ravel() - nr = np.bincount(r) - return r, nr - - def main(): parser = argparse.ArgumentParser()