CrIS Code Collection
|
#include <netcdf.h>
#include <gsl/gsl_randist.h>
#include <gsl/gsl_fft_complex.h>
#include <gsl/gsl_multifit.h>
#include <gsl/gsl_poly.h>
#include <gsl/gsl_sort.h>
#include <gsl/gsl_spline.h>
#include "jurassic.h"
Go to the source code of this file.
Data Structures | |
struct | cris_l1_t |
CrIS Level-1 data. More... | |
struct | pert_t |
Perturbation data. More... | |
struct | ret_t |
Retrieval results. More... | |
struct | wave_t |
Wave analysis data. More... | |
Macros | |
#define | NDS 200000 |
Maximum number of data sets per granule. More... | |
#define | NPG 30 |
Maximum number of data points per granule. More... | |
#define | L1_NTRACK 45 |
Along-track size of CrIS radiance granule. More... | |
#define | L1_NXTRACK 30 |
Across-track size of CrIS radiance granule. More... | |
#define | L1_NFOV 9 |
Number of field of views of CrIS radiance granule. More... | |
#define | L1_NCHAN_LW 717 |
Number of CrIS longwave radiance channels. More... | |
#define | L1_NCHAN_MW 869 |
Number of CrIS midwave radiance channels. More... | |
#define | L1_NCHAN_SW 637 |
Number of CrIS shortwave radiance channels. More... | |
#define | PERT_NTRACK 44000 |
Along-track size of perturbation data. More... | |
#define | PERT_NXTRACK 120 |
Across-track size of perturbation data. More... | |
#define | PERT_NFOV 9 |
Number of field of views of perturbation data. More... | |
#define | WX 300 |
Across-track size of wave analysis data. More... | |
#define | WY 33000 |
Along-track size of wave analysis data. More... | |
#define | PMAX 512 |
Maximum number of data points for spectral analysis. More... | |
#define | NC(cmd) |
Execute netCDF library command and check result. More... | |
Functions | |
void | add_att (const int ncid, const int varid, const char *unit, const char *long_name) |
Add variable attributes to netCDF file. More... | |
void | add_var (const int ncid, const char *varname, const char *unit, const char *longname, int type, int dimid[], int *varid, int ndims) |
Add variable to netCDF file. More... | |
void | background_poly (wave_t *wave, int dim_x, int dim_y) |
Get background based on polynomial fits. More... | |
void | background_poly_help (const double *xx, double *yy, const int n, const int dim) |
Get background based on polynomial fits. More... | |
void | background_smooth (wave_t *wave, int npts_x, int npts_y) |
Smooth background. More... | |
void | create_background (wave_t *wave) |
Set background... More... | |
void | create_noise (wave_t *wave, double nedt) |
Add noise to perturbations and temperatures... More... | |
void | create_wave (wave_t *wave, double amp, double lx, double ly, double phi, double fwhm) |
Add linear wave pattern... More... | |
void | day2doy (const int year, const int mon, const int day, int *doy) |
Get day of year from date. More... | |
void | doy2day (const int year, const int doy, int *mon, int *day) |
Get date from day of year. More... | |
void | fit_wave (wave_t *wave, double amp, double phi, double kx, double ky, double *chisq) |
Evaluate wave fit... More... | |
void | fft_help (double *fcReal, double *fcImag, int n) |
Calculate 1-D FFT... More... | |
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... More... | |
void | gauss (wave_t *wave, double fwhm) |
Apply Gaussian filter to perturbations... More... | |
void | hamming (wave_t *wave, int nit) |
Apply Hamming filter to perturbations... More... | |
void | intpol_x (wave_t *wave, int n) |
Interpolate to regular grid in x-direction. More... | |
void | median (wave_t *wave, int dx) |
Apply median filter to perturbations... More... | |
void | merge_y (wave_t *wave1, wave_t *wave2) |
Merge wave structs in y-direction. More... | |
void | noise (wave_t *wave, double *mu, double *sig) |
Estimate noise. More... | |
void | noise_pert (pert_t *pert, int track0, int track1, double *mu, double *sig) |
Estimate noise from perurbations. More... | |
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. More... | |
void | pert2wave (pert_t *pert, wave_t *wave, int track0, int track1, int xtrack0, int xtrack1) |
Convert radiance perturbation data to wave analysis struct. More... | |
int | read_cris_l1 (char *filename, cris_l1_t *l1, int apo) |
Read CrIS Level-1 data. More... | |
void | read_pert (char *filename, char *pertname, int dc, pert_t *pert) |
Read radiance perturbation data. More... | |
void | read_retr (char *filename, ret_t *ret) |
Read CrIS retrieval data. More... | |
void | read_retr_help (double *help, int nds, int np, double mat[NDS][NPG]) |
Convert array. More... | |
void | read_wave (char *filename, wave_t *wave) |
Read wave analysis data. More... | |
void | rad2wave (cris_l1_t *cris_l1, double *nu, int nd, wave_t *wave) |
Convert CrIS radiance data to wave analysis struct. More... | |
void | ret2wave (ret_t *ret, wave_t *wave, int dataset, int ip) |
Convert CrIS retrieval results to wave analysis struct. More... | |
void | variance (wave_t *wave, double dh) |
Compute local variance. More... | |
void | write_wave (char *filename, wave_t *wave) |
Write wave analysis data. More... | |
#define NDS 200000 |
#define L1_NTRACK 45 |
#define L1_NXTRACK 30 |
#define L1_NFOV 9 |
#define L1_NCHAN_LW 717 |
#define L1_NCHAN_MW 869 |
#define L1_NCHAN_SW 637 |
#define PERT_NTRACK 44000 |
#define PERT_NXTRACK 120 |
#define PERT_NFOV 9 |
#define PMAX 512 |
#define NC | ( | cmd | ) |
void add_att | ( | const int | ncid, |
const int | varid, | ||
const char * | unit, | ||
const char * | long_name | ||
) |
void add_var | ( | const int | ncid, |
const char * | varname, | ||
const char * | unit, | ||
const char * | longname, | ||
int | type, | ||
int | dimid[], | ||
int * | varid, | ||
int | ndims | ||
) |
Add variable to netCDF file.
Definition at line 20 of file libcris.c.
void background_poly | ( | wave_t * | wave, |
int | dim_x, | ||
int | dim_y | ||
) |
Get background based on polynomial fits.
Definition at line 101 of file libcris.c.
void background_poly_help | ( | const double * | xx, |
double * | yy, | ||
const int | n, | ||
const int | dim | ||
) |
Get background based on polynomial fits.
Definition at line 47 of file libcris.c.
void background_smooth | ( | wave_t * | wave, |
int | npts_x, | ||
int | npts_y | ||
) |
Smooth background.
Definition at line 151 of file libcris.c.
void create_background | ( | wave_t * | wave | ) |
Set background...
Definition at line 204 of file libcris.c.
void create_noise | ( | wave_t * | wave, |
double | nedt | ||
) |
Add noise to perturbations and temperatures...
Definition at line 229 of file libcris.c.
void create_wave | ( | wave_t * | wave, |
double | amp, | ||
double | lx, | ||
double | ly, | ||
double | phi, | ||
double | fwhm | ||
) |
Add linear wave pattern...
Definition at line 250 of file libcris.c.
void day2doy | ( | const int | year, |
const int | mon, | ||
const int | day, | ||
int * | doy | ||
) |
Get day of year from date.
Definition at line 279 of file libcris.c.
void doy2day | ( | const int | year, |
const int | doy, | ||
int * | mon, | ||
int * | day | ||
) |
Get date from day of year.
Definition at line 298 of file libcris.c.
void fit_wave | ( | wave_t * | wave, |
double | amp, | ||
double | phi, | ||
double | kx, | ||
double | ky, | ||
double * | chisq | ||
) |
void fft_help | ( | double * | fcReal, |
double * | fcImag, | ||
int | n | ||
) |
Calculate 1-D FFT...
Definition at line 354 of file libcris.c.
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...
Definition at line 393 of file libcris.c.
void gauss | ( | wave_t * | wave, |
double | fwhm | ||
) |
Apply Gaussian filter to perturbations...
Definition at line 555 of file libcris.c.
void hamming | ( | wave_t * | wave, |
int | nit | ||
) |
Apply Hamming filter to perturbations...
Definition at line 595 of file libcris.c.
void intpol_x | ( | wave_t * | wave, |
int | n | ||
) |
Interpolate to regular grid in x-direction.
Definition at line 624 of file libcris.c.
void median | ( | wave_t * | wave, |
int | dx | ||
) |
Apply median filter to perturbations...
Definition at line 702 of file libcris.c.
void noise | ( | wave_t * | wave, |
double * | mu, | ||
double * | sig | ||
) |
Estimate noise.
Definition at line 776 of file libcris.c.
void noise_pert | ( | pert_t * | pert, |
int | track0, | ||
int | track1, | ||
double * | mu, | ||
double * | sig | ||
) |
Estimate noise from perurbations.
Definition at line 821 of file libcris.c.
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.
Definition at line 868 of file libcris.c.
Convert radiance perturbation data to wave analysis struct.
int read_cris_l1 | ( | char * | filename, |
cris_l1_t * | l1, | ||
int | apo | ||
) |
Read CrIS Level-1 data.
Definition at line 1100 of file libcris.c.
void read_pert | ( | char * | filename, |
char * | pertname, | ||
int | dc, | ||
pert_t * | pert | ||
) |
Read radiance perturbation data.
Definition at line 1270 of file libcris.c.
void read_retr | ( | char * | filename, |
ret_t * | ret | ||
) |
Read CrIS retrieval data.
Definition at line 1401 of file libcris.c.
void read_retr_help | ( | double * | help, |
int | nds, | ||
int | np, | ||
double | mat[NDS][NPG] | ||
) |
void read_wave | ( | char * | filename, |
wave_t * | wave | ||
) |
Read wave analysis data.
Definition at line 1582 of file libcris.c.
Convert CrIS radiance data to wave analysis struct.
Convert CrIS retrieval results to wave analysis struct.
Definition at line 1715 of file libcris.c.
void variance | ( | wave_t * | wave, |
double | dh | ||
) |
Compute local variance.
Definition at line 1769 of file libcris.c.
void write_wave | ( | char * | filename, |
wave_t * | wave | ||
) |
Write wave analysis data.
Definition at line 1819 of file libcris.c.