sasze  0.0-0.dev0.dirty.el6
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
sasze_ingest.h
Go to the documentation of this file.
1 /*******************************************************************************
2 *
3 * COPYRIGHT (C) 2012 Battelle Memorial Institute. All Rights Reserved.
4 *
5 ********************************************************************************
6 *
7 * Authors:
8 *
9 * name: Brian Ermold
10 * phone: (509) 375-2277
11 * email: brian.ermold@pnnl.gov
12 *
13 * name: Yan Shi
14 * phone: (509) 375-6858
15 * email: yan.shi@pnnl.gov
16 *
17 *******************************************************************************/
18 
19 /** @file sasze_ingest.h
20  * SASZE Ingest Header File.
21  */
22 
23 #ifndef SASZE_INGEST
24 #define SASZE_INGEST
25 
26 #include "dsproc3.h"
27 #include "sas_utils.h"
28 
29 /**
30  * @defgroup SASZE_INGEST SASZE Ingest
31  */
32 /*@{*/
33 
34 /**
35  * SASZE Data Structure.
36  */
37 typedef struct {
38 
39  const char *proc_name; /**< process name */
40  const char *site; /**< site name */
41  const char *facility; /**< facility name */
42  int raw_dsid; /**< raw data output datastream id */
43 
44  char conf_dir[PATH_MAX]; /**< full path to the conf directory */
45 
46  DirList *nir_resp_dirlist; /**< list of NIR responsivity files */
47  DirList *vis_resp_dirlist; /**< list of VIS responsivity files */
48 
49  /* SASZE raw data structures */
50 
51  SasRawData *nir_raw; /**< SASZE NIR raw data */
52  SasRawData *vis_raw; /**< SASZE VIS raw data */
53 
54  /* SASZE output datastream IDs */
55 
56  int nir_a0_dsid; /**< SASZE NIR a0 datastream ID */
57  int nir_a1_dsid; /**< SASZE NIR with darks subtracted */
58  int vis_a0_dsid; /**< SASZE VIS a0 datastream ID */
59  int vis_a1_dsid; /**< SASZE VIS with darks subtracted */
60  int fb_dsid; /**< SASZE Filterband datastream ID */
61 
62  /** List of SASZE NIR files to process when a VIS file is found. */
64 
65  /* Variables used to create the output filterband datastream */
66 
67  int fb_max_ntimes; /**< max number of filterband times */
68  int fb_ntimes; /**< number of filterband times */
69  time_t *fb_times; /**< array of filterband times */
70  SasRecord **fb_nir_records; /**< array of NIR filterband records */
71  SasRecord **fb_vis_records; /**< array of VIS filterband records */
72 
73  SasConfigTable *toaIo_table; /**< table of Guermard TOA values */
74 
75 } SaszeData;
76 
77 /* Main Ingest Functions */
78 
79 int main(int argc, char *argv[]);
80 
81 void *sasze_init_process(void);
82 void sasze_finish_process(void *user_data);
83 
85  SaszeData *data,
86  const char *input_dir,
87  const char *nir_file,
88  const char *vis_file);
89 
91  void *user_data,
92  const char *input_dir,
93  const char *file_name);
94 
95 /*@}*/
96 
97 /**
98  * @defgroup SASZE_STORE_DATA SASZE Store Data
99  */
100 /*@{*/
101 
104 int sasze_calibrate_data(SaszeData *data, SasRawData *raw);
105 
107  SasRawData *raw,
108  CDSGroup *dataset);
109 int sasze_store_calibrated_data(SasRawData *raw, int dsid);
110 
112  SaszeData *data,
113  SasRawData *nir_raw,
114  SasRawData *vis_raw,
115  CDSGroup *dataset);
117  SaszeData *data,
118  SasRawData *nir_raw,
119  SasRawData *vis_raw,
120  int dsid);
121 
122 int sasze_store_data(
123  SaszeData *data,
124  SasRawData *nir_raw,
125  SasRawData *vis_raw);
126 
127 /*@}*/
128 
129 #endif /* SASZE_INGEST */