-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixing 1 km/s radial velocity systematic #2380
Comments
A quick attempt of rerunning trace_shifts with new Hanuschik synthesized sky template. One possible theory is that the line blends from weaker lines are producing this, or that (this was run on a random subset of exposures from kibo) (UPDATE to avoid spamming) These are dwave vs wavelength as returned by shift_ycoef_using_external_spectrum
desispec/py/desispec/trace_shifts.py Line 757 in 4eae355
and the y-axis is the measurement by compute_dy_from_spectral_cross_correlation desispec/py/desispec/trace_shifts.py Line 767 in 4eae355
(focusing on the >8000 region) We can clearly see persistent systematics here that different wavelength bins are shifted in the same direction. (UPDATE2) This makes me think that the root cause is not the sky-spectrum in fact. (UPDATE3) import numpy as np
import matplotlib.pyplot as plt
import desispec.scripts.trace_shifts
plt.clf()
for petal in range(10):
plt.subplot(3, 4, petal + 1)
PP = desispec.scripts.trace_shifts.read_specter_psf(
f'/global/cfs/cdirs/desi/spectro/redux/kibo/exposures/20231008/00200048/psf-z{petal}-00200048.fits'
)
ws = np.linspace(7520, 9824, 20)
fibers = np.arange(1, 499, 20)
colors = (fibers - fibers.min()) / fibers.ptp()
for i, fiber in enumerate(fibers):
sk = []
for w in ws:
x1 = PP.x(fiber, w)
y1 = PP.y(fiber, w)
yg = np.linspace(y1 - 40, y1 + 40, 800)
x, y = np.meshgrid(np.linspace(x1 - 20, x1 + 20, 400), yg)
q = (PP._value(x, y, fiber, w).sum(axis=1))
mean = (yg * q).sum()
'''std = (q*(yg-mean)**2).sum()**.5'''
'''sk.append((q*(yg-mean)**3).sum()/std**3 )'''
sk.append(mean - y1)
plt.plot(ws, sk, color=plt.cm.turbo(colors[i]))
plt.xlabel('Wavelength') |
@segasai , thank for digging into this.
|
Thanks for the suggestions/comments @julienguy Also I still cannot get my head around why the dy offsets show roughly constant pattern as a f-n of wavelength (one of the plots above). My first thought was it was related to psf asymmetries/dependence on wavelength, but it does not seem to be the case, since the improvement in the #2386 do not fix that. |
Hi,
One of the long-standing issues we notice in MWS when looking at RVs wrt external data is the offset of ~ 1km/s that has been present for long time. (see i.e. figure
from
MWS EDR VAC paper K+2024).
We have already done some improvements in RV accuracy with trace_shifts #2106 (but mostly for backup data), but I thought I'd look at it again. And I've looked at the MEANDY from trace_shifts across the whole kibo, and this is how it looks like
There is a clear bias of 0.03 pixels. This corresponds to about 1km/s.
The sign is also in the right direction for +1km/s offst see figures in the #2106 for the plots of meandy vs velocity offset.
From what I can see the most likely cause is the sky spectrum sky-spec.dat, rather than anything algorithmic (that's my hypothesis though, not the fact). So my proposal/plan is to try to either
In #2106 I briefly looked at Hanuschik, but then decided to deal with that later as it was tangential to the issue with backup data and large MEANDY offsets.
I don't currently have a patch, but have written a code somewhere for 2nd method. I'll aim to try it on some subset of data to see if that gets rid of the offset and/or also improves the meandy accuracy.
This is just an issue to keep track of this problem, avoid forgetting it, as well as solicit any help/feedback.
The text was updated successfully, but these errors were encountered: