2 * Test reading and writing of UF files by using the histogram function.
5 * 2. Print histogram of DZ volume.
6 * 3. Output Radar to UF.
7 * 3. Free Radar structure.
8 * 4. Read UF into Radar.
9 * 5. Print histogram of DZ volume.
11 * The two outputted histograms should be identical.
30 fprintf(stderr,"Usage: wsr_hist_uf_test infile [-s site_id]\n");
34 process_args(int argc, char **argv, char **in_file, char **site)
38 while ((c = getopt(argc, argv, "s:")) != -1)
40 case 's': *site = strdup(optarg); break;
41 case '?': usage(argv); break;
44 if (argc - optind == 1) *in_file = strdup(argv[optind]);
49 main(int argc, char **argv)
55 Histogram *histogram = NULL;
57 process_args(argc, argv, &infile, &site);
58 RSL_radar_verbose_on();
60 if ((radar = RSL_anyformat_to_radar(infile, site)) == NULL) {
61 /* RSL_wsr88d_to_radar writes an error message to stdout. */
65 /***********************************************************************/
67 /* You now have a pointer to Radar. */
68 /* Now use *radar all you like. */
70 /***********************************************************************/
72 /* Use radar->v[DZ_INDEX] for REFELECTIVITY
73 * radar->v[VR_INDEX] for VELOCITY
74 * radar->v[SW_INDEX] for SPECTRUM_WIDTH
76 printf("Radar date: %2.2d/%2.2d/%2.2d\n", radar->h.month, radar->h.day, radar->h.year);
77 printf("Radar time: %2.2d:%2.2d:%f\n", radar->h.hour, radar->h.minute, radar->h.sec);
80 RSL_radar_to_uf(radar, "uf_file.uf");
81 histogram = RSL_get_histogram_from_volume(radar->v[DZ_INDEX],
82 histogram, -30, 70, 0, 200);
83 RSL_print_histogram(histogram, 0, 200, "hist_wsr88d_to_radar.dat");
84 RSL_free_radar(radar);
86 RSL_radar_verbose_on();
87 printf("RSL_uf_to_radar\n");
88 radar = RSL_uf_to_radar("uf_file.uf");
89 histogram = NULL; /* There should be a free here. */
90 histogram = RSL_get_histogram_from_volume(radar->v[DZ_INDEX],
91 histogram, -30, 70, 0, 200);
92 RSL_print_histogram(histogram, 0, 200, "hist_uf_to_radar.dat");