예제 #1
0
    :param p: Parameters (amplitude, x,y center position, width, offset)
    :param xi: x positions
    :param yi: y positions
    :return: The Gaussian 2D peak.
    """

    arg = -(np.square(xi - p[1]) + np.square(yi - p[2])) / (2 * p[3] * p[3])
    y = p[0] * np.exp(arg) + p[4]

    return y


if __name__ == '__main__':

    if not gf.cuda_available():
        raise RuntimeError(gf.get_last_error())

    # number of fits and fit points
    number_fits = 10000
    size_x = 12
    number_points = size_x * size_x
    number_parameters = 5

    # set input arguments

    # true parameters
    true_parameters = np.array((10, 5.5, 5.5, 3, 10), dtype=np.float32)

    # initialize random number generator
    np.random.seed(0)
예제 #2
0
    y = np.zeros((n_fits, x.shape[0], x.shape[1]), dtype=np.float32)

    # loop over each fit
    for i in range(n_fits):
        pi = p[i, :]
        arg = -(np.square(xi - pi[1]) + np.square(yi - pi[2])) / (2 * pi[3] *
                                                                  pi[3])
        y[i, :, :] = pi[0] * np.exp(arg) + pi[4]

    return y


if __name__ == '__main__':

    # cuda available checks
    print('CUDA available: {}'.format(gf.cuda_available()))
    if not gf.cuda_available():
        raise RuntimeError(gf.get_last_error())
    print(
        'CUDA versions runtime: {}, driver: {}'.format(*gf.get_cuda_version()))

    # number of fit points
    size_x = 5
    number_points = size_x * size_x

    # set input arguments

    # true parameters
    mean_true_parameters = np.array((100, 2, 2, 1, 10), dtype=np.float32)

    # average noise level
예제 #3
0
import numba
import numpy as np
import warnings
warnings.filterwarnings("ignore")

import picasso.io as io
import picasso.localize as localize
import picasso.gausslq as gausslq
import picasso.postprocess as postprocess
import picasso_addon

### Test if GPU fitting can be used
try:
    from pygpufit import gpufit as gf
    gpufit_available = True
    gpufit_available = gf.cuda_available()
except ImportError:
    gpufit_available = False


#%%
@numba.jit(nopython=True, nogil=True, cache=False)
def gradient_at(frame, y, x, i):
    gy = frame[y + 1, x] - frame[y - 1, x]
    gx = frame[y, x + 1] - frame[y, x - 1]
    return gy, gx


#%%
@numba.jit(nopython=True, nogil=True, cache=False)
def boxvals_in_frame(frame, y, x, box):