(493480) 2014 YZ49: A 21.3 magnitude TNO detection with TESS
Since I wrote up my Moving Object Processing work I've been using those tools to search TESS sectors and then matching my detections to known objects. I've also been keeping an eye out for dim objects that I could push my detection capabilities with. (493480) 2014 YZ49 emerged as one such object in Sector 23. It's unique not because it's dim but because it stays in one TESS pixel long enough to accumulate sufficient signal and reveal multiple detections over the sector's observing window. In searching for it I realized that there's a more concise way to go about detecting slower moving objects with image differencing. Fundamentally, an object's on-sky velocity implies an optimal coaddition duration for the observing instrument's pixel scale (21" for TESS in this case) and simultaneously constrains the linking search to a specific on-sky velocity as well. I'll elaborate more below, but said another way: the number of frames you're coadding has everything to do with the on-sky velocity of the object you're trying to detect. For a high level outline of this detection see the process description. I will detail the detection process for 2014 YZ49 in depth below.
1. An example of one full frame image (FFI) from TESS Sector 23, Camera 1, CCD 3. There are 1,238 FFIs of this region over the 27 day observing window. The red inset is the 200x200 pixel region of interest that contains 2014 YZ49 that I'll be exploring in this analysis.
2. Here are the 6 processed detection frames of the cutout from image set 1 before differencing. These processed frames are built from 15 FFI median integrated frames with a background estimate removed, PSF deconvolution and brightness matching. A mask for bright stationary sources used with image differencing is shown when you click and hold on the image set.
3. These are the raw difference images of the detection frames calculated as a pixel-wise subtraction of a static sky template which is built from 23 processed frames. It's impossible to see any detections at this stage. Click and hold on the image set above for a composite view.
4. These frames are the image set 3 frames with a 5σ clip-threshold and then a second 3.5σ threshold. The circled detections are candidate linked detections that are moving at between 3-4 pixels per day with respect to one another - the speed at which 2014 YZ49 is moving in the TESS frames. The links were found by Pixel Velocity Vector Clustering (PVVC) around the expected pixel velocity of 2014 YZ49 in TESS (~3.7 pixels per day). Click and hold the on image set above for a composite view.
5. Candidate links (same as image set 4) with JPL Horizons' position for 2014 YZ49 indicated by crosshairs. Note: the ~12 day gap between frames 3 and 4 covers a set of high background frames that were excluded from analysis. Click and hold on the image set above for a composite view.
The table below shows JPL Horizons' predicted position and apparent magnitude for 2014 YZ49 in a TESS FFI compared to my detection. TESS' 21" pixel scale never makes for the most precise astrometry (especially with single pixel detections), but all detections in the 6 frames above have less than one pixel error. The mean on-sky position error is 0.55px (11.36"), and the mean estimate of the TESS detection apparent magnitude is 21.1 compared to JPL's 21.3.
Image set details:
Image 1: I tried to find 2014 YZ49 with my goto cutout shape of 683x683 pixels (which conveniently yields 9 subsectors per TESS FFI), but as with Sedna, a 200x200 cutout worked better. I'm measuring noise statistics for thresholding across the whole cutout and a more local measure (i.e. a smaller cutout) is likely better for dim objects. This image simply shows you where I'm looking in the FFI.
Image set 2: These are the 2014 YZ49 processed detection frames which are a subset of 60 starting frames built as median integrations of 15 FFI cutouts around 3 equally spaced center times for each TESS observation day in Sector 23, Camera 1, CCD 3. 37 of those 60 frames are discarded due to high background levels or large deviations from a bootstrapped template. This leaves 23 frames to process. Processing first removes a background estimate then deconvolves a point spread function for each frame and brightness matches each frame to a preliminary median template. Only the 6 final detection frames are shown in this image set, but these 6 detection frames along with the 17 non-detection frames are used to build the final static sky template as a 3 value trimmed max of the complete set of 23 processed frames. Additionally, a bright star mask is built from a 2σ clip of the static sky template.
Image set 3: These are the raw difference images for the detection frames with no thresholding. They're just a simple pixel-wise subtraction of the final static sky template from each processed detection frame with the bright star mask applied on top.
Image set 4: These images take the raw difference images in image set 3 and threshold them. This is accomplished by a two step process. First I threshold-clip values greater than 5σ in the difference images. Then I calculate new standard deviations in the raw images with the threshold-clip pixels excluded and then threshold those remaining pixels at 3.5σ. The final threshed pixels combine both sets.
I've also employed Pixel Velocity Vector Clustering (PVVC) to link objects (circled in red) that are moving at 3-4 pixels per day with respect to one another. PVVC allows me to gather candidate links to test with orbit determination. In this instance I constrained PVVC to find detections that were moving at the rate implied by my choice of frame coaddition which itself was chosen as the optimal duration for 2014 YZ49. I'll expand on this in the process notes below.
Image set 5: This image set adds JPL's position data for 2014 YZ49 at the detection times of the 6 TESS frames as crosshairs within the circled TESS detections. The detection time I use isn't a simple middle time of the 15 coadded analysis frames. Instead I search through the subframes of the coadded analysis frame for the subframe with the maximum signal in the detection pixel and use that subframe's observation time as the detection time.
Close observers will notice that the circled detection for frame 6 is in a slightly different location in image set 4 than it is in image set 3. This isn't an error. Initial detection locations in image set 3 are the center pixel of a threshed blob (for 2014 YZ49 a blob is always just one pixel). I refine those locations by modeling a 2D gaussian centroid for subpixel resolution. It works best for brighter, largeer blobs, but it caught a bit more position information in frame 6 which reduces the position error when compared to JPL's crosshair in the frame a bit.
Image 6: Finally, this is the overloaded everything frame. It's a cumulative image of all 6 detection frames with detection centers in red, JPL position locations at the crosshairs and the subset of detection locations that solve with orbit determination in green. The OD solved positions are determined by taking the 6 detections in the candidate link and then attempting to solve all combinations of them starting with 6 then 5 then 4 etc.. to find the longest set that solves. These 4 green detections are the first and longest set that solves with Open Orb. The MPC formatted input file for Open Orb is here.
- High background frame rejection: I've used a lot of methods to reject bad frames from my analysis in the past but throwing out frames with high background levels right off the bat is far and away the easiest and most useful technique I've employed thus far. It produces much cleaner difference images than rejection based on background subtraction paired with frame quality tests post subtraction. Just get rid of the high background frames from the start and work with only the frames with the lowest background levels.
- Optimal frame coaddition/integration: Perhaps I've buried the lede here, but this is the crux of the analysis and the main reason that I could find 2014 YZ49 which is moving across a TESS FFI at a rate ~3.7 pixels per day. This means its in one TESS pixel for 6.5 hours (24/3.7). So the optimal duration of coaddition/integration is 13 hours (2 x 6.5 as each FFI is a 30 minute observation) because you can't accumulate any more light in one pixel past that duration - sorta. In reality there's no guaranteeing the object you're trying to detect is just entering a pixel at the start of your optimal integration. Additionally, light from the object in an adjacent pixel can accumulate in your detection pixel as well, so there's some wiggle room around the 'optimal' specification. In practice, 'optimal plus a few' seems like the best strategy. I first tried this analysis with 13 frames and did indeed detect 2014 YZ49, but I was able to find a few more detections with the 15 frame integration I used in this write up.
Ideas and next steps:
- Systematizing this process and searching complete FFIs: As I've been writing up this detection I've been considering how I might find a 2014 YZ49-like object without knowing where it is first. There are at least 2 fundamental challenges to that goal. 1. I have to be able to look at a larger region of space. I just can't test a bunch of 200x200 cutouts all the time as there are ~104 of them in a single FFI. 2. There are a lot of parameters that I tune for each analysis: background level cutoffs, thresholding and clip sigmas, linking constraints and tolerances etc.. Solving the first issue goes a long way towards managing the second, but these both still stand in the way of making the analysis processes non-interactive. Right now it's still pretty interactive. I have some ideas for reproducing detections like this one with whole FFIs (or at least larger cutouts), so that might be the next thing I look into.
- Open Orb convergence: There was an interesting poster at the October 2020 AAS meeting comparing the precision of various orbit determination tools (including Open Orb). The poster (Chernyavskaya et al., 2020) from DIRAC, took a close look at the ephemerides produced by various OD tools and compared them to JPL Horizons ephemerides to determine which tools produced the best matches. I've long wondered how many observations it would take for Open Orb to converge on decent orbits as observations in the ballpark of 3-12 do not seem to represent true orbits well (at least for TNOs). They often solve but the orbital elements can be pretty off from the true elements of the object. I thought it'd be interesting to look at OD solutions for increasing numbers of Horizons 'observations' to see where convergence to a true orbit occurs - especially for TNOs where the arc of real observations is bound to be short.
I was fortunate to happen upon 2014 YZ49 in my exploration of TESS sectors. I guess I could have pulled some ephemerides and done some math to find objects that were moving at a slow enough on-sky rate to attempt to detect with image differencing (in fact, that'd still be a good project), but analysing subsectors of TESS FFIs until a good candidate appeared allowed me to further enhance my fast object detection capabilities at the same time. I haven't written up anything on it yet, but I'm frequently getting 95-100% recall for 19th magnitude or brighter objects with single frame difference imaging analysis. After I detect fast objects I check the field for slow objects and try to pull something out with a longer integration. That's how 2014 YZ49 presented itself. And now I've proven to myself that at least some magnitude 21 objects are detectable with TESS if they move slowly enough. I can't imagine I'll be able to go much deeper than this - certainly not to 22 mag - but maybe a touch dimmer is possible. I'll continue to be on the lookout.
Finally, I would be remiss if I did not thank Dr. Matthew Holman again for a brief email correspondence that influenced this study. Dr. Holman simply suggested that dim object detection with TESS was background limited and that image differencing only worked for coadditions that kept an object in 1-2 pixels. From these two insights I extracted the high background frame rejection and optimal coaddition duration concepts that I credit this detection to. And with this detection I'm approaching the magnitude limits that Holman et. al., 2019 found with shift and stack image processing techniques for TESS. The big caveat is that their approach can find objects down to ~22 mag in TESS regardless of their on-sky velocity. My method really constrains you to looking for slow moving objects that stay in one pixel long enough to yield a detection.