Je reviens sur un problème déjà évoqué dans ce forum concernant la gestion du Gain et de l'Offset de la DSI III dans PRISM.
Quelques soient les régalges effectués du Gain et de l'Offset, on obtient toujours une Image Offset (BIAS) avec une moyenne > 5600 ADU et des images en lumière du jour dont la moyenne ne va jamais au-delà de 22000 ADU, malgré de longs temps de pose. Avec un Gain de 100%, la dynamique est très applatie allant de 6000 ADU à 20000 ADU en moyenne.
Je n'ai pas ce problème avec d'autres logiciels (Envisage, Nebulosity, MaximDL). J'ai effectué un test de linéarité et obtenu les courbes de transferts photoniques suivantes:
1) Images Flats obtenues avec Nebulosity avec un Gain fixé à 100% => Facteur de conversion de 0.28 e/ADU (conforme à d'autres mesures et bench divers consultables sur internet) 2) Images Flats obtenues avec PRISM avec un Gain fixé à 100% dans PRISM => Facteur de conversion de 7.38 e/ADU (?) En faisant plusieurs séries, j'observe toujours une cassure de la variance autour de 17500 ADU (?).
Je pense qu'il y a un problème dans la gestion des valeurs des paramètres Gain et Offset passés au Driver Meade de la DSI.
Pour info, voici la gestion de ces paramètres effectuée par Roland Roberts dans son Driver DSI Open Source pour Linux dans l'appel de la commande dsi_start_image() :
Code : Tout sélectionner
dsi_start_image(dsi_camera_t *dsi, double exptime) {
int gain, offset;
int exposure_ticks = 10000 * exptime;
gain = 63 * dsi->amp_gain_pct / 100;
/* FIXME: What is the mapping?
* 20% -> 409 -> 0x199
* 50% -> 0
* 80% -> 153 -> 0x099
* So, this looks like a 8-bit value with a sign bit. Then 80% is
* (80-50)/50*255 = 153, and 20% is the same thing, but with the high bit
* set.
*/
if (dsi->amp_offset_pct < 50) {
offset = 50 - dsi->amp_offset_pct;
offset = 255 * offset / 50;
offset |= 0x100;
} else {
offset = dsi->amp_offset_pct - 50;
offset = 255 * offset / 50;
}
dsicmd_set_exposure_time(dsi, exposure_ticks);
if (exposure_ticks < 10000) {
dsicmd_set_readout_speed(dsi, DSI_READOUT_SPEED_HIGH);
dsicmd_set_readout_delay(dsi, 3);
dsicmd_set_readout_mode(dsi, DSI_READOUT_MODE_DUAL);
dsicmd_get_readout_mode(dsi);
dsicmd_set_vdd_mode(dsi, DSI_VDD_MODE_ON);
} else {
dsicmd_set_readout_speed(dsi, DSI_READOUT_SPEED_LOW);
dsicmd_set_readout_delay(dsi, 5);
dsicmd_set_readout_mode(dsi, DSI_READOUT_MODE_SINGLE);
dsicmd_get_readout_mode(dsi);
dsicmd_set_vdd_mode(dsi, DSI_VDD_MODE_AUTO);
}
dsicmd_set_gain(dsi, 63*dsi->amp_gain_pct/100);
dsicmd_set_offset(dsi, offset);
dsicmd_set_flush_mode(dsi, DSI_FLUSH_MODE_CONT);
dsicmd_get_readout_mode(dsi);
dsicmd_get_exposure_time(dsi);
dsicmd_start_exposure(dsi);
dsi->imaging_state = DSI_IMAGE_EXPOSING;
return 0;
}
Est-il possible de vérifier la gestion de ces paramètres dans PRISM ?
Merci.
Cdlt,
MP