13  double mu, nedt = -1e99;
 
   17    ERRMSG(
"Give parameters: <ctl> <pert.nc> <noise.tab>");
 
   20  scan_ctl(argc, argv, 
"PERTNAME", -1, 
"4mu", pertname);
 
   21  int bsize = (int) 
scan_ctl(argc, argv, 
"BSIZE", -1, 
"-999", NULL);
 
   22  const int maxvar = (int) 
scan_ctl(argc, argv, 
"MAXVAR", -1, 
"-999", NULL);
 
   23  const int dc = (int) 
scan_ctl(argc, argv, 
"DC", -1, 
"0", NULL);
 
   36  LOG(1, 
"Write noise data: %s", argv[3]);
 
   37  if (!(out = fopen(argv[3], 
"w")))
 
   38    ERRMSG(
"Cannot create file!");
 
   42          "# $1 = longitude [deg]\n" 
   43          "# $2 = latitude [deg]\n" 
   44          "# $3 = mean brightness temperature [K]\n" 
   45          "# $4 = noise estimate [K]\n\n");
 
   48  for (
int itrack = 0; itrack < pert->
ntrack - bsize; itrack += bsize) {
 
   51    double nedt_old = nedt;
 
   52    noise_pert(pert, itrack, itrack + bsize, &mu, &nedt);
 
   56        || fabs(200 * (nedt - nedt_old) / (nedt + nedt_old)) < maxvar)
 
   57      fprintf(out, 
"%g %g %g %g\n",
 
   58              pert->
lon[itrack + bsize / 2][pert->
nxtrack / 2][4],
 
   59              pert->
lat[itrack + bsize / 2][pert->
nxtrack / 2][4], mu, nedt);
 
double scan_ctl(int argc, char *argv[], const char *varname, const int arridx, const char *defvalue, char *value)
Search control parameter file for variable entry.
 
#define LEN
Maximum length of ASCII data lines.
 
#define ERRMSG(...)
Print error message and quit program.
 
#define ALLOC(ptr, type, n)
Allocate memory.
 
#define LOG(level,...)
Print log message.
 
void noise_pert(pert_t *pert, int track0, int track1, double *mu, double *sig)
Estimate noise from perurbations.
 
void read_pert(char *filename, char *pertname, int dc, pert_t *pert)
Read radiance perturbation data.
 
int main(int argc, char *argv[])
 
double lat[PERT_NTRACK][PERT_NXTRACK][PERT_NFOV]
Latitude [deg].
 
int ntrack
Number of along-track values.
 
int nxtrack
Number of across-track values.
 
double lon[PERT_NTRACK][PERT_NXTRACK][PERT_NFOV]
Longitude [deg].