# Scope Math¶

Mathematical functions for simulating light curves.

`scope.scopemath.``Gauss2D`(x, y, amp, x0, y0, sx, sy, rho)

A two-dimensional gaussian with arbitrary covariance.

class `scope.scopemath.``GaussInt`(a, b, c)

Returns the definite integral of x^n * exp(-ax^2 + bx + c) from 0 to 1.

`scope.scopemath.``PLD`(fpix, ferr, trninds, t, aperture)

Perform first order PLD on a light curve

flux :

detrended light curve

rawflux :

raw light curve

`scope.scopemath.``PSF`(A, psf_args, ccd_args, xpos, ypos)

Computes a stellar Point Spread Function (PSF) from given parameters.

psf_argsdict

dictionary of PSF parameters

ccd_argsdict

dictionary of CCD parameters

xposarraylike

array of PSF motion in x around detector relative to (x_0, y_0)

yposarraylike

array of PSF motion in y around detector relative to (x_0, y_0)

`scope.scopemath.``PixelFlux`(cx, cy, amp, x0, y0, sx, sy, rho, fast=True, **kwargs)

The flux in a given pixel of the detector, calculated from the integral of the convolution of a 2D gaussian with a polynomial.

cx:

The intra-pixel variability polynomial coefficients along the x axis, expressed as a list from 0th to 3rd order.

cy:

The intra-pixel variability polynomial coefficients along the y axis, expressed as a list from 0th to 3rd order.

amp:

The amplitude of the normalized gaussian (the integral of the gaussian over the entire xy plane is equal to this value).

x0:

The x position of the center of the gaussian relative to the left pixel edge.

y0:

The y position of the center of the gaussian relative to the bottom pixel edge.

sx:

The standard deviation of the gaussian in the x direction (before rotation).

sy:

The standard deviation of the gaussian in the y direction (before rotation).

rho:

The correlation coefficient between x and y, a value between -1 and 1. See en.wikipedia.org/wiki/Pearson_correlation_coefficient. If this is 0, x and y are uncorrelated (zero rotation).

fast:

If True, analytically integrates the function along the x axis and numerically integrates it along the y axis. This can greatly speed things up, with no loss of accuracy. If False, numerically integrates in both dimensions (not recommended).

`scope.scopemath.``PolyGaussIntegrand1D`(y, cx, cy, amp, x0, y0, sx, sy, rho)

This is the product of the 2D Gaussian PSF, a polynomial in y, and a polynomial in x, analytically integrated along x. The integral along y is not analytic and must be done numerically. However, the analytical integration along the first dimension speeds up the entire calculation by a factor of ~20.

`scope.scopemath.``PolyGaussIntegrand2D`(x, y, cx, cy, amp, x0, y0, sx, sy, rho)

This is straight up the product of the 2D Gaussian PSF, a polynomial in y, and a polynomial in x, at a given location on the pixel. Integrating this in 2D across the entire pixel yields the total flux in that pixel.

`scope.scopemath.``Polynomial`(x, coeffs)

Returns a polynomial with coefficients coeffs evaluated at x.

`scope.scopemath.``TestIntegration`()

Compares the fast and slow ways of computing the flux. Reports the time each method took and the difference in the flux between the two methods.