JURASSIC
Functions
nadir.c File Reference

Create observation geometry for a nadir sounder. More...

#include "jurassic.h"

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Detailed Description

Create observation geometry for a nadir sounder.

Definition in file nadir.c.

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 39 of file nadir.c.

41 {
42
43 static ctl_t ctl;
44 static obs_t obs;
45
46 /* Print usage information... */
47 USAGE;
48
49 /* Check arguments... */
50 if (argc < 3)
51 ERRMSG("Missing or invalid command-line arguments.\n\n"
52 "Usage: nadir <ctl> <obs> [KEY VALUE ...]\n\n"
53 "Use -h for full help.");
54
55 /* Read control parameters... */
56 read_ctl(argc, argv, &ctl);
57 const double t0 = scan_ctl(argc, argv, "T0", -1, "0", NULL);
58 const double t1 = scan_ctl(argc, argv, "T1", -1, "0", NULL);
59 const double dt = scan_ctl(argc, argv, "DT", -1, "1", NULL);
60 const double obsz = scan_ctl(argc, argv, "OBSZ", -1, "700", NULL);
61 const double lat0 = scan_ctl(argc, argv, "LAT0", -1, "-8.01", NULL);
62 const double lat1 = scan_ctl(argc, argv, "LAT1", -1, "8.01", NULL);
63 const double dlat = scan_ctl(argc, argv, "DLAT", -1, "0.18", NULL);
64
65 /* Create measurement geometry... */
66 for (double t = t0; t <= t1; t += dt)
67 for (double lat = lat0; lat <= lat1; lat += dlat) {
68 obs.time[obs.nr] = t;
69 obs.obsz[obs.nr] = obsz;
70 obs.vplat[obs.nr] = lat;
71 if ((++obs.nr) >= NR)
72 ERRMSG("Too many rays!");
73 }
74
75 /* Write observation data... */
76 write_obs(NULL, argv[2], &ctl, &obs, 0);
77
78 return EXIT_SUCCESS;
79}
void read_ctl(int argc, char *argv[], ctl_t *ctl)
Read model control parameters from command-line and configuration input.
Definition: jurassic.c:5516
void write_obs(const char *dirname, const char *filename, const ctl_t *ctl, const obs_t *obs, int profile)
Write observation data to an output file in ASCII or binary format.
Definition: jurassic.c:8275
double scan_ctl(int argc, char *argv[], const char *varname, const int arridx, const char *defvalue, char *value)
Scan control file or command-line arguments for a configuration variable.
Definition: jurassic.c:6612
#define ERRMSG(...)
Print an error message with contextual information and terminate the program.
Definition: jurassic.h:1325
#define USAGE
Print usage information on -h or --help.
Definition: jurassic.h:1206
#define NR
Maximum number of ray paths.
Definition: jurassic.h:318
Control parameters.
Definition: jurassic.h:1428
Observation geometry and radiance data.
Definition: jurassic.h:1657
double vplat[NR]
View point latitude [deg].
Definition: jurassic.h:1681
double obsz[NR]
Observer altitude [km].
Definition: jurassic.h:1666
double time[NR]
Time (seconds since 2000-01-01T00:00Z).
Definition: jurassic.h:1663
int nr
Number of ray paths.
Definition: jurassic.h:1660
Here is the call graph for this function: