Background math

Angle \(\varphi\) (in degree) with corresponding arc length \(x\) (in radian) in the unit circle.

In addition to absolute length units, group size is often reported in terms of its angular diameter. Angles can be measured equivalently either in degree or in radian. If \(x\) is the angular measurement in radian, and \(\varphi\) the angular measurement in degree for the same angle, then \(\frac{x}{2 \pi} = \frac{\varphi}{360}\) such that conversion between degree and radian is given by \(x = \frac{2 \pi}{360} \cdot \varphi\) and \(\varphi = \frac{360}{2 \pi} \cdot x\).

The angular size of an object with absolute size \(s\) is its angular diameter at a given distance \(d\). This is the angle \(\alpha\) subtended by the object with the line of sight centered on it.

Angular diameter of object with absolute size \(s\) at distance to target \(d\). Right triangle formed by \(d\) and object of size \(s/2\). \(s\) corresponds to angle \(\alpha\) (degree) and arc length \(x\) (radian).

The following measures for angular size are supported:

  • deg = degree. The circle is divided into 360 degrees.
  • MOA = minute of angle = arcmin. 1 MOA = \(1/60\) degree such that the circle has \(360 \cdot 60 = 21600\) MOA.
  • SMOA = Shooter's MOA = Inches Per Hundred Yards IPHY. 1 inch at 100 yards = 1 SMOA.
  • rad = radian. 1 radian is 1 unit of arc length on the unit circle which has a circumference of \(2 \pi\). The circle circumference is divided into \(2 \pi\) rad.
  • mrad = milliradian = 1/1000 radian. The circle circumference is divided into \(2 \pi \cdot 1000 \approx 6283.19\) mrad.
  • mil: 1 mil = \(\frac{2 \pi}{6400}\) radian - the circle circumference is divided into 6400 mils.

Settings

Output

Convert absolute size to angular diameter


                        
Math

The angle \(\alpha\) subtended by an object of size \(s\) at distance \(d\) can be calculated from the right triangle with hypotenuse \(d\) and cathetus \(s/2\): \(\tan\left(\frac{\alpha}{2}\right) = \frac{s}{2} \cdot \frac{1}{d}\), therefore \(\alpha = 2 \cdot \arctan\left(\frac{s}{2 d}\right)\).

Assuming that the argument for \(\tan(\cdot)\) and the result from \(\arctan(\cdot)\) are in radian, and that distance to target \(d\) and object size \(s\) are measured in the same unit, this leads to the following formulas for calculating \(\alpha\) in MOA, SMOA as well as \(x\) in mrad and NATO mil based on \(d\) and \(s\)

  • Angle \(\alpha\) in degree: \(\alpha = \frac{360}{2 \pi} \cdot 2 \cdot \arctan\left(\frac{s}{2 d}\right) = \frac{360}{\pi} \cdot \arctan\left(\frac{s}{2 d}\right)\)
  • Angle \(\alpha\) in MOA: \(\alpha = 60 \cdot \frac{360}{\pi} \cdot \arctan\left(\frac{s}{2 d}\right) = \frac{21600}{\pi} \cdot \arctan\left(\frac{s}{2 d}\right)\)
  • Angle \(\alpha\) in SMOA: By definition, size \(s=1\) inch at \(d = 100\) yards (\(= 3600\) inch) is 1 SMOA.
    Conversion factors to/from MOA are \(\frac{21600}{\pi} \cdot \arctan\left(\frac{1}{7200}\right) \approx 0.95493\), and \(\frac{\pi}{21600} \cdot \frac{1}{\arctan(1/7200)} \approx 1.04720\).
    \(\alpha = \frac{\pi}{21600} \cdot \frac{1}{\arctan(1/7200)} \cdot \frac{21600}{\pi} \cdot \arctan\left(\frac{s}{2 d}\right) = \frac{1}{\arctan(1/7200)} \cdot \arctan\left(\frac{s}{2 d}\right)\)
  • Arc length \(x\) in rad: \(x = 2 \cdot \arctan\left(\frac{s}{2 d}\right)\).
  • Arc length \(x\) in mrad: \(x = 2000 \cdot \arctan\left(\frac{s}{2 d}\right)\).
    Conversion factors to/from MOA are \(\frac{21600}{2000 \pi} \approx 3.43775\) and \(\frac{2000 \pi}{21600} \approx 0.29089\).
  • Arc length \(x\) in NATO mil: \(x = \frac{6400}{\pi} \cdot \arctan\left(\frac{s}{2 d}\right)\).
    Conversion factors to/from MOA are \(\frac{21600}{6400} = 3.375\) and \(\frac{6400}{21600} \approx 0.2962963\).

Settings

Output

Convert angular diameter to absolute size


                        
Math

Absolute object size \(s\) can be calculated from angular diameter and distance to target \(d\), assuming that the argument for \(\tan(\cdot)\) and the result from \(\arctan(\cdot)\) are in radian, and that distance to target \(d\) and object size \(s\) are measured in the same unit:

  • From angle \(\alpha\) in degree: \(s = 2 \cdot d \cdot \tan\left(\alpha \cdot \frac{\pi}{360}\right)\)
  • From angle \(\alpha\) in MOA: \(s = 2 \cdot d \cdot \tan\left(\alpha \cdot \frac{\pi}{60 \cdot 360} \right) = 2 \cdot d \cdot \tan\left(\alpha \cdot \frac{\pi}{21600}\right)\)
  • From angle \(\alpha\) in SMOA: \(s = \frac{21600}{\pi} \cdot \arctan\left(\frac{1}{7200}\right) \cdot 2 \cdot d \cdot \tan\left(\alpha \cdot \frac{\pi}{21600}\right)\)
  • From arc length \(x\) in rad: \(s = 2 \cdot d \cdot \tan\left(x \cdot \frac{1}{2}\right)\)
  • From arc length \(x\) in mrad: \(s = 2 \cdot d \cdot \tan\left(x \cdot \frac{1}{2000}\right)\)
  • From arc length \(x\) in NATO mil: \(s = 2 \cdot d \cdot \tan\left(x \cdot \frac{\pi}{6400}\right)\)

Settings

Output

Calculate distance from absolute and angular size


                        
Math

Distance to target \(d\) can be calculated from absolute object size \(s\) and angular size, assuming that the argument for \(\tan(\cdot)\) and the result from \(\arctan(\cdot)\) are in radian, and that distance to target \(d\) and object size \(s\) are measured in the same unit:

  • From angle \(\alpha\) in degree: \(d = \frac{s}{2} \cdot \frac{1}{\tan(\alpha \cdot \pi/360)}\)
  • From angle \(\alpha\) in MOA: \(d = \frac{s}{2} \cdot \frac{1}{\tan(\alpha \cdot \pi/21600)}\)
  • From angle \(\alpha\) in SMOA: \(d = \frac{s}{2} \cdot \frac{1}{\tan(\alpha \cdot \arctan(1/7200))}\)
  • From arc length \(x\) in rad: \(d = \frac{s}{2} \cdot \frac{1}{\tan(x / 2)}\)
  • From arc length \(x\) in mrad: \(d = \frac{s}{2} \cdot \frac{1}{\tan(x / 2000)}\)
  • From arc length \(x\) in NATO mil: \(d = \frac{s}{2} \cdot \frac{1}{\tan(x \cdot \pi / 6400)}\)

About

The shotGroups package for R provides functions to read in, plot, statistically describe, analyze, and compare shooting data with respect to group shape, precision, and accuracy. This includes graphical methods, descriptive statistics, and inference tests using standard, but also non-parametric and robust statistical methods. The data can be imported from files produced by OnTarget PC and OnTarget TDS , TARAN , ShotMarker e-target , Silver Mountain e-target , or from custom data files in text format with a similar structure. For further explanations and an example walkthrough, see the package vignette . Many statistical methods are described on Ballistipedia .

shotGroups and this web application are written by:
Daniel Wollschläger <dwoll@kuci.org>
Source code shotGroups
Source code shiny app

More shotGroups web applications

Comprehensive shot group analysis: http://shiny.imbei.uni-mainz.de:3838/shotGroups_AnalyzeGroups
Region hit probability calculations: http://shiny.imbei.uni-mainz.de:3838/shotGroups_HitProb/
Estimate Rayleigh \(\sigma\) from range statistics: http://shiny.imbei.uni-mainz.de:3838/shotGroups_RangeStat/

Calculations

For details of the calculations used in this app, see the documentation for getMOA() as well as for fromMOA() and the shotGroups vignette section 3.5.

References

This web application is built with R, shiny, and bs4Dash. The shotGroups package uses functionality provided by the R packages boot, coin, CompQuadForm, energy, mvoutlier, and robustbase:

Canty, A., & Ripley, B. D. (2020). boot: Bootstrap R (S-Plus) Functions.
https://CRAN.R-project.org/package=boot

Duchesne, P., & Lafaye de Micheaux, P. (2010). Computing the distribution of quadratic forms: Further comparisons between the Liu-Tang-Zhang approximation and exact methods. Computational Statistics and Data Analysis, 54 (4), 858-862.
https://CRAN.R-project.org/package=CompQuadForm

Filzmoser, P., & Gschwandtner, M. (2018). mvoutlier: Multivariate outlier detection based on robust methods.
https://CRAN.R-project.org/package=mvoutlier

Granjon, D. (2019). bs4Dash: A 'Bootstrap 4' Version of 'shinydashboard'.
https://CRAN.R-project.org/package=bs4Dash

Hothorn, T., Hornik, K., van de Wiel, M. A., & Zeileis, A. (2008). Implementing a Class of Permutation Tests: The coin Package. Journal of Statistical Software, 28 (8), 1-23.
https://www.jstatsoft.org/v28/i08/
https://CRAN.R-project.org/package=coin

R Core Team (2020). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria.
https://www.R-project.org/

Rizzo, M. L., & Szekely, G. J. (2019). energy: E-statistics (energy statistics).
https://CRAN.R-project.org/package=energy

Rousseeuw, P. J., Croux, C., Todorov, V., Ruckstuhl, A., Salibian-Barrera, M., Verbeke, T., & Maechler, M. (2020). robustbase: Basic Robust Statistics.
https://CRAN.R-project.org/package=robustbase

RStudio Inc. (2020). shiny: Web Application Framework for R.
https://CRAN.R-project.org/package=shiny
https://shiny.rstudio.com/

Wollschlaeger, D. (2020). shotGroups: Analyze shot group data.
https://CRAN.R-project.org/package=shotGroups
https://github.com/dwoll/shotGroups/ - development version