-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCHANGES
1804 lines (1804 loc) · 83.5 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* Changes for RSL
*
*---------------------------------------------------------------------
* v1.50 Released March 1, 2017
* 1. nsig.c (nsig_read_ray), nsig_to_radar.c: Minor bug fix in the handling
* of errors in Sigmet data compression codes.
* 2. wsr88d_merge_split_cuts.c (wsr88d_remove_extra_refl): Fixed bug that
* caused segmentation fault if DZ volume is null. Thanks to Dan Sheldon.
* 3. Thanks to Adriaan Dokter for the the following:
* wsr88d.c: Handle files that use custom block BZip2 internal compression.
* wsr88d_m31.c (wsr88d_load_ray_into_radar): Fixed memory leak.
*---------------------------------------------------------------------
* v1.49 Released 10/16/2015
* 1. wsr88d_merge_split_cuts.c (wsr88d_move_vcp121_extra_velsweeps): Fixed bug
* that caused segmentation fault if ingest function was called more than
* once in a process. Thanks to Dan Sheldon for the bug report and the patch.
* 2. volume.c: Fixed a bug in Rho conversion function in which 0 was converted
* to BADVAL. Thanks to Jonathan Helmus for reporting the problem.
* 3. mcgill.c: Added endian handling.
*---------------------------------------------------------------------
* v1.48 Released 7/22/2015
* 1. wsr88d_remove_sails_sweep.c: Modified to handle MESO-SAILS.
* 2. uf_to_radar.c: Fixed a bug in which multiple calls to RSL_uf_to_radar
* caused *scan_mode* to be set to zero, indicating PPI, even when scan is
* RHI. Thanks to Jonathan Helmus for pointing that one out.
* 3. wsr88d_align_split_cut_rays.c: Added function *remove_excess_rays* to
* handle problem with some KDOX data in which the number of rays differed
* between reflectivity and velocity sweeps in split cuts, which caused
* infinite loop.
* Also changed routine "get_first_azimuth_match" to match VR to first DZ ray
* rather than the other way around.
* 4. nsig_to_radar.c, nsig.c, nsig.h: Fixed problem in which data errors
* caused segmentation fault. Thanks to Jeff Ator for reporting the
* problem.
* 5. wsr88d_m31.c: Changed MAXSWEEPS for processing MESO-SAILS.
* Thanks to Dan Sheldon for spotting the problem and providing the patch.
*---------------------------------------------------------------------
* v1.47 Released 10/29/2014
* 1. wsr88d_remove_sails_sweep.c: Added check for NULL volumes for SW and VR.
* 2. radar_to_uf.c: Round scaled data before converting to short integer.
* Thanks to Jason Pippitt for reporting the problem.
* 3. wsr88d_m31.c: Expanded field descriptions in radar->v->h.type_str.
* 4. dorade_to_radar.c: Added check for DORADE field names "dz","zt", and "sq".
* Thanks to Eric Bruning and Anthony Reinhart for reporting the problem.
*---------------------------------------------------------------------
* v1.46 Released 8/01/2014
* 1. Added wsr88d_remove_sails_sweep.c to remove the additional low elevation
* split cut inserted into the middle of the volume scan in VCPs 12 and 212
* when radar is running SAILS.
* Also added RSL_keep_sails() (in wsr88d_to_radar.c) to retain the sweep.
* 2. volume.c (KD_F, KD_INVF): Restored versions of these that provide better
* precision.
*---------------------------------------------------------------------
* v1.45 Released 6/30/2014
* 1. nsig_to_radar.c, nsig.h, rsl.h, volume.c:
* Added fields TV, ZV, and SN (Sigmet data types 62, 64, 66).
* 2. volume.c (KD_F): Fixed an issue involving conversion of unsigned short
* integer to floating point, which could cause negative values stored in
* the radar structure to be retrieved as large positives on 64-bit machines.
*---------------------------------------------------------------------
* v1.44 Released 11/21/2013
*
* 1. wsr88d_m31.c: Changed the criteria for discarding reflectivity belonging
* to a split-cut velocity sweep. Previously checked for elev < 6 degrees
* to identify split cuts; now check waveform for "Contiguous Doppler". The
* elev test was inadequate for VCP 31, which has non-split cuts below 6
* degrees. Thanks to Chris Theisen for the bug report.
* Also added code to handle field selection.
* 2. New routines:
* RSL_wsr88d_keep_short_refl:
* Calling this function instructs the WSR-88D Level II ingest to keep
* short-range reflectivity collected in the velocity portion of a split
* cut. Normally this short-range reflectivity is discarded.
* Calling this function also changes how split cuts are handled in the
* Radar structure and when writing to UF. Split cut surveillance and
* Dopper sweeps are normally placed in the same sweep index in the Radar
* structure, as though they were taken in a single sweep, so that
* reflectivity (long-range), radial velocity, and spectrum width are at
* the same sweep index. If RSL_wsr88d_keep_short_refl() is called, each
* individual sweep of a split cut is stored at a separate index, so for
* example, the first sweep contains only long-range reflectivity (and
* dual-pol fields if present), and the second sweep contains short-range
* reflectivity, radial velocity, and spectrum width. This pattern is
* repeated with the remaining split cuts. When using this configuration
* to produce a UF, the split cuts are written in like manner.
* wsr88d_align_splitcut_rays:
* This is called by RSL_radar_to_uf when writing WSR-88D data to UF. It
* reorders rays in the velocity sweep of a split-cut to match those in
* the reflectivity sweep by azimuth.
* wsr88d_merge_split_cuts:
* Moves the surveillance (long-range reflectivity) and Doppler (radial
* velocity) sweeps in a WSR-88D split cut to a single sweep index in the
* Radar structure. It also takes care of the multiple velocity sweeps in
* each VCP 121 split cut by assigning them unique field names.
* 3. radar_to_uf.c: Added code to handle WSR-88D split cuts. Also Changed
* optional header to use time from radar header instead of first ray.
* This was done because rays sometimes come ordered by azimuth rather than
* by time, so the first ray in the sweep is not the chronological first ray.
* 4. gzip.c (uncompress_pipe): Implemented the fix for the "too many open
* files" problem, sent independently by Yu Zhang and Lee Burchett.
* 5. Restored EDGE routines for backward compatibility.
* 6. nsig_to_radar.c: Fixed bug where string exceeded size of variable into
* which it was written (radar->h.state). This caused a buffer overflow
* error on Ubuntu systems. Thanks to Jonathan Helmus for finding this one.
* 7. volume.c (DM_F, DM_INVF): Thanks to David Kingsmill for providing improved
* conversion functions for Returned Power (DM).
* volume.c (RH_F, RH_INVF, PH_F, PH_INVF): These conversion functions were
* specific to Sigmet raw data. Made them more general.
* 8. Thanks to Mark Parncutt for updated wsr88d_locations.dat.
*---------------------------------------------------------------------
* v1.43 Released 4/30/2012
*
* 1. nsig_to_radar.c: Added antenna scan mode to radar header.
* Added azimuth to sweep header for RHI.
* Fixed a bug that caused incorrect elevation in ray headers for RHI.
* 2. nsig.c (nsig_read_sweep): Bug fix: Removed static qualifier from
* ingest structure definitions, which caused problems if multiple radars
* are ingested. Also turned off debug print accidently left on
* in previous release. Thanks to James Ward for the bug report.
* 3. wsr88d.c, wsr88d_to_radar.c: Fixed problem that occurred in the rare
* case in which a non-data message appears among data messages.
* wsr88d_to_radar.c: Bug fix: Initialize sweep elevation.
* Thanks to Dan Sheldon for the bug reports and fixes.
* 4. configure.in: Changed default directory to /usr/local/trmm/.
* 5. Removed references to EDGE. Thanks to Andy Spencer for the patch.
*---------------------------------------------------------------------
* v1.42 Released 7/12/2011
*
* 1. radar_to_uf.c (RSL_radar_to_uf_fp): Changed scale_factor used for storing
* differential phase (PH) in UF from 100 to 10. The usual scale factor
* of 100 caused values over 327.67 to become negative when converted to
* short integer.
*---------------------------------------------------------------------
* v1.41 Released 6/22/2011
*
* 1. wsr88d_m31.c: Simplified the WSR-88D ray structure and supporting code.
* Added support for dual-polarization data fields.
* Thanks go to Andy Spencer for code contributions.
* wsr88d_to_radar.c, wsr88d_m31.c: Renamed load_wsr88d_m31_into_radar to
* wsr88d_load_m31_into_radar, to be consistent with naming convention.
* 2. Added support for Sigmet 2-byte data types, as well as HydroClass 1 and 2
* byte types. Files involved: nsig_to_radar.c, nsig.c, nsig.h, volume.c.
* Modified nsig_to_radar.c and rsl.h to handle Sigmet dual PRF.
* Thanks to Fabio Sato and Cesar Beneti for the dual PRF code.
* 3. Completed DORADE ingest. Files involved: dorade_to_radar.c, dorade.c,
* volume.c.
* 4. rsl.h, radar.c, radar_to_uf.c, uf_to_radar.c, volume.c: modified for RHI.
* nsig_to_radar.c: Thanks go to Scott Collis for a bug fix involving RHI.
* 5. anyformat_to_radar.c: Thanks to Thiago Biscaro for fixing a pipe problem
* that caused processes to remain open.
* 6. gzip.c: Thanks to Dan Sheldon for fix for a file descriptor leak.
*---------------------------------------------------------------------
* v1.40 Released 10/10/2008
*
* 1. wsr88d_m31.c (load_wsr88d_m31_into_radar): Corrected a potential problem
* in which the end of sweep or volume might occur at a point in the program
* that was isolated from the code that handles that condition.
* Store vcp in radar header.
* 2. rsl.h: Added vcp to radar header structure for WSR-88D.
* 3. nsig_to_radar.c: Corrected a problem involving Extended Header, which
* when present, caused elevation in ray header to be set to 0.
* 4. wsr88d_m31.c (wsr88d_load_ray_into_radar): Changed the way we determine
* whether or not to keep the reflectivity field (we don't want it from
* Doppler split cuts). The previous method was inadequate for VCP 121.
* 5. read_write.c (RSL_write_radar_fp, RSL_write_volume, RSL_write_sweep)
* (RSL_write_ray): Initialize header_buf to zero to avoid junk in output
* files. This provides clean outputs for comparing in test situations.
*---------------------------------------------------------------------
* v1.39 Released 07/24/2008
*
* 1. Added wsr88d_m31.c. It contains routines to handle new Message Type 31
* in WSR-88D Level II Build 10.
* 2. wsr88d_to_radar.c: Modified to call message 31 routine.
* 3. wsr88d.c: Added code for VCPs 211, 212, 213.
* 4. lassen_to_radar.c: Added a fix for PhiDP provided by Scott Collis of BMRC.
*
*---------------------------------------------------------------------
* v1.38 Released 11/29/2007
*
* 1. wsr88d.c (wsr88d_read_sweep): Modified to handle unusual message packets
* at start of WSR-88D files from some future GPM sites.
*
*---------------------------------------------------------------------
* v1.37 Released 06/19/2007 (Severity: low)
*
* 1. radar_to_uf.c, uf_to_radar.c: Modified to use Local Use Header to store
* and retrieve WSR-88D VR azimuth. This is necessary because WSR-88D runs
* separate scans for DZ and VR at lower elevations, which means that they
* have different azimuths for a given ray. Thanks go to Pat Kennedy of CSU
* for discovering this problem and for bringing it to our attention.
* 2. lassen_load_sweep in lassen_to_radar.c: Removed 1.4 dB correction for
* reflectivity--BMRC version no longer uses it.
*
*---------------------------------------------------------------------
* v1.36 Released 08/29/2006 (Severity: low)
*
* 1. Forgot to put the modified wsr88d_locations.dat file into previous
* release.
*
*---------------------------------------------------------------------
* v1.35 Released 08/28/2006 (Severity: low)
*
* 1. lassen_to_radar.c: fixed a bug in lassen_load_sweep where sweep index
* was being used for sweep number in headers.
* 2. radar.c: Modified RSL_get_volume to return volume for any field type.
* It had been limited to velocity, spectrum width and reflectivity types.
* 3. Added SQ_INDEX for Signal Quality Index field. Files modified: rsl.h,
* volume.c, nsig_to_radar.c, nsig.h, uf_to_radar.c, radar_to_uf.c.
* 4. wsr88d_locations.dat modified to change height units from feet to meters.
* Thanks go to Dave Makofski for finding and fixing that one.
*
*---------------------------------------------------------------------
* v1.34 Released 02/15/2006 (Severity: low)
*
* 1. wsr88d.c: Fixed a bug in checking msg_type. The problem occurred while
* processing data from Houston, which recently switched over to the new
* Open RDA (ORDA) being implemented by NEXRAD. Msg_type is in the
* righthand byte of a two-byte word, the left containing Channel ID,
* but the full two-byte value was being used to check msg_type. This
* became a problem when ORDA used a non-zero value for Channel ID.
* 2. wsr88d.c and wsr88d_to_radar.c: Added information for new VCPs 12 and
* 121.
* 3. Added Huntsville site to wsr88d_locations.dat.
*
*---------------------------------------------------------------------
* v1.33 Began 02/25/2004. Released 08/27/2004 (Severity: low)
*
* 1. Modified wsr88d_to_radar.c and anyformat_to_radar.c to handle change in
* WSR-88D header record for Level II Build 5 data format.
* 2. Fixed a bug in wsr88d.c, wsr88d_read_sweep, which caused the last ray
* of sweep to be deleted along with empty rays in second tilt and above.
*
*---------------------------------------------------------------------
* v1.32 Began 11/05/2003. Released 02/13/2004 (Severity: low)
*
* 1. Changed computation of sweep seconds in nsig_to_radar.c to eliminate
* rounding error.
* 2. wsr88d_to_radar.c: removed call to wsr88d_get_wavelength, which computed
* the WSR-88D wavelength when parameters were available, or returned a
* constant otherwise. Replaced with constant wavelength of 10 cm. Thanks to
* Joe Holmes of SIGMET for noticing differing wavelengths between fields.
* 3. Added ingest for Rainbow format. Only handles DZ.
*
*---------------------------------------------------------------------
* v1.31 Began 04/30/2003. Released 09/03/2003 (Severity: low)
*
* 1. nsig_to_radar.c: removed unused #define, made some cosmetic changes in
* code and comment alignment.
* 2. Makefile.am: Added line to install include-directory under target
* install-exec-hook.
* 3. Added code to configure.in to fix yywrap unresolved reference that
* occurred when installing rsl when the TSDIS toolkit was not installed.
*
*---------------------------------------------------------------------
* v1.30 Began 07/30/2001. Released 03/13/2003 (Severity: low)
*
* 1. Increased the size of parameter arrays in nsig.c as recommended by
* Paul Kucera, to accommodate NPOL polarimetric parameters.
* 2. Fixed a bug in nsig_endianess in nsig.c.
* 3. Modified uf_to_radar to compute unambiguous range using PRF. Reduced
* UF record length by removing extra byte at end of record. Made to handle
* 4-digit years (previously assumed 2-digit, as declared in UF documention).
* 4. Modified hdf_to_radar to use more accurate value for sweep.h.nrays.
* 5. Corrected computation in function wsr88d_get_azimuth_rate in wsr88d.c.
* 6. Fixed bug in sweep rate computation in wsr88d.c
* 7. Changed wsr88d_ray_to_float in wsr88d.c to use field data pointers
* provided in the data, instead of computing offsets. The latter method is
* incorrect according to NOAA Radar Operations Center.
* 8. Modified radar_to_uf to get fixed angle for mandatory header from value
* stored in ray. Previously used average elevation of sweep.
* 9. Added examples/adjust_gate_size.c, and added enhanced version of qlook.c
* which uses it.
*10. Fixed problem in which rsl libraries could not be built if a library
* didn't already exist in the target directory. Brought configure.in up to
* date with autoconf version 2.53 standards. Removed acconfig.h.
*11. Removed outdated email addresses found in comments.
*
*---------------------------------------------------------------------
* v1.29 Began 09/19/2000. Released 4/3/2001 (Severity: low)
*
* 1. Modified radar_to_hdf_1.c maskBuild() to build MZ mask differently:
* maskBuild was checking where CZ and DZ volumes were equal
* to build MZ volume (mask). Now, maskBuild just checks where
* CZ volume == BADVAL, for runtime speed, and because the comparison between
* CZ and DZ volumes was corrupted by the addition of qcParm[ZCAL] to
* each CZ range bin in level_1_qc.c qualityControl(). This change is
* compatible with Danny Rosenfeld's algorithm by which CZ range bins
* are set to BADVAL.
* 2. Included Stacy Brodzik's modifications for storing calibration constants
* in UF (radar_to_uf.c, uf_to_radar.c).
* 3. Corrected version string and units for sweep rate written to UF mandatory
* header in radar_to_uf.c, thanks to Joseph Holmes of Sigmet for catching
* the inaccuracies. Corrected rounding error in latitude/longitude for UF
* mandatory header in same program. Modified assignments of sweep rate
* and/or azimuth rate in uf_to_radar.c and hdf_to_radar.c
*
*---------------------------------------------------------------------
* v1.28 Began 03/23/2000. Released: 7/24/2000 (Severity: low)
*
* 1. Added 3 functions to volume.c :
* RSL_add_dbz_offset_to_volume() , RSL_add_dbz_offset_to_sweep(),
* RSL_add_dbz_offset_to_ray()
* 2. Modified nsig.h , nsig_to_radar.c , volume.c to handle sigmet's
* RhoHV and PhiDP fields.
* 3. Modified volume.c to fix problem with subsequent calls to
* read_these_sweeps()
* 4. Modified uf_to_radar.c to compute unambiguous range for
* Radar structure.
*
*---------------------------------------------------------------------
*
* v1.27 Began 01/11/2000. Released: 2/17/2000 (Severity: low)
*
* 1. Modified files radar_to_hdf_1.c and radar_to_hdf_2.c
* to accomodate random ray lengths, eg, Berrimah data.
*
*----------------------------------------------------------------------
* v1.26 Began 12/11/1999. Released: 12/21/1999 (Severity: low)
*
* 1. Configuration change for rapic.l and rapic.y.
* 2. Changed dependency for rsl.h and wsr88d.h
*
*----------------------------------------------------------------------
* v1.25 Began 11/30/1999. Released: 12/10/1999 (Severity: medium)
*
* 1. Merged branch v1.24.1.
* 2. Added configure/configure.in/Makefile.in.
* 3. Added Makefile.am (automake) and other related files.
* 4. Configuration is a snap:
*
* configure --prefix=/some/dir/to/install
* make install
*
*----------------------------------------------------------------------
* v1.24.1 Began 8/1/1999. Released: 11/30/1999 (Severity: new features)
*
* 1. Introduced radar->h.project[24] -- project name.
* 2. Added dorade ingest -- RSL_dorade_to_radar.
* 3. Added examples/kwaj_subtract_one_day.c -- fix KWAJEX dates.
* 4. Removed rsl_popen/pclose routines from gzip.c. I found
* a way to eliminate the 'Broken pipe' message, the message
* reappeared in linux 2.2.* series, by flushing the
* stream when looking at the magic numbers in anyformat_to_radar.c.
* 5. HDF ROUTINES ARE REMOVED. I have moved them to gvs for level_1.
* See gvs/src/gvslib/. That's where they live now. The interface
* RSL_hdf_to_radar and RSL_radar_to_hdf remain as hooks. If
* you have libgvs, then you can specify -DHAVE_TSDIS_TOOLKIT in
* the Makefile.
*
*----------------------------------------------------------------------
* v1.24 Began 6/25/1999. Released: 6/28/1999 (Severity: bug fix)
*
* 1. UF ingest improperly set the Fixed angle.
* 2. Removed max_reasonable_dbz (60) from gts.c. The app must decide
* what a max allowable dbz is.
*
*----------------------------------------------------------------------
* v1.23 Began 3/31/1999. Released: 4/2/1999 (Severity: upgrade)
*
* 1. Added EDGE format ingest. This requires the library ETOR
* which is obtained from Enterprise Electronics.
* To build this component, set -DHAVE_EDGE in Makefile.
*
*----------------------------------------------------------------------
* v1.22 Began 3/4/1999. Released: 3/4/1999 (Severity: bux fix)
*
* 1. Forgot to set the global 'rsl_kdp_wavelen' in nsig_to_radar.c.
*
*----------------------------------------------------------------------
* v1.21 Began 02/16/1999. Released: 3/4/1999 (Severity: minor bux fix)
*
* 1. UF code didn't recognize VE, now it does.
* 2. RSL_SPEED_OF_LIGHT unifies c throughout the library.
* 3. Modification to KDP processing for Sigmet. New
* F and INVF functions.
*
*----------------------------------------------------------------------
* v1.20 Began 11/12/98. Released: 01/25/1999 (Severity: bug fix/upgrade)
*
* 1. Fixed RADTEC ingest. Does RHI too, but,
* RSL doesn't have any good RHI image routines.
*
* 2. Added: RSL_set_color_table
* RSL_get_color_table
*
* 3. Added: '-b x' option to any_to_gif. This makes images black below
* x dbz. This is a simple noise filter.
*----------------------------------------------------------------------
* v1.19 Began 9/15/98. Released: 9/23/98 (Severity: bug fix)
*
* 1. Modified file volume.c . New INV_F, _F routines for diff refl.
*
* 2. Created examples/images to hold a base-line set of images
* to compare when running 'run_tests'. Modified run_tests
* to compare images.
*
*----------------------------------------------------------------------
* v1.18 Began 4/28/98. Released: 8/13/98 (Severity: upgrade)
*
* 1. Added routines:
* RSL_radtec_to_radar -- in radtec_to_radar.c
* RSL_fix_time -- in volume.c
*
* 2. Added files:
* radtec.c
* radtec.h
* radtec_to_radar.c
*
* 3. Modified image generation. Images are produced out to 'range'
* specified. Each image pixels is no longer 1km, but radius/range.
*
* 4. any_to_gif can now accept range and image size arguments.
*
* 5. RADTEC requires PKWARE routines explode and crc32.
* RADTEC is built into RSL, if you specify -DHAVE_PKWARE in
* the Makefile. When using RADTEC, you must link your application
* staticly; with -static.
*
* Contact PKWARE at 414-354-8699.
*
* 6. Modified radar_to_hdf_1.c. Removed ZDR data from 1C-51 HDF.
*
* 7. Moved HDF_FILE_VERSION definition from toolkit_1BC-51_appl.h
* into the application level_1.c
*
*----------------------------------------------------------------------
* v1.17 Began 4/23/98. Released: 4/28/98 (Severity: upgrade)
*
* 1. Finally received info regarding KDP (KD_INDEX) for SIGMET.
* Assumming the units are similar for LASSEN. Boosted nsig_to_radar
* to recognize KDP. It is really KDP * wavelength.
* The units are deg*cm/km. You must divide out the wavelength,
* if that is desired.
*
* 2. BADVAL/NOECHO mod for nsig_to_radar.c. This should affect
* the values that may be stored in any possible UF output.
*
* WTD : lassen_to_radar.c - check the ZDR conversion, if any. Do
* we need this?
* WTD : RHI
*
*----------------------------------------------------------------------
* v1.16 Began 3/6/98. Released: 4/21/98 (Severity: bug fix/upgrade)
*
* 1. Changed how any_to_gif output's filenames produced. Now, they
* are written to stdout. -v (verbose) and -V (all volume) options
* are added. Changed image_gen.c (RSL_volume_to_gif) to output
* filenames to stdout.
*
* 2. You really do need 'bison' (GNU yacc), 'flex' (GNU lex) and
* make (GNU make) to build this library. This has been true
* since v1.15 when I introduced the rapic format. These programs
* are superior to those on your stock Unix system, so take the
* time to install them.
*
* 3. README explains how to apply patches.
*
* 4. Eliminated the reduce/reduce conflict in rapic.y
*
* 5. Year 2000 compliant.
*
* 6. I forgot the format in sprintf. See rapic.y.
*
*----------------------------------------------------------------------
* v1.15 Began 2/20/98. Released: 3/4/98 (Severity: bug fix/upgrade)
*
* 1. Michael Whimpey from BMRC, Australia changed code, for the
* different callibrations, between, Pre_mctex, mctex, Gunn_Pt
* periods. Please see code where there is m.whimpey. See
* lassen_to_radar.c
*
* 2. Added RAPIC format ingest. RSL_rapic_to_radar.
* I used GNU Bison (YACC) and GNU Flex (LEX) to code the RAPIC ingest.
* This format is used by the Berrimah radar. See rapic_to_radar.c,
* rapic_routines.c, rapic.y, and rapic.l.
* Not tested w/ older YACC and LEX found on older Unix systems.
*
* 3. Fixed a bug regarding the reading of stdin streams. Now
* you can read compressed or uncompressed files from stdin.
* Previously, you couldn't specify NULL as a filename and
* have it work reliably in all cases for any file format.
* This bug was found by accident and it is nothing you should
* be worried about in earlier RSL releases. The reason you need
* not worry about it is because 'RSL_anyformat_to_radar' cannot
* accept NULL as a filename. For you to notice this, you must
* have called the specific ingest routine for the format
* being read: RSL_lassen_to_radar, for example.
*
* 4. Bug in the UF ingest. The scale_factor needs to be float.
* When it was 'int', round off errors (truncation) were
* happening. This affected the Velocity data, only. The reflectivity
* data seemed unaffected, because, the magnitude of the values
* was high enough to avoid truncation.
*----------------------------------------------------------------------
* v1.14 Began 2/2/98. Released: 2/3/98 (Severity: upgrade)
*
* 1. Added calibration for Gunn Point radar. Assumes that
* the radar name will be 'Gunn_Pt'.
*
*----------------------------------------------------------------------
* v1.13 Began 1/16/98. Released: 1/26/98 (Severity: minor bug fix)
*
* 01/16/98
*
* 1. radar_to_hdf_1.c: Changed decision algorithm regarding
* whether or not to write a VOS into a 1C-51 HDF file.
* 1C-51 HDF VOS time_slot status is encoded within the
* metaData field 'TK_GEN_DATE_INPUT_FILES'.
*
*----------------------------------------------------------------------
* v1.12 Began 1/12/98. Released: 1/12/98 (Severity: minor bug fix)
*
* 1. Changed HDF metadata item for empty granules.
*
*----------------------------------------------------------------------
* v1.11 Began 12/17/97. Released: 12/17/97 (Severity: minor bug fix)
*
* 1. Increased the size of pipecmd in RSL_write_gif and TK_MAX_FILENAME to 256.* 2. Modified image_gen.c to increase the data range of Zdr values.
* 3. Bug fix in radar_to_hdf_1.c: No longer dumps core for "tiny" sweeps
having fewer than 5 rays.
*
*----------------------------------------------------------------------
* v1.10 Began 8/27/97. Released: 10/21/97 (Severity: minor upgrade)
*
* 1. Modified ZDR image generation: rsl.h, image_gen.c, ZDR color tables.
* 2. Added South Africa data format ingest. Not possible to
* interface in RSL_anyformat_to_radar, at this time. The format
* is primitive and I need to convert RVPC to dBZ.
* 3. Modified HDF component to maintain integrity of anomalous_condition
* flags. (RFVAL, APFLAG, NOECHO, BADVAL)
* Files: toolkit_1BC-51_appl.h, hdf_to_radar.c, radar_to_hdf_2.c
* 4. Modified radar_to_hdf_1.c for TSDIS/DAAC metadata requirements.
* 5. Modified any_to_gif.c to output site and date/time for image filenames.
* 6. Added QC algorithm parameter. Modified files:
* toolkit_1BC-51_appl.h, radar_to_hdf_1.c, radar_to_hdf_2.c,
* hdf_to_radar.c
*
*----------------------------------------------------------------------
* v1.9 Began 8/18/97. Released: 8/18/97 (Severity: bug fix)
*
* 1. Mofified radar_to_hdf_1.c : Metadata mods for TSDIS.
*
*----------------------------------------------------------------------
* v1.8 Began 7/30/97. Released: 8/05/97 (Severity: upgrade)
*
* 1. Added RSL_read_these_sweeps. Specify specific sweep numbers for
* ingest. This drastically speeds up ingest, if you're only interested
* in the first or first couple of sweeps. For example, making
* base scan images.
* wsr88d -done
* UF -done
* sigmet -done
* lassen -done
* HDF -done
* toga -done
* mcgill -done. BUT, apparently, mcgill ingest is broken!!!
* When did this happen?
*
* 2. Added RSL_load_zdr_color_table();
* Includes color tables for this field. See colors/
*
* 3. More HDF mods; more warning messages.
*
* 4. The TRMM Office has fixed several bugs in the TSDIS toolkit.
* For proper HDF creation, that conform to TSDIS HDF specifications,
* you will need toolkit 4.5r1.1.
*
* Toolkit 4.5r1.1 is an unofficial release; the TRMM office will
* pass this out upon request.
*
*----------------------------------------------------------------------
* v1.7 Began 7/23/97. Released: 7/25/97 (Severity: bug fix)
*
* 1. Handles corrupt SIGMET files more gracefully.
*
* 2. All lat/lon (degree,minute,second) triplets have the same sign.
* Except, if UF, then what ever the file tells me and if they're
* not all the same sign, then you'll have
* to correct the UF w/ an RSL application. In other words, UF
* stores the lat/lon as deg/min/sec and they have their own signs;
* Strict UF have deg/min/sec all w/ the same sign, anyway.
*
* 3. Minor changes to HDF component of RSL.
*----------------------------------------------------------------------
* v1.6 Began 5/02/97. Released: 7/23/97 (Severity: bug fix)
*
* 1. wsr88d_to_radar.c -- Was too permissive. No longer defaults to KMLB.
* If unable to establish a valid site based on callID or first_file,
* returns NULL.
*
* 2. 18 Jul 97 Kolander
* Modified radar_to_uf.c & uf_to_radar.c : Fixed some incorrect and
* missing sweep and ray header values. Salvaged some numerical precision.
*
* 3. Fixed a time problem in nsig_to_radar.c. Daylight savings time.
*
* 4. Saves lat/lon on each ray for UF.
*
*--------------------
* 16 Jun 97 Kolander
*
* Modifications to radar parameter calulations in:
* wsr88d_to_radar.c, wsr88d.h, wsr88d.c, nsig_to_radar.c,
* lassen_to_radar.c, rsl.h
*
* Modified HDF-related files:
* hdf_to_radar.c toolkit_1BC-51_appl.h
* and split file 'radar_to_hdf.c' into two files:
* radar_to_hdf_1.c and radar_to_hdf_2.c
* Can handle oddly sized and/or corrupt VOSs.
*----------------------------------------------------------------------
* v1.5 Began 3/17/97. Released: 4/30/97 (Severity: minor upgrade)
*
* 1. Additional error checking in wsr88d.c to warn when number of gates
* expected is exceeded.
* 2. Changes by Mike Kolander affect the HDF component of RSL. This
* version of RSL works with the TSDIS toolkit 4.0.
* 3. Changes to carpi and cube functions, see below.
*-------------------------
* Date: 26 Mar 97 kolander
*
* Files: radar_to_hdf.c, hdf_to_radar.c
* Moved QC parameters out of the metadata string into VOS comments
* field.
*
* Files: rsl.h, anyformat_to_radar.c
* Moved enum File_type definition from anyformat_to_radar.c into
* rsl.h
*--------------------------
* Date: 17 Mar 97 kolander
*
* File: rsl.h
* Changed carpi structure:
* Added f, invf fields.
* (Carpi_value **)data is now a doubly indexed array 'data[nrow][ncol]'
* Changed slice structure:
* Added f, invf fields.
* (Slice_value **)data is now a doubly indexed array 'data[nrow][ncol]'
* Added function prototypes for:
* RSL_free_carpi, RSL_free_cube, RSL_free_slice, RSL_new_cube,
* RSL_new_slice, RSL_carpi_to_cart, RSL_carpi_to_gif,
* RSL_carpi_to_pict, RSL_carpi_to_ppm, RSL_carpi_to_pgm
*
* File: cube.c
* Added functions:
* RSL_free_slice, RSL_new_slice, RSL_new_cube, RSL_free_cube
* Modified functions:
* RSL_volume_to_cube, RSL_get_slice_from_cube
*
* File: carpi.c
* Added functions:
* RSL_free_carpi
* Modified functions:
* RSL_new_carpi, RSL_find_rng_azm, RSL_cappi_to_carpi
*
* File: image_gen.c
* Added functions:
* (These are modified clones of the sweep image_gen functions.)
* RSL_carpi_to_cart, RSL_carpi_to_gif, RSL_carpi_to_pict,,
* RSL_carpi_to_ppm, RSL_carpi_to_pgm
*
*----------------------------------------------------------------------
* v1.4 Began 12/24/96. Released: 3/7/97 (Severity: bug fix)
*
* 1. Some WSR88D files have a 'radial status' of 28. This is un-
* documented. I assume it means some catastrophic reset has occured.
* Therefore, the code that counts the number of rays is modified
* to rely on the 'ray_num' reported upon reading the file.
* Also, I assume that when the status tells me that I'm reading
* the 'start of a new elevation' (status == 0) that all subsequent
* records will overwrite previously stored rays.
*
* I've seen this status number(28) occur, rarely, in the
* WSR88D data. See wsr88d.c.
*
* 2. Removed kwaj component. - Mike.
*
* 3. Installs toolkit_1BC-51_appl.h in INCDIR. This file is needed
* only if you plan to use the HDF component.
*
* 4. Fixes a freeing bug in nsig.c. Added member nparams to the
* NSIG_Sweep structure to track this for the free routine.
*
* 5. Ray indexing bug fixed in wsr88d_to_radar.c which produced an
* invalid time when the first wsr88d ray was null. Basically, using
* 'i' instead of 'iray'.
*----------------------------------------------------------------------
* v1.3 Began 08/26/96. Released: 12/17/96 (Severity: upgrade)
*
* 1. Lassen field 'Zdr' loaded into RSL 'ZD' field, not the RSL 'DR'
* field, as originally envisioned within HDF functions. Henceforth,
* 'ZD' represents (linear) reflectivity depolarization ratio:
* ZD = 10log(Z_horiz/Z_vert) in units dB
* as opposed to the circular depolarization ratio.
*
* What exactly are the RSL 'LR' and 'DR' fields??
*
*
* For consistency of field nomenclature:
*
* Renamed 'CR' to 'CD'. (corrected ZDR for 1C-51)
* 'MR' to 'MD'. (1C-51 mask for ZDR)
*
* CD_F returns ZD_F
* CD_INVF returns ZD_INVF
*
* 2. Sort by time forgot to compare the hour field. Minor fix.
*
* 3. Fix z_to_r to return proper value.
*
* 4. Lassen ingest: fix the sign of deg/min/sec so they match.
* Trusting that the sign of the deg is correct.
*
* 5. Added RSL_select_fields. This reduces memory requirements
* upon ingest. You can select, "all" (default), "none" (just to
* get header info) or "dz", "vr", ...
*
* WHAT? STATUS?
* lassen done
* wsr88d done
* UF done
* nsig done
* nsig2 done
* kwaj not applicable as it only has DZ.
* hdf done
* mcgill not applicable as it only has DZ.
* toga not done. If you want to do this, feel free.
*
* 6. Uses 'gzip -1'. This cuts the time for making UF files in half.
*
* 7. Renamed 'makefile' to 'Makefile'
*
* 8. The HDF component has changed drastically and is not compatable
* with previous versions. It may change again, contingent upon
* the TSDIS toolkit 3.5.2.1 (as of 12/17/96). Expect minor changes
* to the HDF component in the future.
*
* 9. Pruning of sweeps and rays now sets moved object pointers to
* NULL. See prune.c
*
*10. Updated nsig_to_radar.c to check for ant_scan_mode. If mode is
* RHI, then return NULL because RSL can't handle RHIs. --Paul
*
*11. Split memory management routines for hdf processing. --Mike K.
*----------------------------------------------------------------------
* v1.2 Began 08/26/96. Released: 9/6/96 (Severity: minor bug-fix upgrade)
*
* 1. Eliminated zero sized arrays in lassen.h. SGI 'cc' can't
* handle zero sized arrays. This brings back the -pedantic
* compile flag.
*
* 2. Implemented popen and pclose (called rsl_popen and rsl_pclose)
* to eliminate the annoying message 'Broken pipe.' on SGI and HP
* computers.
*
* 3. The HDF component is incompatable with earlier versions because
* of the use of additional fields. It now uses the MASK fields
* and calibration information. It should be considered that the
* HDF component is in a state of flux.
*
* 4. Minor bug in nsig.c wherein when rays are missing (0 sized)
* that not all rays present will be ingested. This is fixed.
*
* 5. Copyrighted the software.
*
* 6. 'anyformat_to_radar' can recognize HDF files.
*
*----------------------------------------------------------------------
* v1.1 Began 08/21/96. Released: 08/22/96 (Severity: SERIOUS bug fix)
* If you have already upgraded to RSL v1.0.1, then this is a minor
* upgrade.
*
* 1. I should have left well enough alone. But, getting rid
* of rsl.h.template in favor of only having rsl.h has revealed
* a serious bug.
*
* THIS BUG IS IN V1.0 ONLY.
*
* The type for 'Range' could be built into
* the RSL differently than how your application is built.
* For instance, if RSL is built with USE_TWO_BYTE_PRECISION, then
* your application will think 'Range' is a one byte storage class,
* because the default RSL configuration is to use one byte storage.
*
* This bug slipped through all the tests that I perform and was
* discovered only when using the radar_to_hdf component of RSL.
* Thanks to Mike Kolander for finding this one.
*
* Configuration instructions are changed so that you must edit
* rsl.h to use one byte precision.
*
* 2. All MCTEX fields are recognized and loaded into Radar.
* h.f and h.invf are modeled after LASSEN conversion functions.
* 3. Added radar_to_hdf.o to makefile.
* 4. In examples/any_to_gif.c, outputs all fields.
* 5. Three convience arrays are defined in rsl.h.
* a. RSL_ftype[];
* b. RSL_f_list[];
* c. RSL_invf_list[];
* Each array is MAX_RADAR_VOLUMES long and contain: strings
* representing the field type, a pointer
* to the F function, and a pointer to the INVF function.
*
* Usage is conditional by defining USE_RSL_VARS before including
* rsl.h. Use:
* #define USE_RSL_VARS
* #include "rsl.h"
*
* Normally, you shouldn't worry about this.
*
* 6. Removed -pedantic compile flag because LASSEN code has a 0
* sized array -- no warnings.
*----------------------------------------------------------------------
* v1.0 Began 04/19/96. Released: 8/18/96 (Severity: minor upgrade)
*
* 1. Ignore SIGPIPE when making images.
* 2. Can read UF files of MCTEX data. This UF file contains
* RH and PH fields. This is LASSEN data that has been converted
* to UF via a sun program. It is the LASSEN II format.
* 3. Fixed date/time == 0 when calling uf_to_radar multiple times.
* The second and subsequent calls produced 0 for the
* radar->h.year/month/day and radar->h.hour/min/second.
* 4. Always allocate MAX_RADAR_VOLUMES for new radars during ingest.
* This will allow one to test any volume index for presence.
* 5. Set the default functions to DZ_F. This sets CZ_F correctly.
* It is unclear if the other conversion fuctions are properly
* defined.
* 6. Pure UF file ingest bug fixes.
* 7. Added RSL_hdf_to_radar - Mike Kolander.
* 8. Added RSL_radar_to_hdf - Mike Kolander.
* 9. New field type: XZ for X-band Reflectivity.
* 10. Working version of nsig_to_radar. - Paul Kucera.
* This version works on both big endian and little endian (Linux),
* and, for both version 1 and version 2 formats. Version 2
* files are generated on big-endian machines (so far, SGI Iris
* computers), whereas, Version 1 files were written on
* little-endian DEC computers. Two routines are provided:
*
* RSL_nsig_to_radar(char *infile);
* RSL_nsig2_to_radar(char *infile);
*
* Nsig ingest can handle nsig files/tapes that were
* written on a DEC (little endian) or an SGI (big endian).
* It is handled automatically by examination of the 'magic' bytes.
* You will note that the byte-ordering in the file is dependant
* on which machine wrote the tape or file. The New-SIGMET
* documentation does not specify which byte-ordering is to be used
* when the file is written.
*
* Re-wrote nsig.c and beefed up nsig.h. Now, there is an
* interface to read an entire nsig sweep. You can loop through
* the returned sweep and pick your values, and load RSL.
* This re-write was done to make reading version 2 files easier.
* Additionally, all NSIG code for version 1 and version 2 files
* is centrally located in:
* nsig.h
* nsig.c
* nsig_to_radar.c
* To have both versions supported in the same files, I use #ifdef
* and the C preprocessor. 'nsig.h' is saturated with #ifdef NSIG_VER2
* constructs. Thus, only one source is maintained for both NSIG versions.
*
* 11. Added RSL_print_version();
* 12. Added docs for users guide, hdf.
* 13. Added html 'grouping by functionality' page.
* 14. Restores stdin and stdout when creating pipes.
* The pipe readers need to loop until no data available, because
* 'read/fread' will not get all the data in one call.
* 15. Added moving platform headers to Ray structure:
* float pitch; Pitch angle.
* float roll; Roll angle.
* float heading; Heading.
* float pitch_rate; (angle/sec)
* float roll_rate; (angle/sec)
* float heading_rate; (angle/sec)
* float lat; Latitude (degrees)
* float lon; Longitude (degrees)
* int alt; Altitude (m)
* int rvc; Radial velocity correction (units of velocity)
*
* This information typically comes from NSIG. For other formats
* the values are all zero.
* 16. Read version 1.3 and 1.4 of LASSEN data. RSL_lassen_to_radar.
* This means that RSL can read MCTEX data.
* 17. Users manual. Walk a novice through a simple example and explain
* what header information is important. Teach how to take advantage
* of the library.
* 18. Eliminated the #ifeq in makefile. Thus, rsl.h.template is removed
* and rsl.h is resurrected.
*----------------------------------------------------------------------
* v0.45 Began 03/26/96. Froze: 03/27/96 (Severity: minor)
*
* 1. Fixed broken pipe problem on HP and SGI. Cause unknown.
* All I did was to remove the pclose in any_format_to_radar.c
* It seems that if there is any data left in the pipe that a
* SIGPIPE is sent when trying to close the pipe.
* On SGI's this causes a core dump. This bug is difficult to
* reproduce.
* 2. Nsig ingest is severly broken. It always was. Work in
* progress.
* 3. It is important that TSDIS get this version to run on their SGI
* as it prevents a core dump. Normally, this shouldn't affect
* anyone.
*----------------------------------------------------------------------
* v0.44 Began 03/19/96. Froze: 03/19/96.
*
* 1. In prune.c, pointers that are pruned are now set to NULL.
* This elimated core dumps associated with trying to free structues.
* 2. On gzip-ed UF output, stdout is flushed before the pipe is opened.
* 3. Added reverse.c -- Reverse the order of the sweep pointers in
* a volume.
*----------------------------------------------------------------------
* v0.43 Began 03/01/96. Froze: 03/05/96.
*
* 1. farea.c -- nbins fix.
* 2. On UF output, checks for NOECHO.
*
*----------------------------------------------------------------------
* v0.42 Began 11/27/95. Froze: 02/16/96.
*
* 1. Removed '#include <strings.h>'.
* 2. Added a couple of missing prototypes in rsl.h.template.
* 3. Added:
* Ray *RSL_prune_ray (Ray *ray);
* Sweep *RSL_prune_sweep (Sweep *s);
* Volume *RSL_prune_volume(Volume *v);
* Radar *RSL_prune_radar (Radar *r);
*
* These routine remove dataless substructures. Prompted by
* poor NCAR ingest routines for UF files; it is wise to prune
* a Radar prior to calling RSL_radar_to_uf. Therefore, if
* software cannot read the UF files created by RSL, then try these
* prune functions before outputting the UF file. In either case,
* RSL_radar_to_uf produces valid UF files.
* 4. Removed trigraph in mcgill.c.
* 5. Fixed lassen ingest problem on Linux. I think XDR has a bug
* where bit fields are not loaded properly. This is a kludge fix.
* 6. Removed column.c. Code not mature and takes way too much
* RAM. Included in the removal are the vertical structure routines.
* The code has been moved to the application (qcwin).
* 7. RSL_get_first_ray_of_sweep now returns when the ray number is 1 or
* 0. This drasitically speeds the routine.
* 8. Increased the UF buffer size from 4096 to 16384.
*----------------------------------------------------------------------
* v0.41 Began 11/01/95. Froze: 11/20/95.
*
* 1. Minor doc changes. More up to date with implementation.
* 2. Implemented 'radar_type' in the radar_header structure. Values
* are strings and are: "wsr88d", "lassen", "uf", "nsig", "mcgill",
* "kwajalein", "toga".
* 3. Increased range of data (internal storage conversion functions)
* when using 2 byte storage. Some nsig data can have values below the
* default wsr88d function range.
* 4. 'farea.c' -- Volumes are used to compute the fractional area.
* This matches the latest specification of the function.
* 5. Automatically uncompress files. Transparently sets up
* a decompression pipe. If the input is not stdin, then 'anyformat_to...'
* can peek inside a compressed file and determine what ingest routine to
* use. Reading copmressed files from disk and internally uncompressing
* them turns out to be the fastest form of ingesting wsr88d (only format
* timed) data on my 486. However, I get mixed results on the HP 755.
* 'anyformat_to...' uses 'gunzip' to peek inside compressed files.
* 6. Can make gzip-ed UF files. The new routine is 'RSL_radar_to_uf_gzip'.
* Also, RSL_radar_to_uf_fp takes a file pointer. Thus, you can
* define your own output filter.
* 7. Added RSL_write_radar_fp, RSL_write_radar_gzip.
*----------------------------------------------------------------------
* v0.40 Began 10/24/95. Froze: 10/24/95.
*
* 1. Type cast for Sweep_header and Ray_header was removed so that
* stock 'cc' on SGI could digest the code. File: column.c. Why?
*
* Version 0.39 was short lived. :-)
*----------------------------------------------------------------------
* v0.39 Began 7/1/95. Froze: 10/24/95.
*
* 1. Mcgill library is not separate. Included in rsl in whole.
* 2. Interpolation routines added.
* 3. Added RSL_load_height_color_table -- and the colors/*height.clr
* 4. Added RSL_load_rainfall_color_table -- and the colors/*rainfall.clr
* 5. Removed RSL_print_{volume,sweep,ray}
* 6. Removed some unused routines.
* 7. Vertical_structure is its own type composed of Vertical_sweeps and
* Vertical_rays (columns).
* 8. Added doc/internal_routines.html.
* 9. UF is exchangable between big and little endian. Finally, this
* has been fixed. Now UF can be generated on little endian machines
* and read on big endian (the UF generated is in big endian format even
* on the little endian machine). And, visa versa.
*10. New version of RSL_get_vertical_structure in column.c. Doc's updated.
*11. Fixed bug in radar_to_uf. When the number of actual sweeps (and perhaps
* volumes) is less than the determined max of the entire radar structure,
* then the pointers may be erroneous. Paul caught this flounder.
*12. Added RSL_uf_to_radar_fp. The FILE *fp version of the UF ingest.
* Also, passing NULL to RSL_uf_to_radar means to read from stdin.
*13. Added NOECHO flag for f and invf. Currently, defined for UF, NSIG and
* Kwaj data.
*14. Included source for libraries: wsr88d, lassen, tg, nsig, mcgill,
* and kwajlein. Now linking needs only: -lrsl -lm
*15. Simplified the configuration procedure. All configuration