from datetime import datetime
import os
import re
import numpy as np
%matplotlib ipympl
import matplotlib.pyplot as plt
import lsst.daf.persistence as dafPersist
import pfs.drp.stella.utils.stability as stability
repo = "/work/drp"
rerun = "rhl/tmp"
dataDir = os.path.join(repo, "rerun", rerun)
butler = dafPersist.Butler(dataDir)
if False: visit = 96938
else: visit = 97055
arm, spectrograph = 'r', 3
dataId = dict(visit=visit, arm=arm, spectrograph=spectrograph)
isQuartz = True
detMap = butler.get("detectorMap_used", dataId)
als = stability.addTraceLambdaToArclines(butler.get('arcLines', dataId), detMap)
fitType = "per fiber" if False else "median" if True else None
hexBin = True nsigma = -4 plotWavelength = True
byRow = False usePixels = True showChi = False
maxCentroidErr = 10
minSN = 0
lamErrMax = -0.04
soften = 0.012
arrowSize = 0.30
if True:
fig = "tmp0"; plt.close(fig); fig = plt.figure(fig)
fig = stability.plotArcResiduals(als, detMap, fitType=fitType, plotWavelength=plotWavelength,
isQuartz=isQuartz, byRow=byRow,
vmin=-arrowSize, vmax=arrowSize,
title=f"{visit} {'%(arm)s%(spectrograph)d' % dataId}",
usePixels=usePixels, showChi=showChi, hexBin=hexBin,
soften=soften, lamErrMax=lamErrMax, nsigma=nsigma, figure=fig)