82#include <gsl/gsl_randist.h> 
   83#include <gsl/gsl_fft_complex.h> 
   84#include <gsl/gsl_multifit.h> 
   85#include <gsl/gsl_poly.h> 
   86#include <gsl/gsl_sort.h> 
   87#include <gsl/gsl_spline.h> 
   88#include <airs_rad_typ.h> 
   89#include <airs_rad_struct.h> 
   90#include <airs_ret_typ.h> 
   91#include <airs_ret_struct.h> 
  123#define PERT_NTRACK 132000 
  126#define PERT_NXTRACK 360 
  143  int nc_result=(cmd);                               \ 
  144  if(nc_result!=NC_NOERR)                            \ 
  145    ERRMSG("%s", nc_strerror(nc_result));            \
 
  339  const char *long_name);
 
  346  const char *longname,
 
  519  airs_rad_gran_t * airs_rad_gran,
 
void hamming(wave_t *wave, int nit)
Apply Hamming filter to perturbations...
 
void merge_y(wave_t *wave1, wave_t *wave2)
Merge wave structs in y-direction.
 
void fit_wave(wave_t *wave, double amp, double phi, double kx, double ky, double *chisq)
Evaluate wave fit...
 
void create_wave(wave_t *wave, double amp, double lx, double ly, double phi, double fwhm)
Add linear wave pattern...
 
void read_l1(char *filename, airs_l1_t *l1)
Read AIRS Level-1 data.
 
#define PERT_NXTRACK
Across-track size of perturbation data.
 
void background_poly_help(double *xx, double *yy, int n, int dim)
Get background based on polynomial fits.
 
void fft_help(double *fcReal, double *fcImag, int n)
Calculate 1-D FFT...
 
void background_smooth(wave_t *wave, int npts_x, int npts_y)
Smooth background.
 
#define L1_NXTRACK
Across-track size of AIRS radiance granule (don't change).
 
#define L1_NTRACK
Along-track size of AIRS radiance granule (don't change).
 
void add_att(int ncid, int varid, const char *unit, const char *long_name)
Add variable attributes to netCDF file.
 
void day2doy(int year, int mon, int day, int *doy)
Get day of year from date.
 
void intpol_x(wave_t *wave, int n)
Interpolate to regular grid in x-direction.
 
void fft(wave_t *wave, double *Amax, double *phimax, double *lhmax, double *kxmax, double *kymax, double *alphamax, double *betamax, char *filename)
Calculate 2-D FFT...
 
#define WX
Across-track size of wave analysis data.
 
void noise(wave_t *wave, double *mu, double *sig)
Estimate noise.
 
void read_retr_help(double *help, int nds, int np, double mat[NDS][NPG])
Convert array.
 
#define L2_NXTRACK
Across-track size of AIRS retrieval granule (don't change).
 
#define PERT_NTRACK
Along-track size of perturbation data.
 
void background_poly(wave_t *wave, int dim_x, int dim_y)
Get background based on polynomial fits.
 
void create_noise(wave_t *wave, double nedt)
Add noise to perturbations and temperatures...
 
void variance(wave_t *wave, double dh)
Compute local variance.
 
#define NDS
Maximum number of data sets per granule.
 
void write_l2(char *filename, airs_l2_t *l2)
Write AIRS Level-2 data.
 
void read_l2(char *filename, airs_l2_t *l2)
Read AIRS Level-2 data.
 
void add_var(int ncid, const char *varname, const char *unit, const char *longname, int type, int dimid[], int *varid, int ndims)
Add variable to netCDF file.
 
void rad2wave(airs_rad_gran_t *airs_rad_gran, double *nu, int nd, wave_t *wave)
Convert AIRS radiance data to wave analysis struct.
 
#define L2_NLAY
Number of AIRS pressure layers (don't change).
 
void ret2wave(ret_t *ret, wave_t *wave, int dataset, int ip)
Convert AIRS retrieval results to wave analysis struct.
 
void pert2wave(pert_t *pert, wave_t *wave, int track0, int track1, int xtrack0, int xtrack1)
Convert radiance perturbation data to wave analysis struct.
 
#define NPG
Maximum number of data points per granule.
 
void read_retr(char *filename, ret_t *ret)
Read AIRS retrieval data.
 
void doy2day(int year, int doy, int *mon, int *day)
Get date from day of year.
 
#define L1_NCHAN
Number of AIRS radiance channels (don't change).
 
void create_background(wave_t *wave)
Set background...
 
#define L2_NTRACK
Along-track size of AIRS retrieval granule (don't change).
 
#define WY
Along-track size of wave analysis data.
 
void read_wave(char *filename, wave_t *wave)
Read wave analysis data.
 
void read_pert(char *filename, char *pertname, pert_t *pert)
Read radiance perturbation data.
 
void gauss(wave_t *wave, double fwhm)
Apply Gaussian filter to perturbations...
 
void write_l1(char *filename, airs_l1_t *l1)
Write AIRS Level-1 data.
 
void median(wave_t *wave, int dx)
Apply median filter to perturbations...
 
void write_wave(char *filename, wave_t *wave)
Write wave analysis data.
 
void period(wave_t *wave, double lxymax, double dlxy, double *Amax, double *phimax, double *lhmax, double *kxmax, double *kymax, double *alphamax, double *betamax, char *filename)
Compute periodogram.
 
int ntrack
Number of along-track values.
 
int nxtrack
Number of across-track values.
 
int nds
Number of data sets.
 
int np
Number of data points.
 
int nx
Number of across-track values.
 
int ny
Number of along-track values.
 
double time
Time (seconds since 2000-01-01T00:00Z).