library(grid)
library(data.table)
library(png)
# Convert an angle from radians into degrees [arcsec].
arcsec <- function(x) {
x * 180 / pi * 3600
}
Hofheim Instruments 12" travel dobson
image <- readPNG("Hofheim Instruments 12.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 Hofheim Instruments 12 1500 300
Telescope resolution at 510 nm
resolution <- (scotopic.vision.max * 1e-9) / (telescope$d * 1e-3) # rad
print(resolution)
## [1] 1.7e-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) # [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 "Hofheim Instruments 12"
## fl "1500"
## d "300"
## n "5"
## magnification.min "42.85714"
## magnification.opt "125"
## magnification.max "450"
## star.limit "14.38561"
## dawes.limit "0.3611697"
## rayleigh.limit "0.8555864"
## airy.disk.theta "0.4277932"
## airy.disk.r "3.111"
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 300 9
## 2: Kasai 6 250 11
## 3: Kasai 7 214 13
## 4: Kasai 9 167 16
## 5: Kasai 12.5 120 22
## 6: Kasai 18 83 32
## 7: Kasai 25 60 45
## 8: Meade MA 12 125 18
## 9: Pentax XL 5.2 288 14
## 10: Pentax XL 7 214 18
## 11: Pentax XL 10.5 143 27
## 12: Pentax XL 14 107 36
## 13: Pentax XW 20 75 56
## 14: Pentax XL 40 38 104
## 15: Widescan III 13 115 44
## 16: Widescan III 20 75 67
## 17: Widescan III 30 50 101
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 300 9
## 2: Kasai 6 250 11
## 3: Kasai 7 214 13
## 4: Kasai 9 167 16
## 5: Kasai 12.5 120 22
## 6: Kasai 18 83 32
## 7: Kasai 25 60 45
## 8: Meade MA 12 125 18
## 9: Pentax XL 5.2 288 14
## 10: Pentax XL 7 214 18
## 11: Pentax XL 10.5 143 27
## 12: Pentax XL 14 107 36
## 13: Pentax XW 20 75 56
## 14: Widescan III 13 115 44
## 15: Widescan III 20 75 67
## 16: Widescan III 30 50 101
[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