/usr/share/gnudatalanguage/astrolib/fthmod.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 | pro fthmod,h,field,parameter,value
;+
; NAME:
; FTHMOD
; PURPOSE:
; Procedure to modify header information for a specified field
; in a FITS table.
;
; CALLING SEQUENCE:
; fthmod, h, field, parameter, value
;
; INPUT:
; h - FITS header for the table
; field - field name or number
; parameter - string name of the parameter to modify. Choices
; include:
; TTYPE - field name
; TUNIT - physical units for field (eg. 'ANGSTROMS')
; TNULL - null value (string) for field, (eg. '***')
; TFORM - format specification for the field
; TSCAL - scale factor
; TZERO - zero offset
; User should be aware that the validity of the change is
; not checked. Unless you really know what you are doing,
; this routine should only be used to change field names,
; units, or another user specified parameter.
; value - new value for the parameter. Refer to the FITS table
; standards documentation for valid values.
;
; EXAMPLE:
; Change the units for a field name "FLUX" to "Janskys" in a FITS table
; header,h
;
; IDL> FTHMOD, h, 'FLUX', 'TUNIT','Janskys'
; METHOD:
; The header keyword <parameter><field number> is modified
; with the new value.
; HISTORY:
; version 1, D. Lindler July 1987
; Converted to IDL V5.0 W. Landsman September 1997
; Major rewrite to use new FTINFO call W. Landsman May 2000
;-
;-----------------------------------------------------------------------
on_error,2
ftinfo,h,ft_str
sz = size(field)
if ((sz[0] ne 0) or (sz[1] EQ 0)) then $
message,'Invalid field specification, it must be a scalar'
if sz[1] EQ 7 then begin
field = strupcase(strtrim(field,2))
ttype = strtrim(ft_str.ttype,2)
ipos = where(ttype EQ field, Npos)
if Npos EQ 0 then message, $
'Specified field ' + strupcase(strtrim(field,2)) + ' not in table'
endif else ipos = field -1
;
par = parameter+strtrim(ipos[0]+1,2)
sxaddpar,h,par,value
return
end
|