34 double x0[3], x1[3], x2[3];
38 ERRMSG(
"Give parameters: <ctl> <pert.nc>");
53 for (
int itrack = 0; itrack < pert->
ntrack; itrack++) {
54 geo2cart(0, pert->
lon[itrack][0], pert->
lat[itrack][0], x0);
55 geo2cart(0, pert->
lon[itrack][pert->
nxtrack - 1],
57 double d = 2. * RE * asin(DIST(x0, x1) / (2. * RE));
58 dmin = GSL_MIN(dmin, d);
59 dmax = GSL_MAX(dmax, d);
65 printf(
"\nmean_swath_width= %.1f km\n", dmu / n);
66 printf(
"minimum_swath_width= %.1f km\n", dmin);
67 printf(
"maximum_swath_width= %.1f km\n", dmax);
76 for (
int itrack = 0; itrack < pert->
ntrack; itrack++) {
77 for (
int ixtrack = 0; ixtrack < pert->
nxtrack - 1; ixtrack++) {
78 geo2cart(0, pert->
lon[itrack][ixtrack], pert->
lat[itrack][ixtrack], x0);
79 geo2cart(0, pert->
lon[itrack][ixtrack + 1],
80 pert->
lat[itrack][ixtrack + 1], x1);
81 double d = 2. * RE * asin(DIST(x0, x1) / (2. * RE));
82 dmin = GSL_MIN(dmin, d);
83 dmax = GSL_MAX(dmax, d);
90 printf(
"\nmean_across_track_sampling_distance= %.1f km\n", dmu / n);
91 printf(
"minimum_across_track_sampling_distance= %.1f km\n", dmin);
92 printf(
"maximum_across_track_sampling_distance= %.1f km\n", dmax);
101 for (
int itrack = 0; itrack < pert->
ntrack - 1; itrack++) {
102 for (
int ixtrack = 0; ixtrack < pert->
nxtrack; ixtrack++) {
103 geo2cart(0, pert->
lon[itrack][ixtrack], pert->
lat[itrack][ixtrack], x0);
104 geo2cart(0, pert->
lon[itrack + 1][ixtrack],
105 pert->
lat[itrack + 1][ixtrack], x1);
106 double d = 2. * RE * asin(DIST(x0, x1) / (2. * RE));
107 dmin = GSL_MIN(dmin, d);
108 dmax = GSL_MAX(dmax, d);
115 printf(
"\nmean_along_track_sampling_distance= %.1f km\n", dmu / n);
116 printf(
"minimum_along_track_sampling_distance= %.1f km\n", dmin);
117 printf(
"maximum_along_track_sampling_distance= %.1f km\n", dmax);
126 for (
int itrack = 0; itrack < pert->
ntrack - 1; itrack++) {
127 geo2cart(0, pert->
lon[itrack][pert->
nxtrack / 2],
129 geo2cart(0, pert->
lon[itrack][pert->
nxtrack / 2 + 1],
130 pert->
lat[itrack][pert->
nxtrack / 2 + 1], x1);
131 geo2cart(0, pert->
lon[itrack + 1][pert->
nxtrack / 2],
132 pert->
lat[itrack + 1][pert->
nxtrack / 2], x2);
133 for (
int i = 0; i < 3; i++) {
137 double d = acos(DOTP(x1, x2) / (NORM(x1) * NORM(x2))) * 180. / M_PI;
138 dmin = GSL_MIN(dmin, d);
139 dmax = GSL_MAX(dmax, d);
145 printf(
"\nmean_across_track_angle= %.1f deg\n", dmu / n);
146 printf(
"minimum_across_track_angle= %.1f deg\n", dmin);
147 printf(
"maximum_across_track_angle= %.1f deg\n", dmax);
void read_pert(char *filename, char *pertname, pert_t *pert)
Read radiance perturbation data.
AIRS Code Collection library declarations.
int main(int argc, char *argv[])
int ntrack
Number of along-track values.
int nxtrack
Number of across-track values.
double lon[PERT_NTRACK][PERT_NXTRACK]
Longitude [deg].
double lat[PERT_NTRACK][PERT_NXTRACK]
Latitude [deg].