Ocular : error in formula for CCD sensors
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Stellarium |
Fix Released
|
High
|
treaves |
Bug Description
In the CCD.cpp file, here is a formula that is used to calculate the field of view of the CCD sensor :
float CCD::getActualF
{
float FOVx = (chip_width * 206.265) / ocular-
return FOVx;
}
float CCD::getActualF
{
float FOVy = (chip_height * 206.265) / ocular-
return FOVy;
}
There are two errors :
1) The factor 206.265 is not adequate. It is adequate to calculate the sampling angle of one pixel by using the following formula :
sampling (in arc. sec) = 206.265 * pixel width (µm) / telescope focal length (mm)
but it is not suitable for the FOV of the whole sensor.
The right exact formula for the field of view of the CCD shall be :
FOVx (arc. min) = 2 * atan(chip_width (mm) / (2* telescope focal length (mm)) * 180 / pi() * 60
FOVy (arc. min) = 2 * atan(chip_height (mm) / (2* telescope focal length (mm)) * 180 / pi() * 60
This formula can be simplified :
FOVx (arc. min) = 6875.5 * atan(chip_width (mm) / (2* telescope focal length (mm))
FOVy (arc. min) = 6875.5 * atan(chip_height (mm) / (2* telescope focal length (mm))
It can even be further simplified if chip size << telescope focal length, but to allow the use of DSLR lenses (with short focal length) the above formula would be better.
FOVx (arc.min) = 3437.7 * chip_width (mm) / telescope focal length (mm)
FOVy (arc. min) = 3437.7 * chip_height (mm) / telescope focal length (mm)
2) The formula in the CCD.ccp file is using the "ocular" focal length. It is not correct. The focal length of the telescope shall be used. Most astronomers are using their CCD in the focal plane of their telescope, and not in line behind an ocular. Even behind an ocular the use of the ocular focal length only is not adequate.
Therefore the right code in CCD.cpp should be :
float CCD::getActualF
{
float FOVx = 6875.5 * atan(chip_width / telescope-
return FOVx;
}
float CCD::getActualF
{
float FOVy = 6875.5 * atan(chip_height / telescope-
return FOVy;
}
or something like that...
Fred
Changed in stellarium: | |
status: | New → Confirmed |
Changed in stellarium: | |
milestone: | none → 0.10.6 |
Changed in stellarium: | |
status: | Fix Committed → Fix Released |
Addition :
a) If you take a picture behind an ocular, the formula is given by replacing the focal length of the telescope above by Feq, the equivalent focal length of the telescope + ocular :
Feq = equivalent focal length for telescope + ocular (mm)
Ftel = telescope focal length (mm)
D = distance between ocular and CCD (mm)
Foc = ocular focal length (mm)
Feq = Ftel * ( ( D / Foc ) - 1 )
b) If you take a picture behind an ocular with a DSLR equiped with a lens, the equivalent focal length of the assembly is :
Feq = equivalent focal length for telescope + ocular + DSLR (mm)
Flens= DSLR focal length (mm)
Ftel = telescope focal length (mm)
Foc = ocular focal length (mm)
Feq = Ftel * Flens / Foc