Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
use_exact = 0
subpixels = 1
elif method == 'subpixel':
use_exact = 0
else:
use_exact = 1
subpixels = 1
from ..geometry import elliptical_overlap_grid
for i in range(len(positions)):
if ood_filter[i] is not True:
fractions[y_min[i]: y_max[i], x_min[i]: x_max[i], i] = \
elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a, b, theta, use_exact,
subpixels)
if a_in is not None:
b_in = a_in * b / a
fractions[y_min[i]: y_max[i], x_min[i]: x_max[i], i] -= \
elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a_in, b_in, theta,
use_exact, subpixels)
if method == 'center':
use_exact = 0
subpixels = 1
elif method == 'subpixel':
use_exact = 0
else:
use_exact = 1
subpixels = 1
from ..geometry import elliptical_overlap_grid
for i in range(len(flux)):
if not np.isnan(flux[i]):
fraction = elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a, b, theta, use_exact,
subpixels)
if a_in is not None:
b_in = a_in * b / a
fraction -= elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a_in, b_in, theta,
use_exact, subpixels)
flux[i] = np.sum(data[y_min[i]:y_max[i],
a = self.a_out
b = self.b_out
else:
raise ValueError('Cannot determine the aperture shape.')
masks = []
for bbox, edges in zip(np.atleast_1d(self.bbox),
self._centered_edges):
ny, nx = bbox.shape
mask = elliptical_overlap_grid(edges[0], edges[1], edges[2],
edges[3], nx, ny, a, b, self.theta,
use_exact, subpixels)
# subtract the inner ellipse for an annulus
if hasattr(self, 'a_in'):
mask -= elliptical_overlap_grid(edges[0], edges[1], edges[2],
edges[3], nx, ny, self.a_in,
self.b_in, self.theta,
use_exact, subpixels)
masks.append(ApertureMask(mask, bbox))
if self.isscalar:
return masks[0]
else:
return masks
from ..geometry import elliptical_overlap_grid
for i in range(len(flux)):
if not np.isnan(flux[i]):
fraction = elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a, b, theta, use_exact,
subpixels)
if a_in is not None:
b_in = a_in * b / a
fraction -= elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a_in, b_in, theta,
use_exact, subpixels)
flux[i] = np.sum(data[y_min[i]:y_max[i],
x_min[i]:x_max[i]] * fraction)
if error is not None:
fluxvar[i] = find_fluxvar(data, fraction, error, flux[i],
x_min[i], x_max[i], y_min[i],
y_max[i], pixelwise_error)
if error is None:
return (flux, )
for i in range(len(positions)):
if ood_filter[i] is not True:
fractions[y_min[i]: y_max[i], x_min[i]: x_max[i], i] = \
elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a, b, theta, use_exact,
subpixels)
if a_in is not None:
b_in = a_in * b / a
fractions[y_min[i]: y_max[i], x_min[i]: x_max[i], i] -= \
elliptical_overlap_grid(x_pmin[i], x_pmax[i],
y_pmin[i], y_pmax[i],
x_max[i] - x_min[i],
y_max[i] - y_min[i],
a_in, b_in, theta,
use_exact, subpixels)
return np.squeeze(fractions)
a = self.radius.x if isinstance(self.radius, Extent) else self.radius
b = self.radius.y if isinstance(self.radius, Extent) else self.radius
# theta in radians !
theta = self.angle.radian
x_min = - rel_center.x
x_max = x_size - rel_center.x
y_min = - rel_center.y
y_max = y_size - rel_center.y
# Calculate the mask
if a * b * x_size * y_size == 0:
fraction = 0
else:
fraction = elliptical_overlap_grid(x_min, x_max, y_min, y_max, x_size, y_size, a, b, theta, use_exact=0, subpixels=1)
#xmin, xmax, ymin, ymax : float
# Extent of the grid in the x and y direction.
#nx, ny : int
# Grid dimensions.
#rx : float
# The semimajor axis of the ellipse.
#ry : float
# The semiminor axis of the ellipse.
#theta : float
# The position angle of the semimajor axis in radians (counterclockwise).
#use_exact : 0 or 1
# If set to 1, calculates the exact overlap, while if set to 0, uses a
# subpixel sampling method with ``subpixel`` subpixels in each direction.
#subpixels : int
# If ``use_exact`` is 0, each pixel is resampled by this factor in each
rel_center = self.center
a = self.radius.x if isinstance(self.radius, Extent) else self.radius
b = self.radius.y if isinstance(self.radius, Extent) else self.radius
# theta in radians !
theta = self.angle.radian
x_min = - rel_center.x
x_max = x_size - rel_center.x
y_min = - rel_center.y
y_max = y_size - rel_center.y
# Calculate the mask
fraction = elliptical_overlap_grid(x_min, x_max, y_min, y_max, x_size, y_size, a, b, theta, use_exact=0, subpixels=1)
#xmin, xmax, ymin, ymax : float
# Extent of the grid in the x and y direction.
#nx, ny : int
# Grid dimensions.
#rx : float
# The semimajor axis of the ellipse.
#ry : float
# The semiminor axis of the ellipse.
#theta : float
# The position angle of the semimajor axis in radians (counterclockwise).
#use_exact : 0 or 1
# If set to 1, calculates the exact overlap, while if set to 0, uses a
# subpixel sampling method with ``subpixel`` subpixels in each direction.
#subpixels : int
# If ``use_exact`` is 0, each pixel is resampled by this factor in each
use_exact, subpixels = self._translate_mask_mode(method, subpixels)
if hasattr(self, 'a'):
a = self.a
b = self.b
elif hasattr(self, 'a_in'): # annulus
a = self.a_out
b = self.b_out
else:
raise ValueError('Cannot determine the aperture shape.')
masks = []
for bbox, edges in zip(np.atleast_1d(self.bbox),
self._centered_edges):
ny, nx = bbox.shape
mask = elliptical_overlap_grid(edges[0], edges[1], edges[2],
edges[3], nx, ny, a, b, self.theta,
use_exact, subpixels)
# subtract the inner ellipse for an annulus
if hasattr(self, 'a_in'):
mask -= elliptical_overlap_grid(edges[0], edges[1], edges[2],
edges[3], nx, ny, self.a_in,
self.b_in, self.theta,
use_exact, subpixels)
masks.append(ApertureMask(mask, bbox))
if self.isscalar:
return masks[0]
else:
return masks
rel_center = self.center
a = self.radius.x if isinstance(self.radius, Extent) else self.radius
b = self.radius.y if isinstance(self.radius, Extent) else self.radius
# theta in radians !
theta = self.angle.radian
x_min = - rel_center.x
x_max = x_size - rel_center.x
y_min = - rel_center.y
y_max = y_size - rel_center.y
# Calculate the mask
fraction = elliptical_overlap_grid(x_min, x_max, y_min, y_max, x_size, y_size, a, b, theta, use_exact=0, subpixels=1)
#xmin, xmax, ymin, ymax : float
# Extent of the grid in the x and y direction.
#nx, ny : int
# Grid dimensions.
#rx : float
# The semimajor axis of the ellipse.
#ry : float
# The semiminor axis of the ellipse.
#theta : float
# The position angle of the semimajor axis in radians (counterclockwise).
#use_exact : 0 or 1
# If set to 1, calculates the exact overlap, while if set to 0, uses a
# subpixel sampling method with ``subpixel`` subpixels in each direction.
#subpixels : int
# If ``use_exact`` is 0, each pixel is resampled by this factor in each