Menu

Pixel saturation

2015-02-07
2015-02-12
  • Andreas Poehlmann

    Some spectrometers have a maxIntensity smaller than 65535.
    The seabreeze code saturates pixels at maxIntensity. Is it possible, that valid pixels have higher values than maxIntensity, or is this implemented to limit the dummy pixels?

     
  • Mark Zieg

    Mark Zieg - 2015-02-10

    Hi Andreas,

    That's a good catch. Most of them are correct given their detector/ADC dynamic range, but you're right that a few of them stand-out.

    ApexSpectrometerFeature.cpp:        this->maxIntensity = 64000;
    HR2000PlusSpectrometerFeature.cpp:  this->maxIntensity = 16383;
    HR2000SpectrometerFeature.cpp:      this->maxIntensity =  4095;
    HR4000SpectrometerFeature.cpp:      this->maxIntensity = 16383;
    JazSpectrometerFeature.cpp:         this->maxIntensity = 65535;
    Maya2000ProSpectrometerFeature.cpp: this->maxIntensity = 64000;
    Maya2000SpectrometerFeature.cpp:    this->maxIntensity = 65535;
    MayaLSLSpectrometerFeature.cpp:     this->maxIntensity = 64000;
    NIRQuestSpectrometerFeature.cpp:    this->maxIntensity = 65535;
    QE65000SpectrometerFeature.cpp:     this->maxIntensity = 65535;
    QEProSpectrometerFeature.cpp:       this->maxIntensity = (1 << 18) - 1;
    STSSpectrometerFeature.cpp:         this->maxIntensity = 16383;
    USB2000PlusSpectrometerFeature.cpp: this->maxIntensity = 65535;
    USB2000SpectrometerFeature.cpp:     this->maxIntensity =  4095;
    USB4000SpectrometerFeature.cpp:     this->maxIntensity = 65535;
    VentanaSpectrometerFeature.cpp:     this->maxIntensity = 65535;
    

    Let me check on the derivation of some of these values.

     
  • Denis Sergeevich

    Hello!
    USB4000-XR1-ES return a maximum value of 32000 by call sbapi_spectrometer_get_unformatted_spectrum without any corrections. If I must check it more precisely, let me know about it.

     
  • Mark Zieg

    Mark Zieg - 2015-02-12

    Hi Denis,

    I did some checking, and as far as I can tell the above values are correct for our gain-adjusted formatted spectra (the purpose of maxIntensity). Different detectors and Analog-to-Digital Converters (ADC) have different dynamic range values. As you can see, our older spectrometers like the original USB2000 had a 12-bit dynamic range, so can only output intensities from 0 - 4095 (2^12 - 1). Others have a 14-bit range like the STS, and most of our modern series support 16-bit (65535).

    The two values which I had to double-check were the QEPro and the Maya series (including Apex, which shares the same detector). It turns out that the QEPro value was a bit high, as overall system noise precludes the full theoretical 18-bit range, so I have now reduced that to 200,000 (same as OmniDriver and OceanView support).

    Likewise, engineering analysis determined that the Hamamatsu S10420 detector is susceptible to unit-to-unit variation at the very top of its linearity curve, which is why we reduced the maximum intensity for that series to 64,000. I have added comments in the code to explain that adjustment.

    Regards,

    Mark

     

Log in to post a comment.