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>
108#define L2_NTRACK 1800
114#define IASI_L1_NCHAN 8700
117#define IASI_NXTRACK 30
123#define IASI_IDefNsfirst1b 2581
126#define IASI_IDefNslast1b 11041
129#define IASI_IDefSpectDWn1b 25
132#define PERT_NTRACK 132000
135#define PERT_NXTRACK 360
149 int coda_result=(cmd); \
151 ERRMSG("%s", coda_errno_to_string(coda_errno)); \
156 int nc_result=(cmd); \
157 if(nc_result!=NC_NOERR) \
158 ERRMSG("%s", nc_strerror(nc_result)); \
369 const char *longname,
void hamming(wave_t *wave, int nit)
Apply Hamming filter to perturbations...
#define IASI_NXTRACK
Raw data across-track size of IASI radiance granule.
void iasi_read(int format, char *filename, iasi_rad_t *iasi_rad)
Read IASI 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 background_smooth(wave_t *wave, int npts_x, int npts_y)
Smooth background.
#define L1_NXTRACK
Across-track size of IASI radiance granule (don't change).
#define L1_NTRACK
Maximum along-track size of IASI radiance granule (don't change).
#define IASI_L1_NCHAN
Number of channels of IASI radiance granule.
#define WX
Across-track size of wave analysis data.
void write_l2(char *filename, iasi_l2_t *l2)
Write IASI Level-2 data.
void noise(wave_t *wave, double *mu, double *sig)
Estimate noise.
void write_l1(char *filename, iasi_l1_t *l1)
Write IASI Level-1 data.
void iasi_read_netcdf(char *filename, iasi_rad_t *iasi_rad)
Read IASI Level-1 data from netCDF file.
#define L2_NXTRACK
Across-track size of IASI 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 variance(wave_t *wave, double dh)
Compute local variance.
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.
#define L2_NLAY
Number of IASI pressure layers (don't change).
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 L1_NCHAN
Number of IASI radiance channels (don't change).
#define L2_NTRACK
Maximum along-track size of IASI retrieval granule (don't change).
#define WY
Along-track size of 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...
#define IASI_PM
Raw data size of measurement matrix (2x2).
void iasi_read_native(char *filename, iasi_rad_t *iasi_rad)
Read IASI Level-1 data from native file.
void median(wave_t *wave, int dx)
Apply median filter to perturbations...
double wgs84(double lat)
Calculate Earth radius according to WGS-84 reference ellipsoid.
size_t ntrack
Number of along-track values.
size_t ntrack
Number of along-track values.
IASI converted Level-1 radiation data.
int ntrack
Number of along-track samples.
long ntrack
Number of along-track samples.
int ntrack
Number of along-track values.
int nxtrack
Number of across-track values.
int nx
Number of across-track values.
int ny
Number of along-track values.
double time
Time (seconds since 2000-01-01T00:00Z).