Magnitude 20.1 TESS TNO: (208996) 2003 AZ84
(208996) 2003 AZ84 is a 20.1 magnitude TNO with an orbit in the neighborhood of Pluto. It's part of the subcategory of TNOs (that also includes Orcus) called Plutinos because they are in 2:3 mean-motion resonance with Neptune like the former planet. 2003 AZ84 was quite a challenge to detect. I constrained myself to using the same amount of data that I used to detect (55565) 2002 AW197 - 4 hours. I thought it would be a pretty simple matter to detect something 0.2 mag dimmer than (55565) 2002 AW197, but I was wrong. I had to implement 3 new tools to get a solid detection: 2D background removal, PSF deconvolution and bright star center masking in the difference images. I also built the static sky template slightly differently which I will talk about more below. Of course this is the whole point of stepping my way down the dimness scale - to build the tools that I need to detect incrementally dimmer objects as I go.
1. This is a full frame image of TESS sector 7, camera 1, CCD 3. The red box is the region of interest we'll be investigating in the rest of this study.
2. These are 4 processed frames of integrated images taken 24 hours apart from 2019-01-24 to 2019-01-27 that yield the best detection. The static sky template is built from 24 frames (including these 4). View the static sky template by clicking and holding the image above.
3. These are the difference images calculated as a pixel-wise subtraction of the static sky frame from the image set 2 frames. Click and hold the image set to see the streaks view.
4. These frames show the JPL Horizons specified location for 2003 AZ84 on the observation date and time of the frames. Click and hold the frames to see the 3σ thresholded version of the streaks view which demonstrates that these four matches were more significant signals than other noise in the frames.
Image set technical details:
Image 1: This full frame TESS sector 7, camera 1, CCD 3 image just highlights the region we'll be studying.
Image set 2: This image set shows the processed 4 frames that yield the best detections for this investigation. Each frame is made from a median integration of 10 sequential TESS observations on the same day that add up to 4 hours of observing time (accounting for cosmic ray mitigation's effective reduction of exposure length). Each integrated frame is separated by 24 hours. I started with 24 such frames (integrated from these full frame images) but reduced them to 4 by both rejecting outlier frames (frames with too much noise in the difference images) and by visually rejecting frames that didn't show strong enough detections. The static sky template, however, retains these rejected images (i.e. it is built from 24 frames). I usually calculate the static sky template as a trimmed max where I remove the single highest value (pixel-wise) for the set of frames. For this study I removed the 2 highest values pixel-wise per frame before taking the max. I'll discuss why I did this more below. Each of these frames also has the following processing: 2D background subtraction, brightness matching and PSF deconvolution.
Image set 3: These are the difference images. They are calculated by subtracting the static sky template from the processed frames of image set 2. I finally introduced PSF deconvolution in this study and observed that the difference images contained more 'spikes' around bright stars as a result. Presumably this is because deconvolution allocated signal to different pixels for some frames and the differencing revealed this as a noise-like process. Since it was apparent that these spikes were within or around bright stars I implemented a bright star mask for the difference images. This was quite effective in removing any traces of stars in the difference imaging. Most likely these pixels were at or near saturation and wouldn't have been likely to register detections anyway.
Image set 4: These are the same frames as image set 3 but with the JPL Horizons expected position for 2003 AZ84 plotted in pink for the frame observation times. Because the object is not quite as prominent in this study as those in previous studies, I'm showing the 3σ thresholded version of the frames in the streaks view. You can see from that view that the 4 circled 3σ detections represent 2003 AZ84's position well.
Other process notes:
- 2D Background subtraction: In my last TNO study I implemented a simple constant background model. Here I'm using a 2D model. It's all pretty straight forward photutils background estimation stuff. I'm still doing brightness matching too, but background subtraction has dramatically reduced the load brightness matching has to bear. As a reminder, brightness matching is a least squares fit of the observation frame intensity to a preliminary template frame to minimize the RMS difference between these two frames in the resulting difference image. Brightness matching is performed after background removal.
- PSF deconvolution: Finally! I went down the rabbit hole of modeling a PSF from sources in the observation frames, but in the end I saw just as good results with a simple 2D Gaussian model. That might not be the case, however, if I was looking at a region closer to the border of the image. The hardest part, honestly, was discovering (by trial and error) that scikit-image's Richardson-Lucy deconvolution algorithm requires a 0 to 1 normalized image on input. With any other range you get unexpected results. Specifically, the PSF I'm deconvolving is a 5x5 Gaussian with a standard deviation of 0.6. Static sky template without PSF deconvolution, with PSF deconvolution.
- Static sky template: I usually use a trimmed max to build the static sky template that removes the highest value for each pixel across all frames before taking the maximum of the remaining pixel values in the frames for the template image. In this study, however, I discarded the 2 highest values. I did this because while I could see 4 detections of 2003 AZ84 in the difference frames, I was only getting 2 3σ detections in the thresholded difference frames. By removing more high end values before taking the max I am essentially lowering the template floor. Lowering the floor makes the difference image deltas slightly larger and by trimming 2 values I was able to see 4 3σ detections. Obviously if you discard too many high end values you will start to have noise problems, but many techniques use median templates which are effectively the same as a trimmed max that discards 50% of the high end values. This seems like a parameter I should be experimenting with more.
- Bright star center masking: PSF deconvolution introduced artifacts in the difference images around bright stars. To remove these false signals within or immediately adjacent to bright stars I used a 3.5σ clipped mask with 1 pixel dilation calculated on the static sky template and applied to the difference images. This rendered ~16% of the pixels fully masked in the difference images.
Ideas & Todos:
- Using different templates for different frames: This is not a well-formed idea. I'm just thinking that the ideal template to subtract from each frame might not be the same across all frames. Is there a way to test everything from the 1 value trimmed max all the way down to the median and select the 'best' difference image by some measure?
After battling this detection for a while, I'm really happy with how it turned out. More specifically, I'm happy with the tools that I implemented that made it turn out. It's fun to discover limitations of your process and then find new ways to approach the problem and this object definitely forced me invest some time in pushing past limitations. The question now is whether it will be enough to detect Sedna because there's nothing else on my list (magnitude-wise) between this object and Sedna. I'm probably going to start that study with an immediate jump in integration time to 8 hours (from 4 here), but Sedna's 20.8 magnitude is still wayyy dimmer than 20.1. Sedna will be almost half as bright as 2003 AZ84.