aboutsummaryrefslogtreecommitdiff
path: root/noao/nproto/skysep.cl
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/nproto/skysep.cl
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/nproto/skysep.cl')
-rw-r--r--noao/nproto/skysep.cl41
1 files changed, 41 insertions, 0 deletions
diff --git a/noao/nproto/skysep.cl b/noao/nproto/skysep.cl
new file mode 100644
index 00000000..d70742d5
--- /dev/null
+++ b/noao/nproto/skysep.cl
@@ -0,0 +1,41 @@
+# SEP -- Separation between two celestial coordinates.
+
+procedure sep (ra1, dec1, ra2, dec2)
+
+real ra1 { prompt="RA (hr|deg)"}
+real dec1 { prompt="DEC (deg)"}
+real ra2 { prompt="RA (hr|deg)"}
+real dec2 { prompt="DEC (deg)"}
+string raunit = "hr" { prompt="RA unit (hr|deg)", enum="hr|deg" }
+bool verbose = no { prompt="Verbose?"}
+real sep { prompt="Separation (arcsec)"}
+
+begin
+ real r1, d1, r2, d2
+ real c1, c2, x, y, z
+
+ if (raunit == "hr") {
+ r1 = ra1 * 15.
+ d1 = dec1
+ r2 = ra2 * 15.
+ d2 = dec2
+ } else {
+ r1 = ra1
+ d1 = dec1
+ r2 = ra2
+ d2 = dec2
+ }
+
+ c1 = dcos(d1)
+ c2 = dcos(d2)
+ x = dcos(r1) * c1 - dcos(r2) * c2
+ y = dsin(r1) * c1 - dsin(r2) * c2
+ z = dsin(d1) - dsin(d2)
+ c1 = (x*x + y*y + z*z) / 4.
+ c2 = max (0., 1.-c1)
+ sep = 2 * datan2(sqrt(c1),sqrt(c2)) * 3600
+
+ if (verbose)
+ printf ("%.2f arcsec = (%.2H, %.1h) - (%.2H, %.1h)\n",
+ sep, r1, d1, r2, d2)
+end