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.");
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);
66 for (
double t = t0; t <= t1; t += dt)
67 for (
double lat = lat0; lat <= lat1; lat += dlat) {
85 printf(
"\nJURASSIC nadir-geometry tool.\n\n");
86 printf(
"Create observation geometry for a nadir sounding instrument.\n\n");
88 printf(
" nadir <ctl> <obs> [KEY VALUE ...]\n\n");
89 printf(
"Arguments:\n");
90 printf(
" <ctl> Control file.\n");
91 printf(
" <obs> Output observation geometry file.\n");
92 printf(
" [KEY VALUE] Optional control parameters.\n\n");
93 printf(
"Tool-specific control parameters:\n");
94 printf(
" OBSZ Observer altitude [km].\n");
95 printf(
" T0, T1, DT Time range and spacing.\n");
96 printf(
" LAT0, LAT1 Latitude range.\n");
97 printf(
" DLAT Latitude spacing.\n\n");
98 printf(
"Common control parameters:\n");
99 printf(
" OBSFMT Output observation file format.\n");
101 (
" ND, NU[i] Spectral channels in observation files.\n\n");
102 printf(
"Further information:\n");
103 printf(
" Manual: https://slcs-jsc.github.io/jurassic/\n");
void read_ctl(int argc, char *argv[], ctl_t *ctl)
Read model control parameters from command-line and configuration input.
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.
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.
JURASSIC library declarations.
#define ERRMSG(...)
Print an error message with contextual information and terminate the program.
#define USAGE
Print usage information on -h or --help.
#define NR
Maximum number of ray paths.
int main(int argc, char *argv[])
Observation geometry and radiance data.
double vplat[NR]
View point latitude [deg].
double obsz[NR]
Observer altitude [km].
double time[NR]
Time (seconds since 2000-01-01T00:00Z).
int nr
Number of ray paths.