]> Pileus Git - ~andy/rsl/blob - examples/bscan.c
Initial import
[~andy/rsl] / examples / bscan.c
1 /*
2  * For RSL version 0.28 and higher.
3  *
4  * v1.0 Began 2/16/94 by John Merritt.
5  *
6  * Demonstrates reading NEXRAD files and loading the Radar structure.
7  */
8
9
10
11 #include <stdio.h>
12 #ifdef sgi
13 #include <getopt.h>
14 #endif
15 #include <stdlib.h>
16 #include <string.h>
17
18 #include "rsl.h"
19
20 usage()
21 {
22   fprintf(stderr,"Usage: bscan infile [callid]\n");
23   exit(-1);
24 }
25
26 process_args(int argc, char **argv,
27                          char **in_file, char **callid)
28 {
29  
30   if (argc < 2) usage();
31   else if (argc == 2) *in_file = strdup(argv[1]);
32   else if (argc == 3) {
33         *in_file = strdup(argv[1]);
34         *callid  = strdup(argv[2]);
35   } else {
36         usage();
37   }
38 }
39
40
41 main(int argc, char **argv)
42 {
43   char *infile, *callid;
44
45   Radar *radar;
46   Volume *cappi_vol;
47   char *index_str[] = {"DZ", "VR", "SW"};
48
49   int i;
50
51 /* 1. Process the arguments. */
52   callid = NULL;
53   process_args(argc, argv, &infile, &callid); /* malloc for in/outfile */
54
55
56 /*
57  * Pass bitwise or of DZ_MASK, VR_MASK, SW_MASK
58  */
59   i = DZ_INDEX;
60
61   RSL_radar_verbose_on();
62   if ((radar = RSL_anyformat_to_radar(infile, callid)) == NULL) exit(-1);
63
64   printf("Radar date: %2.2d/%2.2d/%2.2d\n", radar->h.month, radar->h.day, radar->h.year);
65   printf("Radar time: %2.2d:%2.2d:%f\n", radar->h.hour, radar->h.minute, radar->h.sec);
66
67   printf("Radar file: %s\n", infile);
68   printf("Radar site: %c%c%c%c\n",
69                  radar->h.name[0],
70                  radar->h.name[1],
71                  radar->h.name[2],
72                  radar->h.name[3]);
73   printf("Radar date: %2.2d/%2.2d/%2.2d\n", radar->h.month, radar->h.day, radar->h.year);
74   printf("Radar time: %2.2d:%2.2d:%f\n", radar->h.hour, radar->h.minute, radar->h.sec);
75
76
77   if (i == DZ_INDEX) RSL_load_refl_color_table();
78   if (i == VR_INDEX) RSL_load_vel_color_table();
79   if (i == SW_INDEX) RSL_load_sw_color_table();
80   if (i == VR_INDEX) RSL_rebin_velocity_volume(radar->v[i]); /* Modifies v[i]. */
81
82   printf("Generating bscan ppm images of %s\n", index_str[i]);
83   RSL_bscan_volume((Volume *) radar->v[i], "bscan.ppm");
84   printf("----> BSCAN complete.\n");
85
86   exit(0);
87
88 }