This file is indexed.

/usr/share/gnudatalanguage/coyote/hdfread.pro is in gdl-coyote 2016.11.13-2.

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
117
118
119
120
FUNCTION TEST_ISHDF,filename
CATCH, err
IF (err EQ 0) THEN RETURN, HDF_ISHDF(filename) $
        ELSE RETURN, 0
END ;------------------------------------------------------------------


PRO HDFREAD, filename   ; Open file and initialize the SDS interface.

IF N_ELEMENTS(filename) EQ 0 THEN filename = PICKFILE()
IF NOT TEST_ISHDF(filename) THEN BEGIN
   PRINT, 'Invalid HDF file ...'
   RETURN
   ENDIF ELSE $
   PRINT, 'Valid HDF file. Opening "' + filename + '"'

newFileID = HDF_SD_START(filename, /READ)

   ; What is in the file. Print the number of
   ; datasets, attributes, and palettes.

PRINT, 'Reading number of datasets and file attributes in file ...'
HDF_SD_FILEINFO, newFileID, datasets, attributes
numPalettes = HDF_DFP_NPALS(filename)
PRINT, ''
PRINT, 'No. of Datasets:   ', datasets
PRINT, 'No. of File Attributes: ', attributes
PRINT, 'No. of Palettes:   ', numPalettes

   ; Print the name of each file attribute.

PRINT, ''
PRINT, 'Printing name of each file attribute...'
FOR j=0, attributes-1 DO BEGIN
   HDF_SD_ATTRINFO, newFileID, j, NAME=thisAttr
   PRINT, 'File Attribute No. ', + STRTRIM(j, 2), ': ', thisAttr
ENDFOR

         ; Print the name of each SDS and associated data attributes.

PRINT, ''
PRINT, 'Printing name of each data set and its associated data attributes...'
FOR j=0, datasets-1 DO BEGIN
   thisSDS = HDF_SD_SELECT(newFileID, j)
   HDF_SD_GETINFO, thisSDS, NAME=thisSDSName, NATTS=numAttributes
   PRINT, 'Dataset No. ', STRTRIM(j,2), ': ', thisSDSName
   FOR k=0,numAttributes-1 DO BEGIN
      HDF_SD_ATTRINFO, thisSDS, k, NAME=thisAttrName
      PRINT, '   Data Attribute: ', thisAttrName
   ENDFOR
   PRINT, ''
ENDFOR

   ; Find the index of the "Gridded Data" SDS.

index = HDF_SD_NAMETOINDEX(newFileID, "Gridded Data")

   ; Select the Gridded Data SDS.

thisSdsID = HDF_SD_SELECT(newFileID, index)

   ; Print the names of the Gridded Data attributes.

PRINT, ''
PRINT, 'Printing names of each Gridded Data Attribute..."
HDF_SD_GETINFO, thisSdsID, NATTS=numAttributes
PRINT, 'Number of Gridded Data attributes: ', numAttributes
FOR j=0,numAttributes-1 DO BEGIN
   HDF_SD_ATTRINFO, thisSdsID, j, NAME=thisAttr
   PRINT, 'SDS Attribute No. ', + STRTRIM(j, 2), ': ', thisAttr
ENDFOR

   ; Get the data.

PRINT, ''
PRINT, 'Reading gridded data ...'
HDF_SD_GETDATA, thisSdsID, newGriddedData

   ; Get the palette associated with this data.

PRINT, 'Reading the color palette ...'
HDF_DFP_GETPAL, filename, thisPalette

   ; Get the gridded DIMENSION data.

longitudeDimID = HDF_SD_DIMGETID(thisSdsID, 0)
latitudeDimID = HDF_SD_DIMGETID(thisSdsID, 1)

PRINT, 'Reading the dimension data ...'
HDF_SD_DIMGET, longitudeDimID, LABEL=lonlable, $
   SCALE=lonscale, UNIT=lonunits
HDF_SD_DIMGET, latitudeDimID, LABEL=latlable, $
   SCALE=latscale, UNIT=latunits

   ; Get the DATE and EXPERIMENT attributes.

PRINT, 'Reading file attributes for plot ...'
dateAttID = HDF_SD_ATTRFIND(newFileID, 'DATE')
expAttID = HDF_SD_ATTRFIND(newFileID, 'EXPERIMENT')
HDF_SD_ATTRINFO, newFileID, dateAttID, DATA=thisDate
HDF_SD_ATTRINFO, newFileID, expAttID, DATA=thisExperiment

   ; Draw a contour map of the data.

PRINT, 'Drawing contour plot ...'
WINDOW, XSIZE=400, YSIZE=400
TVLCT, TRANSPOSE(CONGRID(thisPalette, 3, !D.Table_Size-1))
cgImage, BYTSCL(newGriddedData, TOP=!D.Table_Size-1), $
   POSITION=[0.15, 0.15, 0.95, 0.87]
CONTOUR, newGriddedData, lonscale, latscale, $
   XSTYLE=1, YSTYLE=1, NLEVELS=14, /NOERASE, $
   XTITLE = lonlable + ' (' + lonunits + ')', $
   YTITLE = latlable + ' (' + latunits + ')', $
   TITLE = thisExperiment + ' on ' + thisDate, $
   POSITION=[0.15, 0.15, 0.95, 0.87], /FOLLOW, $
   CHARSIZE=1.25, C_COLOR=0

HDF_SD_END, newFileID
PRINT, 'Read operation complete.'
END