/usr/share/gnudatalanguage/coyote/ncdf_browser.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 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | ;+
; NAME:
; NCDF_BROWSER
;
; PURPOSE:
;
; This program is designed to make it easier to browse and read the
; data and metadata in netCDF and HDF files. The user can browse files,
; and read the data and metadata into main-level IDL variables. New netCDF
; and HDF files can be opened at any time. The user interacts with the
; program via a browser window (GUI). This program is a wrapper for the
; NCDF_DATA object (ncdf_data__define.pro), which must also be downloaded.
;
; Note that only HDF files with scientific datasets (SD) can be read currently.
; There is no support for VDATA objects or other objects sometimes found in HDF
; files. Also note that when variables are returned from HDF files, they are returned
; in a calibrated form, if calibration information about the variable is present in the
; file. Calibration information is presented as an extra variable attribute in the
; browser.
;
; calibratedData = calData.cal * (uncalibratedData - calData.offset)
;
; AUTHOR:
;
; FANNING SOFTWARE CONSULTING
; David Fanning, Ph.D.
; 1645 Sheely Drive
; Fort Collins, CO 80526 USA
; Phone: 970-221-0438
; E-mail: david@idlcoyote.com
; Coyote's Guide to IDL Programming: http://www.idlcoyote.com
;
; CATEGORY:
; File I/O
;
; CALLING SEQUENCE:
;
; IDL> NCDF_Browser, filename
;
; Arguments:
;
; filename: The name of a netCDF and HDF file to open and browse.
;
; KEYWORD PARAMETERS:
;
; EXTENSION: In general, netCDF and HDF files use *.nc, *.ncf, *.ncdf and *.hdf file extensions to
; identify themselves as netCDF and HDF files. Some users have their own file extensions.
; You can use this keyword to identify the file extension you wish to use. If
; set here, it will be used as the file filter in place of the normal file
; extensions in DIALOG_PICKFILE.
;
; obj = ('NCDF_DATA', file, EXTENSION='*.bin')
;
; NO_NEW_FILE: If this keyword is set, then the button that allows a new file to be open
; on the browser is not created.
;
; NO_READ_ON_PARSE: Normally, when a file is opened it is parsed for information.
; One piece of information is the minimum and maximum values of the variables.
; This requires actually reading the variables. This can slow things down
; considerably is the variable is large. Setting this keyword will suppress
; the reading of the variables during the parsing of the data file, with the
; result that no minimum or maximum values will be reported.
;
; TITLE: Set this keyword to a string that is on the title bar of the browser.
;
; XOFFSET: Set this keyword to the X offset in pixels of the top-left corner of the browser.
;
; YOFFSET: Set this keyword to the Y offset in pixels of the top-left corner of the browser.
;
; NOTES:
;
; This program is only a (useful) front-end for a more flexible
; object program of class NCDF_DATA. In this front end, the NCDF_DATA
; object is created and then destroyed when the GUI is destroyed.
; The NCDF_DATA object can be used to read netCDF data in a non-interactive
; way, if you prefer not to use a GUI to interact with the data file.
;
; MODIFICATION HISTORY:
; Written by: David W. Fanning, 03 Feb 2008. Used ideas from many
; people, including Chris Torrence, Ken Bowman, Liam Gumely,
; Andrew Slater, and Paul van Delst.
; Added Extension keyword. DWF. 04 Feb 2008.
; Added error handling and protection for NCDF variables that have a dimension of length zero. 22 April 2009. DWF.
; Added NO_READ_ON_PARSE keyword. 22 April 2009. DWF.
; Now convert NCDF CHAR type variables to strings on output. 22 April 2009. DWF
; Made the default value of NO_READ_ON_PARSE set to 1. 25 June 2009. DWF.
; Added NO_NEW_FILE keyword to suppress the Open File button. 3 February 2010. DWF.
; Added TITLE, XOFFSET, and YOFFSET keywords. 5 February 2010. DWF.
; Fixed a problem with memory leakage when the input file cannot be read. 1 May 2010. DWF.
;-
;******************************************************************************************;
; Copyright (c) 2008-2010, by Fanning Software Consulting, Inc. ;
; All rights reserved. ;
; ;
; Redistribution and use in source and binary forms, with or without ;
; modification, are permitted provided that the following conditions are met: ;
; ;
; * Redistributions of source code must retain the above copyright ;
; notice, this list of conditions and the following disclaimer. ;
; * Redistributions in binary form must reproduce the above copyright ;
; notice, this list of conditions and the following disclaimer in the ;
; documentation and/or other materials provided with the distribution. ;
; * Neither the name of Fanning Software Consulting, Inc. nor the names of its ;
; contributors may be used to endorse or promote products derived from this ;
; software without specific prior written permission. ;
; ;
; THIS SOFTWARE IS PROVIDED BY FANNING SOFTWARE CONSULTING, INC. ''AS IS'' AND ANY ;
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ;
; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT ;
; SHALL FANNING SOFTWARE CONSULTING, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, ;
; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED ;
; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ;
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ;
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ;
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;
;******************************************************************************************;
PRO NCDF_BROWSER, filename, $
EXTENSION=extension, $
NO_NEW_FILE=no_new_file, $
NO_READ_ON_PARSE=no_read_on_parse, $
TITLE=title, $
XOFFSET=xoffset, $
YOFFSET=yoffset
; Error handling.
CATCH, theError
IF theError NE 0 THEN BEGIN
CATCH, /CANCEL
void = cgErrorMsg()
RETURN
ENDIF
IF N_Elements(extension) EQ 0 THEN extension = '*.nc;*.ncd;*.ncdf;*.hdf'
IF N_Elements(no_read_on_parse) EQ 0 THEN no_read_on_parse = 1
; Need a filename?
IF N_Elements(filename) EQ 0 THEN BEGIN
filename = cgPickfile(/READ, TITLE='Select a File to Open', $
FILTER=extension)
ENDIF
IF filename EQ "" THEN RETURN
; Create an nCDF_DATA browse object.
ncdfObj = Obj_New('NCDF_DATA', filename, /Destroy_From_Browser, EXTENSION=extension, $
NO_READ_ON_PARSE=no_read_on_parse)
IF Obj_Valid(ncdfObj) THEN BEGIN
ncdfObj -> Browse, NO_NEW_FILE=Keyword_Set(no_new_file), $
XOFFSET=xoffset, YOFFSET=yoffset, SUCCESS=success, TITLE=title
IF ~success THEN Obj_Destroy, ncdfObj
ENDIF
END
|