Dynamic Sky: Process Description
This is a descriptive outline of the process I use to detect Solar System object motion from repeat imaging. The process is constantly evolving but is more or less complete for the object it references. I've started highlighting the changes in bold.
December 2021 process
Do this process once for a slow object search (coadding many observation frames) and once for a fast object search (using single observation frames)
- Acquire TESS full frame images
- Crop full frame images to frame subset (9 per CCD)
- Integrate (coadd) images (for a slow object search; no coadds for fast object search) across TESS observation times into a set of analysis frames
- Estimate the background for frames
- Reject high background level frames
- Remove background from remaining frames
- Reject outlier frames with 'sky vectors' and cluster analysis
- Deconvolve PSF for remaining frames
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from preliminary template via sigma clip
- Generate static sky template as an N pixel trimmed max of the stack of processed frames (this is a median-like template not a max template)
- Subtract the static sky template from the processed frames to generate difference images
- Apply bright star center mask to difference images
- Calculate global and local (via filter) mean and standard deviation for each difference image; threshold at 5σ using minimum of global and local statistics to generate detections
- Link detections (minimum length 6) in threshed difference images by velocity vector clustering over slow or fast velocity ranges for frame integration count (e.g. don't attempt to link fast moving objects for high frame count coadds)
- Relink (i.e. combine) candidate links with 5 (minimum link length of 6 minus 1) overlapping detections that add new observation frames to candidate link. Use linker with liberal acceptance parameters to trim infeasible long links
- Match links to JPL known objects database via JPL Small Body ID API and solve linker trimmed combinations of 6 detection matched links with OD to validate (e.g. if say 18 detections in link, choose the 'best' subset with linker of length N for those detections to do 6 solve combination OD solve)
- Solve linker trimmed combinations of 6 detection unmatched links with OD to test for unknown objects
- If any unmatched links OD solve, extend solve for these to 7 detection combinations. Keep increasing link length by 1 until no longer getting OD solves
- Further validate a candidate unmatched link by doing a 'zoom' search (region of interest search) using different observation times
June 2021 process update
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time(s) for each day)
- Estimate the background for analysis frames
- Reject high background level frames
- Remove background from remaining analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from median template via sigma clip
- Generate static sky templates as an N pixel trimmed max of the stack of processed frames (N is a tunable parameter)
- Subtract the static sky template from the processed frames to generate difference images
- Apply bright star center mask to difference images
- Calculate standard deviation filter for each difference image frame and threshold at 5σ to generate detections
- Link detections (minimum 6) in threshed difference images by Pixel Velocity Vector Clustering over relevant velocity sets for frame integration count (e.g. don't attempt to link fast moving objects for high frame count integrations)
- Relink (i.e. combine) candidate links with substantial overlapping detections that add new observation frames to candidate link
- Match links to JPL known objects database and solve all combinations of 6 detection matched links with OD to validate
- Solve all combinations of 6 detection unmatched links with OD
- If there are any unmatched links that OD solve, extend solve for these to 7 detection combinations. Keep increasing link detection length by one until no longer getting OD solves.
- Repeat process from step 1 but increment up frame integration by 1 frame to search for slower and slower moving objects
493480 2014 YZ49
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time(s) for each day)
- Estimate the background for analysis frames
- Reject high background level frames
- Remove background from remaining analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from median template via sigma clip
- Generate static sky templates as an N pixel trimmed max of the stack of processed frames (N is a tunable parameter)
- Subtract the static sky template from the processed frames to generate difference images
- Apply bright star center mask to difference images
- Clip-threshold and then threshold (again) difference images
- Link detections in threshed difference images by Pixel Velocity Vector Clustering
- Match links to JPL expected positions
- Find longest set of linked detections that solve with orbit determination
Naive MOPS
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time for each day)
- Model and remove background from analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from median template via sigma clip
- Generate static sky templates as 1 pixel trimmed max of the stack of processed frames down to the median (N/2 pixel trimmed max) excluding the frame being differenced from the stack
- Subtract each static sky template from processed frames to generate difference images and keep difference image that has the highest frame median pixel value to standard deviation ratio (SNR-like)
- Apply bright star center mask to difference images
- Threshold difference images
- Link detections in threshed difference images
-
- Create preliminary candidate tracks using velocity vector clustering on detections
- Attempt an OD solve of all 3 detection combinations in each preliminary track
- Relink subtracks that solve and have 2 overlapping detections into final tracks
- Match solved tracks to JPL expected locations to determine whether the object is known or not
- Output observation coordinates for solved tracks to file for submission to MPC
(455502) 2003 UZ413
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time for each day)
- Model and remove background from analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from median template via sigma clip
- Generate static sky templates as 1 pixel trimmed max of the stack of processed frames down to the median (N/2 pixel trimmed max) excluding the frame being differenced from the stack
- Subtract each static sky template from processed frames to generate difference images and keep difference image that has the highest frame median pixel value to standard deviation ratio (SNR-like)
- Apply bright star center mask to difference images
- Threshold difference images
- Link detections in threshed difference images using pixel velocity vector clustering
- Match linked detections in threshed difference images to JPL expected locations
Sedna
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time for each day)
- Model and remove background from analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate a bright star center mask from median template via sigma clip
- Generate static sky templates as 1 pixel trimmed max of the stack of processed frames down to the median (N/2 pixel trimmed max)
- Subtract each static sky template from processed frames to generate difference images and keep difference image that has the highest frame median pixel value to standard deviation ratio (SNR-like)
- Apply bright star center mask to difference images
- Threshold difference images
- Link detections in threshed difference images using pixel velocity vector clustering
- Match linked detections in threshed difference images to JPL expected locations
(208996) 2003 AZ84
- Acquire TESS full frame images
- Crop full frame images to region of interest
- Integrate images into a set of analysis frames (e.g. median of N full frame images around a time for each day)
- Model and remove background from analysis frames
- Reject outlier frames (e.g. frames with outlier medians compared to other frames after background subtraction)
- Deconvolve PSF for each frame
- Brightness match frames to a preliminary template (e.g. the median of the frames) to complete initial processing
- Generate static sky template as trimmed max of the stack of processed frames
- Generate a bright star center mask from static sky template via sigma clip
- Subtract static sky template from processed frames to generate difference images
- Apply bright star center mask to difference images
- Reject outlier difference images with too much noise
- Threshold (and optionally remove small objects) in difference images
- Link or match objects in sequential threshed difference frames
Definitions
- Background: The pixel intensity of the region of the image that is not a star or other source.
- Brightness matching: Brightness matching is a least squares fit of an image's intensity values to a template frame to minimize the RMS difference between the two frames in a difference image.
- Detection: A signal in a difference image that exceeds a certain threshold which qualifies it as a potential source. In other words, a white dot in a thresholded difference image.
- Frame: This usually refers to an integrated image of multiple subframes.
- Image integration: Combining a stack or set of images into one image by co-addition or some statistical method (e.g. average, median, max etc.). Not to be confused with CCD integration; this is a post observation processing integration.
- Image stack: A data structure for a set of images. A set of images or frames stored in a 3D array. A single image is a 2D array and each image that is added to the stack grows the data structure along the 3rd dimension. Think of it like a perfectly aligned pile of books being 'stacked' with each book representing a singular image.
- Linking: The process of connecting a detection at one observation time to detections at other observation times for the same physical object.
- Matching: Connecting known object locations to detections in a difference image.
- Pixel Velocity Vector Clustering: Linking detections into candidate objects by clustering detections that are moving at the same on-sky pixel rate with respect to one another.
- PSF Deconvolution: Model the optical distortion of the imaging system numerically as a convolution and then deconvolve this distortion to 'remove' the effect.
- Static sky template: An image which shows only stationary sources (e.g. stars). Objects that might be moving over multiple frames have been removed from this singular frame through median-like processing of the stack of images.
- Subframe: A component frame of an image stack. It is a singular observation image that is usually integrated with other singular observation images to make a higher fidelity integrated image.
- Subtrack: A 3 detection subset of a track.
- Track: A track is 3 or more detections that have been linked across observation times and represent (perhaps provisionally) the same physical object.
- Trimmed max: A trimmed max, or clipped max, is a calculation performed on a stack of frames. First you discard the N highest values at each pixel location in the stack and then you take the maximum value of the remaining values for each pixel in the stack. You can think of a median as a trimmed max where the highest 50% of values are discarded for each pixel and then the maximum of the remaining values are taken at each pixel.