Hi John,
Thank you for uploading the images. As expected, there is no problem at all, neither with the flat frames (other than the fact that they are uncalibrated frames, but that's a different matter), nor with the integrated results, irrespective of the frame selected as reference for integration.
Multiplicative normalization is extremely sensitive to small differences among reference images, so you can also expect relatively large differences in the corresponding integrated images. However, all of them are equally valid and there is no truncation of pixel values.
To demonstrate this, let's count the number of pixels with a value of zero in the integrated result using different reference frames. This can be done very easily with the PixelMath tool. Define a PixelMath instance with the following parameters (the rest with default values):
- RGB/K Expression:
n += $T <= 1.19e-07
- Symbols:
n = global(+)
- Generate output (Destination section): disabled.
To perform a more rigorous test, we'll count the number of pixels with values less than or equal to the machine epsilon for 32-bit floating point (1.19x10-7), instead of zero. After executing the PixelMath instance on each image, the results are written to the console:
PixelMath: Processing view: integration_with_reference_0003
Executing PixelMath expression: combined RGB/K channels: n += $T <= 1.19e-07: done
* Global variables:
n(+) = { 0, 0, 0 }
35.835 ms
PixelMath: Processing view: integration_with_reference_0001
Executing PixelMath expression: combined RGB/K channels: n += $T <= 1.19e-07: done
* Global variables:
n(+) = { 1, 1, 1 }
42.657 ms
As you can see, the image integrated with the first frame as reference has a single pixel with an insignificant value. This has no statistical significance, and is irrelevant for all practical purposes.
Let's perform a second test. Define the following PixelMath instance (other parameters with default values):
- RGB/K Expression:
$T/mean($T)
- Rescale result (Destination section): enabled.
This instance will normalize the master flat frames, basically in the same way ImageCalibration does before applying a master flat to calibrate light frames. After applying the instance, these are the normalized/unclipped statistics:
integration_with_reference_0003
K
count (%) 100.00000
count (px) 11694368
mean 1.034921e-01
median 1.044943e-01
avgDev 2.986219e-02
MAD 2.971942e-02
minimum 0.000000e+00
maximum 1.000000e+00
integration_with_reference_0001
K
count (%) 100.00000
count (px) 11694368
mean 1.034922e-01
median 1.044944e-01
avgDev 2.986219e-02
MAD 2.971948e-02
minimum 0.000000e+00
maximum 1.000000e+00
The differences are insignificant (beyond 32-bit floating point resolution). You can also compare the histograms for both integrated frames to verify that they are indeed identical.
You can be sure that, irrespective of the reference frame selected for integration, the resulting master flat will work perfectly for image calibration. If the flat frames are valid, that is.