30                {
   31 
   33 
   35 
   36  FILE *out;
   37 
   38  double mu, mu2, nedt, nedt2;
   39 
   40  
   41  if (argc < 4)
   42    ERRMSG("Give parameters: <ctl> <airs.nc> <noise.tab>");
   43 
   44  
   47 
   48  
   50 
   51  
   52  printf("Write noise data: %s\n", argv[3]);
   53  if (!(out = fopen(argv[3], "w")))
   54    ERRMSG("Cannot create file!");
   55 
   56  
   57  fprintf(out,
   58          "# $1 = altitude [km]\n"
   59          "# $2 = longitude [deg]\n"
   60          "# $3 = latitude [deg]\n"
   61          "# $4 = mean temperature (retrieval) [K]\n"
   62          "# $5 = noise estimate (retrieval) [K]\n"
   63          "# $6 = mean temperature (a priori) [K]\n"
   64          "# $7 = noise estimate (a priori) [K]\n\n");
   65 
   66  
   67  for (
int ip = 0; ip < ret.
np; ip++) {
 
   68 
   69    
   72 
   73    
   74    noise(wave, &mu, &nedt);
 
   75    noise(wave2, &mu2, &nedt2);
 
   76 
   77    
   78    fprintf(out, "%g %g %g %g %g %g %g\n",
   80            wave->
lon[wave->
nx / 2][wave->
ny / 2],
 
   81            wave->
lat[wave->
nx / 2][wave->
ny / 2], mu, nedt, mu2, nedt2);
 
   82  }
   83 
   84  
   85  fclose(out);
   86 
   87  
   88  free(wave);
   89  free(wave2);
   90 
   91  return EXIT_SUCCESS;
   92}
void noise(wave_t *wave, double *mu, double *sig)
Estimate noise.
 
void ret2wave(ret_t *ret, wave_t *wave, int dataset, int ip)
Convert AIRS retrieval results to wave analysis struct.
 
void read_retr(char *filename, ret_t *ret)
Read AIRS retrieval data.
 
int np
Number of data points.
 
int nx
Number of across-track values.
 
int ny
Number of along-track values.
 
double lon[WX][WY]
Longitude [deg].
 
double lat[WX][WY]
Latitude [deg].