geoms_tc.pro 6.6 KB
Newer Older
Ian Boyd's avatar
Ian Boyd committed
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
;---------------------------------------------------------------------------------------------------
;
; name:			geoms_tc.pro
; description: 	AVDC/EVDC GEOMS template checker tool
;
; 2011-02-03, v0.1	Christian Retscher	initial implementation
; 2011-04-11, v0.2	Christian Retscher	MWR support addded
;										concept: 1) GEOMS-VA -> HDF; 2) HDF -> GEOMS-VA checks
; 2011-04-17, v0.3	Christian Retscher	FTIR support start
;										filter for [SOLAR|LUNAR], [ppmv|ppbv|pptv], "...()"
; 2011-04-23, v0.4	Christian Retscher	FTIR support finalized, LIDAR support tested
; 2011-04-25, v0.5	Christian Retscher	Full LIDAR support added
; 2011-04-26, v0.6	Christian Retscher	Split in wrapper and TC tools (keep versioning)
; 2011-05-13, v0.7	Christian Retscher	Integrate UVVIS.DOAS
; 2013-12-19, v1.3  Ian Boyd  align with geoms_tctools version
; 2014-01-28, v1.34 Ian Boyd  align geoms_tools version due to change in geoms_tctools
; 2014-03-11, v1.35 Ian Boyd  align versions with geoms_tools
; 2014-03-25, v1.36 Ian Boyd  update due to modification to idlcr8ascii
; 2014-03-29, v1.37 Ian Boyd  update due to modification to idlcr8hdf
; 2014-05-22, v1.38 Ian Boyd  update due to modification to idlcr8hdf
; 2014-08-06, v1.39 Ian Boyd  update due to modification to idlcr8hdf and geoms_tools
; 2014-09-09, v1.40 Ian Boyd  update due to modification to idlcr8hdf and geoms_tools
; 2014-11-10, v1.41 Ian Boyd  update due to modification to idlcr8hdf and idlcr8ascii
; 2015-01-27, v1.42 Ian Boyd  update due to modification to idlcr8hdf and idlcr8ascii
; 2015-02-17, v1.43 Ian Boyd  update due to modification to idlcr8hdf and idlcr8ascii
; 2015-03-02, v1.44 Ian Boyd  update due to bug fix in idlcr8hdf
; 2015-04-09, v1.45 Ian Boyd  update due to bug fix in idlcr8hdf
; 2015-08-11, v1.46 Ian Boyd  update due to bug fixes and improvements in idlcr8hdf
; 2015-09-26, v1.47 Ian Boyd  update due to bug fixes and improvements in idlcr8hdf
; 2015-10-21, v1.48 Ian Boyd  update due to bug fixes and improvements in idlcr8hdf
; 2015-11-04, v1.49 Ian Boyd  update due to fix in idlcr8hdf
; 2015-11-09, v1.50 Ian Boyd  update due to bug fixes and improvements in idlcr8hdf and idlcr8ascii
; 2015-11-16, v1.51 Ian Boyd  update due to fix in idlcr8hdf
; 2015-12-15, v1.52 Ian Boyd  update due to fix in idlcr8hdf
; 2016-02-13, v1.53 Ian Boyd  Add extra satellite instruments to the obsolete list for DATA_SOURCE
;                             in idlcr8hdf. Modifications to idlcr8hdf and idlc8ascii
; 2016-06-14, v1.54 Ian Boyd  update due to fix in idlcr8ascii
; 2016-07-25, v1.55 Ian Boyd  update due to fix in idlcr8ascii and idlcr8hdf
; 2016-11-16, v1.56 Ian Boyd  update due to fix in idlcr8hdf
; 2016-11-30, v1.57 Ian Boyd  update due to fix in idlcr8ascii and idlcr8hdf and account for
;                             non-GEOMS variable attributes (ptr_valid check) in geoms_tctools
; 2016-12-17, v1.58 Ian Boyd  update due to fixes in idlcr8ascii
; 2016-12-30, v1.59 Ian Boyd  Add FV keyword to geoms_tools (options 20-22 in geoms_harmon call).
;                             If called then forces the DATA_FILE_VERSION not to increment when
;                             performing harmonization; Incorporates fixes made to idlcr8hdf
; 2017-03-31, v1.60 Ian Boyd  update due to improvements to idlcr8hdf
; 2017-11-21, v1.61 Ian Boyd  update due to fixes in idlcr8hdf
; 2018-02-18, v1.62 Ian Boyd  update due to fix in idlcr8ascii and idlcr8hdf
; 2018-03-14, v1.63 Ian Boyd  update due to fix in idlcr8hdf
; 2018-05-28, v1.64 Ian Boyd  update due to fix in idlcr8hdf
; 2018-09-01, v1.65 Ian Boyd  update due to fix in idlcr8hdf
; 2018-11-16, v1.66 Ian Boyd  update due to fix in idlcr8ascii
Ian Boyd's avatar
Ian Boyd committed
53
54
55
56
57
; 2019-05-06, v1.67 Ian Boyd  QA checks now carried out using the metadata definitions in the TAV version
;                             given in the FILE_META_VERSION global attribute. If this attribute is invalid
;                             or not present, or the TAV file can't be located, the input TAV file will
;                             be used for checks but an error code will be generated. Fix to idlcr8hdf
;                             that caused a crash if the file does not use a DATA_TEMPLATE
Ian Boyd's avatar
Ian Boyd committed
58
; 2019-05-14, v1.68 Ian Boyd  update due to fix in idlcr8ascii
Ian Boyd's avatar
Ian Boyd committed
59
; 2019-08-07, v1.69 Ian Boyd  update due to modifications to idlcr8ascii and idlcr8hdf
Ian Boyd's avatar
Ian Boyd committed
60
; 2019-08-21, v1.70 Ian Boyd  update due to fix in idlcr8ascii
Ian Boyd's avatar
Ian Boyd committed
61
62
63
; 2019-12-05, v2.00 Ian Boyd  update due to changes in geoms_qa to support checks on the optional DATA_SOURCE
;                             Version Name value (third field in DATA_SOURCE).
; 2020-02-26, v2.01 Ian Boyd  update due to geoms_vntools updates
Ian Boyd's avatar
Ian Boyd committed
64
; 2020-03-11, v2.02 Ian Boyd  update due to fix to idlcr8hdf
Ian Boyd's avatar
Ian Boyd committed
65
; 2020-04-27, v2.03 Ian Boyd  update due to geoms_vntools update
Ian Boyd's avatar
Ian Boyd committed
66
; 2020-07-09, v2.04 Ian Boyd  update due to fix to idlcr8hdf
Ian Boyd's avatar
Ian Boyd committed
67
68
69
; 2020-09-30, v2.05 Ian Boyd  update due to fix to idlcr8ascii; geoms_tools now returns a QA_error_code
;                             value of -2 to geoms_qa if idlcr8ascii can't read the input file, to stop
;                             template and version name checks
Ian Boyd's avatar
Ian Boyd committed
70
; 2020-10-20, v2.06 Ian Boyd  update due to fixes to idlcr8hdf
Ian Boyd's avatar
Ian Boyd committed
71
; 2020-10-26, v2.07 Ian Boyd  update due to fix to idlcr8hdf
Ian Boyd's avatar
Ian Boyd committed
72
73
74
75
76
77
78
79
80
81
;---------------------------------------------------------------------------------------------------

PRO geoms_tc

	args = command_line_args()
	iNrArgs = size(args, /N_ELEMENTS)

	if ( iNrArgs ne 2 ) then begin
		print
		print, 'GEOMS template checker (geoms_tc)'
Ian Boyd's avatar
Ian Boyd committed
82
		print, '  Release v2.07, 2020-10-26'
Ian Boyd's avatar
Ian Boyd committed
83
84
85
86
		print, '  Does GEOMS template compliance checks on HDF4/5 files.'
		print
		print, 'usage: idl -rt=geoms_tc.sav -args [GEOMS-TE-FILE] [HDFFILE] '
		print
Ian Boyd's avatar
Ian Boyd committed
87
88
		print, '1: GEOMS-TE-FILE is the path to the GEOMS template file'
		print, '2: HDFFILE is the path of the HDF file, you want to check for template compliance'
Ian Boyd's avatar
Ian Boyd committed
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
		print, '------------------------------------------------------------------------------------------------'
		print

		TC_error_code = 3
		exit, status=TC_error_code
	end

	templatefile 	= STRTRIM( args( 0 ), 2 )
	hdffile			= STRTRIM( args( 1 ), 2 )

	TC_error_code = 3

	if ( file_test( hdffile ) eq 0 ) then begin
		TC_error_code = 3
		print, '  ERROR: HDF file not found.'
	end else begin
		TC_error_code = 0
	end

	if ( file_test( templatefile ) eq 0 ) then begin
		TC_error_code = 3
		print, '  ERROR: GEOMS template file not found.'
	end else begin
		TC_error_code = 0
	end

	; find and remove log file (see geoms_tools.pro)
	logfile=STRMID(hdffile,0,STRPOS(hdffile,'.',/REVERSE_SEARCH))+'.log'
    openw,lu,logfile,/GET_LUN
	close

	if ( TC_error_code eq 0 ) then begin
		TC_error_code = geoms_tctools( templatefile, hdffile, 0 )
	end

	print, TC_error_code
	exit, status=TC_error_code

END