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,
JURASSIC library declarations.
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).