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

TS Individual 152 on an AYOdigi II mount and a Berlebach Planet tripod

image <- readPNG("TS Individual 152.png")
grid.raster(image)

Wavelength of maximum sensitivity of human vision in the dark

scotopic.vision.max <- 510 # nm

Telescope exit pupil

exit.pupil.max <- 7   # 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 TS Individual 152 900 152

Telescope resolution at 510 nm

resolution <- (scotopic.vision.max * 1e-9) / (telescope$d * 1e-3) # rad
print(resolution)
## [1] 3.355263e-06

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$star.limit <- 2 + 5 * log10(telescope$d) # mag
telescope$dawes.limit <- 1.03 * arcsec(resolution)  # arcsec (McKechnie 2016)
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              "TS Individual 152"
## fl                "900"              
## d                 "152"              
## n                 "5.921053"         
## magnification.min "21.71429"         
## magnification.opt "63.33333"         
## magnification.max "228"              
## star.limit        "12.90922"         
## dawes.limit       "0.7128349"        
## rayleigh.limit    "1.688657"         
## airy.disk.theta   "0.8443287"        
## airy.disk.r       "3.684079"

Read eyepiece data 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           180  15
##  2:         Kasai 6           150  18
##  3:         Kasai 7           129  21
##  4:         Kasai 9           100  27
##  5:      Kasai 12.5            72  38
##  6:        Kasai 18            50  54
##  7:        Kasai 25            36  75
##  8:     Meade MA 12            75  30
##  9:   Pentax XL 5.2           173  23
## 10:     Pentax XL 7           129  30
## 11:  Pentax XL 10.5            86  46
## 12:    Pentax XL 14            64  61
## 13:    Pentax XW 20            45  93
## 14:    Pentax XL 40            22 173
## 15: Widescan III 13            69  73
## 16: Widescan III 20            45 112
## 17: Widescan III 30            30 168

Filter 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 5           180  15
##  2:         Kasai 6           150  18
##  3:         Kasai 7           129  21
##  4:         Kasai 9           100  27
##  5:      Kasai 12.5            72  38
##  6:        Kasai 18            50  54
##  7:        Kasai 25            36  75
##  8:     Meade MA 12            75  30
##  9:   Pentax XL 5.2           173  23
## 10:     Pentax XL 7           129  30
## 11:  Pentax XL 10.5            86  46
## 12:    Pentax XL 14            64  61
## 13:    Pentax XW 20            45  93
## 14:    Pentax XL 40            22 173
## 15: Widescan III 13            69  73
## 16: Widescan III 20            45 112
## 17: Widescan III 30            30 168

Load data for longitudinal aberration of TS Individual 152

aberration <- read.csv("TS Individual 152 Longitudinal Aberration.csv")

Plot longitudinal aberration of TS Individual 152

aberration$w <- as.factor(aberration$w)
aberration$w <- factor(aberration$w, levels=sort(levels(aberration$w)))
ggplot(data=aberration, aes(x=x,y=y,color=w)) +
  geom_path() +
  scale_color_manual(name="Wavelength [nm]",values=c("blue","green","yellow","orange","red")) + 
  labs(title="TS Individual 152 Longitudinal Aberration", x="Distance [mm]", y="Aperture [mm]") +
  coord_cartesian(xlim=c(-1,1)) +
  theme_bw()

Bibliography

McKechnie, T Stewart (2016): General Theory of Light Propagation and Imaging Through the Atmosphere. Cham: Springer International Publishing, DOI: 10.1007/978-3-319-18209-4.