pyklip.instruments.P1640_support package

Submodules

pyklip.instruments.P1640_support.P1640_cube_checker module

pyklip.instruments.P1640_support.P1640_cube_checker_interactive module

pyklip.instruments.P1640_support.P1640_spot_checker module

pyklip.instruments.P1640_support.P1640contrast module

pyklip.instruments.P1640_support.P1640cores module

pyklip.instruments.P1640_support.P1640spots module

pyklip.instruments.P1640_support.P1640utils module

pyklip.instruments.P1640_support.P1640utils.centroid_image(orig_img)[source]

Centroid an image - weighted sum of pixels Input:

orig_img: 2D array

Returns:

[y,x] floating-point coordinates of the centroid

pyklip.instruments.P1640_support.P1640utils.clean_bad_pixels(img, boxrad=2, thresh=3)[source]

Clean the image of outlier pixels using a median filter. Input:

img: 2-d array boxrad: 1/2 the fitler size (2*boxrad+1) thresh: threshold (in stdev) for deciding a hot pixel

Returns:

2_d array where hot pixels have been replaced by median values

Return type:

cleaned_img

pyklip.instruments.P1640_support.P1640utils.clean_bad_pixels_cube(cube, boxrad=2, thresh=10)[source]

Clean the image of outlier pixels using a median filter. Input:

cube: 3-D data cube boxrad: 1/2 the fitler size (2*boxrad+1) thresh: threshold (in stdev) for deciding a hot pixel

pyklip.instruments.P1640_support.P1640utils.find_bad_pix(img, median_img, std_img, thresh=3)[source]

Find the bad pixels

pyklip.instruments.P1640_support.P1640utils.get_PSF_center(cube, refchan=26, fine=False)[source]

Return the PSF center at the pixel level (default) or subpixel level (fine=True) Input:

cube: Nlambda x Npix x Npix datacube refchan(=26): Reference channel for the initial center estimate fine_centering(=False): After getting a rough estimate of the center, centroid the image

Returns:

Nlamdba x 2 array of pixel indices for the PSF center

pyklip.instruments.P1640_support.P1640utils.get_cube_xsection(orig_cube, center, width)[source]

Select the cross-section of a cube centered in center with 1/2-width width Input:

orig_cube: Nlambda x Npix x Npix datacube center: [row, col] index width: 1/2-width of cross-section

Returns:

Nlambda x (2*width+1) x (2*width+1) cube cross-section

Return type:

cube_cutout

pyklip.instruments.P1640_support.P1640utils.get_encircled_energy_cube(cube, frac=0.5, refchan=26)[source]

Get the fractional encircled energy of a PSF in each channel of a datacube. Basically a wrapper for get_encircled_energy_image Input:

core_cube: unocculted core cube Nlambda x Npix x Npix frac: encircled energy cutoff

Returns:

[starx, stary, radius, flux]

Return type:

Pandas Dataframe with Nlambda columns

pyklip.instruments.P1640_support.P1640utils.get_encircled_energy_image(im, center, frac=0.5)[source]

Given an image, find the fraction of encircled energy around the center. Input:

im: unocculted core cube Npix x Npix frac: encircled energy cutoff

Returns:

[starx, stary, radius, flux, bgnd_mean, bgnd_std, bgnd_npix]

Return type:

Pandas Series with the following indices

pyklip.instruments.P1640_support.P1640utils.get_spot_files(fitsfile, spot_file_dir)[source]

Search in spot_file_dir for the spot files associated with fitsfile Return spot files if they are found, otherwise return an empty list

pyklip.instruments.P1640_support.P1640utils.set_zeros_to_nan(data)[source]

PyKLIP expects values outside the detector to be set to nan. P1640 sets these (and also saturated pixels) to identically 0. Find all the zeros and convert them to nans Input:

data: N x Npix x Npix datacube or appended set of datacubes

Returns:

data with nans instead of zeros

Return type:

nandata

pyklip.instruments.P1640_support.P1640utils.table_to_TableHDU(table, kwargs={})[source]

Accept a table with a .colnames element and return it as an astropy fits.TableHDU object. Only works with floating-point data atm. Input:

table: astropy.table.Table object kwargs: dict of keywords and arguments to pass to the HDU

Returns:

fits TableHDU with an empty header

Return type:

TableHDU

Module contents