32 static airs_rad_gran_t airs_rad_gran;
37 ERRMSG(
"Give parameters: <ctl> <l1b_file1> <l1b_file2> <nu> <wave.tab>");
41 (int)
scan_ctl(argc, argv,
"BG_POLY_X", -1,
"5", NULL);
43 (int)
scan_ctl(argc, argv,
"BG_POLY_Y", -1,
"0", NULL);
44 const int bg_smooth_x =
45 (int)
scan_ctl(argc, argv,
"BG_SMOOTH_X", -1,
"0", NULL);
46 const int bg_smooth_y =
47 (int)
scan_ctl(argc, argv,
"BG_SMOOTH_Y", -1,
"0", NULL);
48 const double gauss_fwhm =
scan_ctl(argc, argv,
"GAUSS_FWHM", -1,
"0", NULL);
49 const double var_dh =
scan_ctl(argc, argv,
"VAR_DH", -1,
"0", NULL);
52 double nu = atof(argv[4]);
55 printf(
"Read AIRS Level-1B data file: %s\n", argv[2]);
56 airs_rad_rdr(argv[2], &airs_rad_gran);
59 rad2wave(&airs_rad_gran, &nu, 1, &wave);
62 if (argv[3][0] !=
'-') {
65 printf(
"Read AIRS Level-1B data file: %s\n", argv[3]);
66 airs_rad_rdr(argv[3], &airs_rad_gran);
69 rad2wave(&airs_rad_gran, &nu, 1, &wave2);
80 gauss(&wave, gauss_fwhm);
double scan_ctl(int argc, char *argv[], const char *varname, int arridx, const char *defvalue, char *value)
Search control parameter file for variable entry.
#define ERRMSG(...)
Print error message and quit program.
void merge_y(wave_t *wave1, wave_t *wave2)
Merge wave structs in y-direction.
void background_smooth(wave_t *wave, int npts_x, int npts_y)
Smooth background.
void rad2wave(airs_rad_gran_t *gran, double *nu, int nd, wave_t *wave)
Convert AIRS radiance data to wave analysis struct.
void background_poly(wave_t *wave, int dim_x, int dim_y)
Get background based on polynomial fits.
void variance(wave_t *wave, double dh)
Compute local variance.
void gauss(wave_t *wave, double fwhm)
Apply Gaussian filter to perturbations...
void write_wave(char *filename, wave_t *wave)
Write wave analysis data.
AIRS Code Collection library declarations.
int main(int argc, char *argv[])