chi and h site logo

{ Practical astronomy | Computing | Optics, detectors, mounts }


Optics, detectors, mounts

Here we combine the computing environment, the software design principles and the insights about optics and detectors into software to do some calculations for us. The result is the Optics module. We use two hidden files to keep information about our optics and our detector resp.

.SP4_OTA
Stores the aperture and focal length in mm, one number per line.
.SP4_CAM
Stores the number of pixels in the detector, the size of the detector in mm, the ISO setting and the filter transmission factor, one number per line. Note that this caters only for square detectors and square pixels. Make up your own mind whether you want to work with the long or the short side of a rectangular detector.

We have these user utilities to set the above principal data. Each requires a Python script to invoke from the Bash shell and to convert input parameters, and a Python function to do the work:

OTASet.py D f
OTASet(D,f)
Store the aperture D in mm and focal length f in mm.
OTASetDfD.py D fratio
OTASet(D,fratio)
Given aperture and focal ratio f/D, store the aperture D in mm and focal length f in mm.
OTASetffD.py f fratio
OTASet(f,fratio)
Given focal length and focal ratio f/D, store the aperture D in mm and focal length f in mm.
CamSet.py N d ISO T
CamSet(N, d, ISO, T)
Store the number of pixels, size of detector in mm, ISO setting and filter transmission (1 if no filter).

We have these user utilities to show the principal data, but also information directly derived from it. Each requires a Python script to invoke from the Bash shell and a Python function to do the work and to make the output:

OTAShow.py
OTAShow()
Display to terminal the parameters of the optics as set previously, but also display derived information, such as focal ratio, resolution, image scale, useful magnification etc.
CamShow.py
CamShow()
Combine the stored parameters for the optics and the camera and display these, the f ratio, the sizes of the pixels, resolution and field of view.

We have these user utilities to use the principal data, combined with additional parameters, two show resulting information. Each requires a Python script to invoke from the Bash shell and to convert input parameters, and a Python function to do the work and to make the output:

OTAProjAfoc.py f2 f3
OTAProjAfoc(f2,f3)
Combine the stored optics parameters with the given focal lengths in mm of eyepiece and camera to display the parameters of the resulting afocal projection.
OTAProjEP.py f2 x
OTAProjEP(f2,x)
Combine the stored optics parameters with the given focal lengths of the eyepiece in mm and projection distance in mm to display the parameters of the resulting eyepiece projection.
CamCrop.py N
CamCrop(N)
Combine the stored parameters for the optics and the camera with the given crop size in pixels and display the modified information equivalent to CamShow.
CamExpMag.py V alpha
CamExpMag(V,alpha)
Combine the stored parameters for the optics and the camera with the given magnitude V and apparent source radius in arcsec and display the saturation exposure.
CamExpFlux.py S alpha
CamExpFlux(S,alpha)
Combine the stored parameters for the optics and the camera with the given source flux S in Jy and apparent source radius in arcsec and display the saturation exposure.
CamExpBright.py B alpha
CamExpBright(B,alpha)
Combine the stored parameters for the optics and the camera with the given surface brightness B in MJy/sr and apparent source radius in arcsec and display the saturation exposure.

Here is an example use from the Bash shell. This is a traditional small refractor, a dSLR detector and a crescent Moon.

$ OTASetffD.py 840 13.3
$ CamSet.py 1728 15.0 800 0.5
$ CamShow.py 

              Aperture [mm]  63.1578947368
          Focal length [mm]  840.0
            Focal ratio f/D  13.3
         Detector size [mm]  15.0
           Number of pixels  1728.0
            Pixel size [um]  8.68055555556
     Diffr. resolution [um]  8.92430000034
 Diffr. resolution [arcsec]  2.19139167904
  Pixel resolution [arcsec]  2.13153941633
      Trailing exposure [s]  0.291389351562
        Field of view [deg]  1.02311173317
                ISO setting  800.0
        Filter transmission  0.5

$ CamExpBright.py 500000.0 1800.0

                  Flux [Jy]  119622981.02
   Apparent radius [arcsec]  1800.0
  Pixel brightness [MJy/sr]  500000.0
                ISO setting  800.0
        Filter transmission  0.5
    Saturation exposure [s]  0.265335

Because the Moon is not a circular source, the calculated flux is bogus. But the source is resolved by optics and detector, so that a meaningful surface brightness results in a meaningful exposure estimate.