This file is indexed.

/usr/share/gnudatalanguage/astrolib/gsssxyad.pro is in gdl-astrolib 2018.02.16+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
pro GSSSxyad, gsa, xin, yin, ra, dec, PRINT = print
;+ 
; NAME:
;       GSSSXYAD
; PURPOSE:
;       Convert (X,Y) coordinates in a STScI Guide Star image to RA and Dec
; EXPLANATION:
;       The sky coordinates may be printed and/or returned in variables.
;
; CALLING SEQUENCE:
;       GSSSxyad, gsa, x, y, ra, dec, [ /PRINT ]
; INPUT:
;       GSA  - The GSSS Astrometry structure extracted from a FITS header 
;              by GSSSEXTAST
;       X - The X pixel coordinate(s) of the image, scalar or vector
;       Y - The Y pixel coordinate(s) of the image, scalar or vector
;
; OUTPUT:
;       RA - The RA coordinate of the given pixel(s) in *degrees*
;       DEC - The DEC coordinate of the given pixel(s) in *degrees*
;
;       Both RA and Dec will be returned as double precision
;
; OPTIONAL KEYWORD INPUT:
;       /PRINT - If this keyword is set and non-zero, then coordinates will be
;               displayed at the terminal
; EXAMPLE:
;       Given a FITS header,hdr, from a GSSS image, print the astronomical
;       coordinates of (X,Y) = (200.23, 100.16) at the terminal
;
;       IDL> GSSSExtast, hdr, gsa        ;Extract astrometry structure
;       IDL> GSSSxyad, gsa, 200.23, 100.16, /print
;
; NOTES:
;       For most purpose users can simply use XYAD, which will call GSSSXYAD
;       if it is passed a GSSS header.
;
; PROCEDURES CALLED:
;       ASTDISP - print RA, Dec in a standard format
; HISTORY:
;       01-JUL-90 Version 1 written by Eric W. Deutsch
;       Vectorized Code   W. Landsman        March, 1991
;       14-AUG-91 Fixed error which caused returned RA and DEC to be off by
;       -.5 pixels in both X,Y.  Now X,Y follows same protocol as ADXY.
;       20-AUG-91 Modified to use AstDisp procedure.
;       June 94 Added /PRINT keyword instead of PRFLAG W. Landsman June 94
;       Converted to IDL V5.0   W. Landsman   September 1997
;       29-JUN-99 Added support for AMD[X,Y]1[2-3] for DSS images by E. Deutsch
;-

  arg = N_params()
  if (arg lt 3) then begin
    print,'Syntax - GSSSXYAD, GSSS_Astrom_struct, x, y, ra, dec, [/PRINT ]'
    return
    endif

  x = xin + 0.5 & y = yin + 0.5
  obx = ( gsa.ppo3-(gsa.xll+X)*gsa.xsz )/1000.0d0
  oby = ( (gsa.yll+Y)*gsa.ysz-gsa.ppo6 )/1000.0d0

  xi=gsa.amdx[0]*obx+               $
     gsa.amdx[1]*oby+               $
     gsa.amdx[2]+                   $
     gsa.amdx[3]*obx^2+             $
     gsa.amdx[4]*obx*oby+           $
     gsa.amdx[5]*oby^2+             $
     gsa.amdx[6]*(obx^2+oby^2)+     $
     gsa.amdx[7]*obx^3+             $
     gsa.amdx[8]*obx^2*oby+         $
     gsa.amdx[9]*obx*oby^2+         $
     gsa.amdx[10]*oby^3+               $
     gsa.amdx[11]*obx*(obx^2+oby^2)+   $
     gsa.amdx[12]*obx*(obx^2+oby^2)^2

  eta=gsa.amdy[0]*oby+              $
      gsa.amdy[1]*obx+              $
      gsa.amdy[2]+                  $
      gsa.amdy[3]*oby^2+            $
      gsa.amdy[4]*oby*obx+          $
      gsa.amdy[5]*obx^2+            $
      gsa.amdy[6]*(obx^2+oby^2)+    $
      gsa.amdy[7]*oby^3+            $
      gsa.amdy[8]*oby^2*obx+        $
      gsa.amdy[9]*oby*obx^2+        $
      gsa.amdy[10]*obx^3+               $
      gsa.amdy[11]*oby*(obx^2+oby^2)+   $
      gsa.amdy[12]*oby*(obx^2+oby^2)^2

  twopi = 2.0d*!DPI
  radeg = 180.0d/!DPI
  arcsec_per_radian = 360.*60.*60./twopi
  pltra = gsa.crval[0]/radeg
  pltdec = gsa.crval[1]/radeg

  xi = xi/arcsec_per_radian
  eta = eta/arcsec_per_radian

  numerator = xi/cos(pltdec)
  denominator = 1.0-eta*tan(pltdec)
  ra = atan(numerator,denominator)+pltra

  bad = where(ra LT 0,nbad)
  if (nbad GT 0) then ra[bad] = ra[bad]+twopi
  bad = where(ra GT twopi,nbad)
  if (nbad GT 0) then ra[bad] = ra[bad]-twopi

  numerator = cos(ra-pltra)
  denominator = (1.0-eta*tan(pltdec))/(eta+tan(pltdec))
  dec = atan(float(numerator/denominator))

  ra = ra*radeg
  dec = dec*radeg
  if keyword_set(PRINT) then AstDisp, xin, yin, ra, dec

  return
  end