library(grid)
library(data.table)
library(png)
# Convert an angle from radians into degrees [arcsec].
arcsec <- function(x) {
  x * 180 / pi * 3600
}

Lunt LS60THa tilt tuned solar telesope on an AstroTrac mount

image <- readPNG("Lunt LS60THa.png")
grid.raster(image)

Wavelength of Ha

h.alpha <- 656.3 # nm

Telescope exit pupil

exit.pupil.max <- 4   # Limit by observer's max pupil diameter [mm]
exit.pupil.opt <- 2.4 # Optimum resolving power of the eye [mm]
exit.pupil.min <- 1   # Max resolving power of telescope [mm]

Read telescope data from file

telescope <- read.csv("Telescope.csv")
head(telescope)
##           name  fl  d
## 1 Lunt LS60THa 500 60

Telescope resolution at 656.3 nm

resolution <- (h.alpha * 1e-9) / (telescope$d * 1e-3) # rad
print(resolution)
## [1] 1.093833e-05

Calculate some telescope parameters

telescope$n <- telescope$fl / telescope$d
telescope$magnification.min <- telescope$d / exit.pupil.max
telescope$magnification.opt <- telescope$d / exit.pupil.opt
telescope$magnification.max <- 1.5 * telescope$d / exit.pupil.min
telescope$dawes.limit <- 1.03 * arcsec(resolution)  # [1] arcsec
telescope$rayleigh.limit = 2 * 1.22 * arcsec(resolution)  # arcsec
telescope$airy.disk.theta = 1.22 * arcsec(resolution)  # arcsec
telescope$airy.disk.r = 1.22 * resolution * (telescope$fl * 1e-3) * 1e6 # µm
print(t(telescope))
##                   [,1]          
## name              "Lunt LS60THa"
## fl                "500"         
## d                 "60"          
## n                 "8.333333"    
## magnification.min "15"          
## magnification.opt "25"          
## magnification.max "90"          
## dawes.limit       "2.323879"    
## rayleigh.limit    "5.505111"    
## airy.disk.theta   "2.752556"    
## airy.disk.r       "6.672383"

Read eyepieces from file

eyepieces <- read.csv("Eyepieces.csv")
head(eyepieces)
##         name   fl afov
## 1    Kasai 5  5.0   45
## 2    Kasai 6  6.0   45
## 3    Kasai 7  7.0   45
## 4    Kasai 9  9.0   45
## 5 Kasai 12.5 12.5   45
## 6   Kasai 18 18.0   45

Caclulate parameters for telescope/eyepiece combinations

setup.all <- data.frame(eyepiece.name = eyepieces$name)
setup.all$magnification = telescope$fl / eyepieces$fl
setup.all$fov = 60 * eyepieces$afov * eyepieces$fl / telescope$fl # arcmin
print(data.table(setup.all), digits=1)
##    eyepiece.name magnification fov
## 1:       Kasai 5           100  27
## 2:       Kasai 6            83  32
## 3:       Kasai 7            71  38
## 4:       Kasai 9            56  49
## 5:    Kasai 12.5            40  68
## 6:      Kasai 18            28  97
## 7:      Kasai 25            20 135
## 8:    Lunt LS 10            50  84

Usable magnifications only

min <- telescope$magnification.min
max <- telescope$magnification.max
setup.usable <- subset(setup.all, min < magnification & magnification < max)
print(data.table(setup.usable), digits=1)
##    eyepiece.name magnification fov
## 1:       Kasai 6            83  32
## 2:       Kasai 7            71  38
## 3:       Kasai 9            56  49
## 4:    Kasai 12.5            40  68
## 5:      Kasai 18            28  97
## 6:      Kasai 25            20 135
## 7:    Lunt LS 10            50  84

[1] McKechnie, T. S. (2016). General Theory of Light Propagation and Imaging Through the Atmosphere (Vol. 196). Cham: Springer International Publishing. http://doi.org/10.1007/978-3-319-18209-4