¿Cómo lidiar con los niveles cambiantes de sesgo CCD (exposición cero)?

Los valores medios de los marcos de sesgo provenientes de nuestro telescopio didáctico se desplazan hacia arriba o hacia abajo con cada captura. Por ejemplo:

import glob, numpy as np, astropy.io.fits as fio, matplotlib.pyplot as plt

data = np.zeros((10,255,765), dtype=np.int)
for i, f in enumerate(glob.glob('bias_*.fit')):
    data[i,:,:] = fio.getdata(f)

print(np.median(data, axis=(1,2)))

[ 106. 106. 108. 108. 110. 108. 105. 106. 107. 107.]

Ahora, durante la reducción de datos, promediamos la combinación de nuestros marcos de sesgo. También rechazamos valores atípicos (ya sea minmax o sigmaclip). Pero si algunos de nuestros marcos se "desplazan" más alto que otros, ¿no sesgaría esto el promedio (y especialmente el rechazo de valores atípicos) para que podamos introducir más ruido durante el promedio?

Para darle una idea de la naturaleza de esta fluctuación, hice un análisis rápido: leí 10 marcos de sesgo, luego los iteré, restando cada marco de la combinación mediana de todos los demás marcos. Esto me da algo así como "fotogramas de ruido", mostrando solo cuánto se desvía cada fotograma de la mediana del resto. A continuación se muestra el código y las distribuciones de dos de estos marcos de ruido.

noiseframes = np.zeros((10,255,765), dtype=np.int)
otherframes = np.ones(10, dtype=np.bool) # just a mask
for i in xrange(10):
    otherframes[:] = True
    otherframes[i] = False # exclude current frame from mask
    median_of_others = np.median(data[otherframes,:,:], axis=0)
    noiseframes[i,:,:] = data[i,:,:] - median_of_others

def plotdist(i):
    frame = noiseframes[i].flatten()
    x = np.arange(np.min(frame),np.max(frame)+1)
    y = np.bincount(frame-np.min(frame))
    plt.step(x, y, label=str(np.median(data[i,:,:])))

plotdist(4)
plotdist(3)
plt.xlabel('Difference from median [ADU]')
plt.legend()
plt.show()

Gráfico de 2 distribuciones de tramas de ruido

Todos los cuadros de ruido tienen distribuciones gaussianas casi perfectas con FWHM prácticamente constante, es solo el valor central el que cambia con cada cuadro.

Esto me lleva a un par de conclusiones: en primer lugar, este cambio es realmente un cambio en el valor medio y no solo el resultado de algo como los rayos cósmicos; en segundo lugar, la fluctuación es un efecto aditivo y, por lo tanto, no se debe a un cambio en la ganancia debido a una diferencia de voltaje o algo así.

Tampoco pude encontrar ninguna correlación con la temperatura o el tiempo desde la última lectura, los cuales sospeché por un momento.

¿Quizás son ligeros cambios en el tiempo de lectura?

No pude encontrar ninguna mención de este tipo de artefacto en mis propias notas del curso. Tampoco se menciona en ningún lugar en línea que pueda encontrar.

¿Alguno de ustedes me puede ayudar a a) identificar las posibles fuentes de tal fluctuación y/o b) proporcionar una estrategia comprobada para lidiar con esto durante la reducción de datos?

Respuestas (1)

Parece que tiene algunos componentes electrónicos escamosos conectados a su CCD si el nivel de polarización está cambiando en varias unidades en exposiciones consecutivas. Sin embargo, no todo está perdido si su CCD tiene una región de sobreexploración .

Normalmente se trata de varias columnas de "píxeles" que aparecen adjuntas a cada fila de sus datos, pero que no corresponden a píxeles físicos en el CCD. En realidad, son lecturas ficticias para evaluar el nivel de sesgo real en cada fila en particular.

La región de sobreexploración debe ser claramente visible en cualquier exposición real de una fuente de luz, ya que la región de sobreexploración no estará iluminada.

Puede usar el overscan de dos maneras. El método convencional es sobrebarrer y corregir sus imágenes antes de hacer una sustracción de sesgo. También debe hacer esto con sus marcos de sesgo antes de combinarlos en su marco de "sesgo maestro".

Por lo tanto, tome su región de sobreexploración y (i) calcule una mediana (o media recortada) dentro de ella y reste este valor de cada píxel de la imagen antes de usar (incluidos los marcos de sesgo); o (ii) ajuste algo más complicado en función del número de fila y luego reste esto de sus datos reales fila por fila.

Se requiere el método (ii) si observa que existe alguna estructura o deriva/tendencia en los valores de sobreexploración en función del número de fila.

Este enlace ofrece muchos detalles, algunas fotos y una receta.

gracias Desafortunadamente, por lo que puedo decir, el SBIG ST-7 no admite la lectura de la región de sobreexploración. Tendré más tiempo en el telescopio el próximo mes y espero encontrar alguna manera de hacer que eso suceda.
De hecho, noté el mismo comportamiento con nuestra otra cámara (STL-6303), por lo que probablemente se deba a la electrónica más adelante. Mientras tanto, parece que tendré que arreglármelas con los datos que tengo. Supongo que lo mejor por ahora sería normalizar los sesgos cambiando a un valor central y luego agregar la incertidumbre de este valor central a la estimación/propagación del ruido. Si el pequeño cambio por cuadro se distribuye normalmente, esto debería ser apropiado dados los datos limitados a mi disposición en este momento.
@ user181339 Entonces estás atascado. Todo lo que puede hacer con su secuencia de marcos de sesgo es caracterizar qué tan malo podría ser. Todos los instrumentos CCD astronómicos que he usado tienen una tira de sobreexploración. Mirando algo de documentación astro.louisville.edu/software/sbig/archive/xmccd-4.1/xmccd-4.1e/… parece que debería poder hacer lecturas ficticias en cada fila para producir una sobreexploración en CCD SBIG.
@ user181339 Tenga en cuenta que la sobreexploración es (generalmente) solo un desplazamiento numérico simple del nivel de sesgo que se aplica a todos los píxeles.
Gracias por el enlace al manual del conductor. Veo que podría haber una opción para leer overscan a través de una clave de registro. Lo intentaré tan pronto como vuelva a poner mis manos en el telescopio.