4 /**********************************************************************/
8 /**********************************************************************/
9 void usage(char **argv)
11 fprintf(stderr, "Usage: %s in out.uf\n", argv[0]);
12 fprintf(stderr, "\n");
13 fprintf(stderr, "Subtract one day from all time fields in all headers,\n");
14 fprintf(stderr, "all the way down to the ray. Output to uf.\n");
18 /**********************************************************************/
20 /* subtract_one_day_ray */
22 /**********************************************************************/
24 void *subtract_one_day(int month, int day, int year,
25 int *m, int *d, int *y)
27 /* Connocialize and subtract. */
31 t = (struct tm *)calloc(1, sizeof(struct tm));
32 t->tm_mon = month-1; /* 0 - 11 */
33 t->tm_mday = day-1; /* 1 - 31 */ /* And, subtract one day. */
34 t->tm_year = year-1900; /* since 1900 */
36 t = localtime(&the_time);
43 /**********************************************************************/
45 /* subtract_one_day_ray */
47 /**********************************************************************/
48 Ray *subtract_one_day_ray(Ray *x)
50 if (x == NULL) return x;
51 subtract_one_day(x->h.month, x->h.day, x->h.year,
52 &x->h.month, &x->h.day, &x->h.year);
55 /**********************************************************************/
57 /* subtract_one_day_sweep */
59 /**********************************************************************/
60 Sweep *subtract_one_day_sweep(Sweep *x)
64 if (x == NULL) return x;
65 for(i=0; i<x->h.nrays; i++)
66 x->ray[i] = subtract_one_day_ray(x->ray[i]);
69 /**********************************************************************/
71 /* subtract_one_day_volume */
73 /**********************************************************************/
74 Volume *subtract_one_day_volume(Volume *x)
78 if (x == NULL) return x;
79 for(i=0; i<x->h.nsweeps; i++)
80 x->sweep[i] = subtract_one_day_sweep(x->sweep[i]);
83 /**********************************************************************/
85 /* subtract_one_day_radar */
87 /**********************************************************************/
88 Radar *subtract_one_day_radar(Radar *x)
92 if (x == NULL) return x;
93 for(i=0; i<x->h.nvolumes; i++)
94 x->v[i] = subtract_one_day_volume(x->v[i]);
100 /**********************************************************************/
104 /**********************************************************************/
105 int main(int argc, char **argv)
115 radar = RSL_anyformat_to_radar(argv[1]);
116 radar = subtract_one_day_radar(radar);
117 subtract_one_day(radar->h.month, radar->h.day, radar->h.year,
118 &radar->h.month, &radar->h.day, &radar->h.year);
119 RSL_radar_to_uf_gzip(radar, argv[2]);