]> Pileus Git - ~andy/rsl/commitdiff
Remove edge/libetor functions
authorAndy Spencer <andy753421@gmail.com>
Sun, 28 Aug 2011 20:18:51 +0000 (20:18 +0000)
committerAndy Spencer <andy753421@gmail.com>
Sun, 28 Aug 2011 20:18:51 +0000 (20:18 +0000)
README
configure.ac
doc/RSL_anyformat_to_radar.html
doc/RSL_edge_to_radar.html [deleted file]
doc/functionality_index.html
doc/index.html
doc/quick_ref.html
doc/users_guide.html
src/Makefile.am
src/anyformat_to_radar.c
src/edge_to_radar.c [deleted file]

diff --git a/README b/README
index c61065a2ee0ee45982db77cd4ee1f366d8206d09..9062c340cd7b6857a4bf2e40218cde4a811b948c 100644 (file)
--- a/README
+++ b/README
@@ -89,11 +89,6 @@ without PKWARE support.
   Compression library.    Call PKWARE, Inc. at 414-354-8699 or via
                           http://www.pkware.com.
                           
-  libetor                 The EDGE libraray to decode the EDGE format.
-                          This is available from Enterprise  Electronics
-                          Corporation, Enterprise,  Alabama,  USA  36330
-                          334-347-3478.
-
 Example mainlines are provided in the directory examples. 
 
 INSTALLATION INSTRUCTIONS
index aadd299edc6e0e4f2d773aefd04858fd6ed33294..fd7d07255f73b2f7194901a0ebb62fa0dd6b0f71 100644 (file)
@@ -41,7 +41,7 @@ LIBS="-lz -lm"
 
 # The order of the libraries is important.
 # This works:
-#   -lrsl -limplode -letor -ltsdistk -lmfhdf -ldf -ljpeg -lz -lm
+#   -lrsl -limplode -ltsdistk -lmfhdf -ldf -ljpeg -lz -lm
 #
 # If mounting with shared libraries we may have to specify all possible libraries.
 # First check with simple LIBS list, if it fails, then expand the list.
@@ -52,29 +52,6 @@ AC_CHECK_LIB(df,       DFopen,             ,,$LIBDIR)
 AC_CHECK_LIB(mfhdf,    SDstart,            ,,$LIBDIR)
 AC_CHECK_LIB(tsdistk,  TKopen,             ,,$LIBDIR)
 
-# Because -letor may depend on RSL being installed, just check for
-# the library libetor.a in a couple of places.
-
-# For autoheader, generate template for HAVE_LIBETOR.
-AH_TEMPLATE(HAVE_LIBETOR,[For EDGE capability.  Change this
-    to '#define HAVE_LIBETOR 1', if you have libetor -- the EDGE decoding
-    library.])
-
-L=""
-
-if test "$L" = ""; then # Check for the file directly.
-       AC_CHECK_FILE($prefix/lib/libetor.a, L="-letor -lrsl -letor"; AC_DEFINE(HAVE_LIBETOR))
-fi
-if test "$L" = ""; then # Check for the file directly.
-       AC_CHECK_FILE(/usr/local/lib/libetor.a, L="-letor -lrsl -letor"; AC_DEFINE(HAVE_LIBETOR))
-fi
-
-if test "$L" != ""; then # libetor exists.
-LIBS="$LIBDIR $L $LIBS"
-else
-LIBS="$LIBDIR $LIBS"
-fi
-
 # Check if yywrap is defined in toolkit, and add $LEXLIB to LIBS if not.
 YYWRAP=""
 AC_CHECK_LIB(tsdistk,  yywrap, YYWRAP="yes",,$LIBDIR)
index 880f339354875d907db0460302e80cb9dbcd5ac8..53074b41ca8347cdc83106101d5637464f097e90 100644 (file)
@@ -40,7 +40,6 @@ thus, are recognized by RSL_anyformat_to_radar:
 <p>RSL output format
 <p>RAPIC (Berrimah Austrailia)
 <p>RADTEC (SPANDAR, requires PKWARE compression tools)
-<p>EDGE
 <p>DORADE
 <p>For TOGA and KWAJALEIN files, there is no standard magic information
 available. It may not be possible for RSL_anyformat_to_radar to recognize
diff --git a/doc/RSL_edge_to_radar.html b/doc/RSL_edge_to_radar.html
deleted file mode 100644 (file)
index 9441cbe..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; U; Linux 2.0.32 i686) [Netscape]">
-</head>
-<body>
-<a href="index.html"><img SRC="rsl.gif" height=100 width=100></a>
-<hr>
-<h1>
-RSL_edge_to_radar</h1>
-
-<hr>
-<h3>
-Synopsis</h3>
-<b>#include "rsl.h"</b>
-<br><b><a href="RSL_radar_struct.html">Radar</a> *RSL_edge_to_radar(char
-*infile);</b>
-<hr>
-<h3>
-Description</h3>
-Reads the EDGE&nbsp;format and returns a pointer to the structure
-<i>Radar</i>.
-The input file is specified by the string <i>infile</i>. If <i>infile</i>
-is NULL, then stdin is read. The input file may be compressed. If the data
-is compressed, it is passed through the GNU <b>gunzip</b> filter. Thus,
-compressed data can be any format that <b>gzip</b> understands.&nbsp; However,
-the EDGE&nbsp;format uses the lzw compression and requires a supporting
-library to decode the file.&nbsp; The supporting library is called ETOR
-and is distributed separately, since it is not free software.&nbsp; Contact
-Enterprise Electronics Corporation to obtain the ETOR library that decodes
-the EDGE&nbsp;format.
-<p>&nbsp;Enterprise&nbsp; Electronics&nbsp; Corporation, Enterprise,&nbsp;
-Alabama,&nbsp; USA&nbsp; 36330 (334) 347-3478.
-<br>
-<hr>
-<h3>
-Return value</h3>
-Upon successful completion, RSL_edge_to_radar returns a pointer to the
-structure <b>Radar</b>. Otherwise, NULL is returned and errno is set.&nbsp;
-<hr>
-<h3>
-See also</h3>
-<a href="RSL_anyformat_to_radar.html">RSL_anyformat_to_radar&nbsp;</a>
-<hr>
-<p>Author:&nbsp; Don Burrows @&nbsp;Enterprise Electronics Corporation
-</body>
-</html>
index 16ef15c6ec12101bc6731d2f735dfe81f46c76a3..5df2230ee49e3d6846023cfe70eb73851194e7f2 100644 (file)
@@ -14,7 +14,6 @@ Index of RSL routines grouped by functionality.</h1>
 Input</h1>
 <a href="RSL_anyformat_to_radar.html">Radar *RSL_anyformat_to_radar(char
 *infile [, char *callid_or_first_file]);</a>
-<br><a href="RSL_edge_to_radar.html">Radar *RSL_edge_to_radar(char *infile);</a>
 <br><a href="RSL_kwaj_to_radar.html">Radar *RSL_kwaj_to_radar(char *infile);</a>
 <br><a href="RSL_lassen_to_radar.html">Radar *RSL_lassen_to_radar(char
 *infile);</a>
index 113a315e145300faf805c36b3abf0308d7868442..a28468a425b3f7670839542220c52d4f7850cc67 100644 (file)
@@ -143,14 +143,6 @@ Supported Radar Data Formats</h1>
 
 <td>Yes</td>
 
-<td>No</td>
-</tr>
-
-<tr>
-<td>EDGE</td>
-
-<td>Yes</td>
-
 <td>No</td>
 </tr>
 </table></center>
index 5603c0e66cb5a5aac7573da9261eade5f5982f90..314d8dadc734d284ce8044d89e0b4d02f2c0f8d3 100644 (file)
@@ -37,7 +37,6 @@ Alphabetical index to RSL routines</h1>
 (alphabetical and grouped by object returned)</h5>
 <a href="RSL_anyformat_to_radar.html">Radar *RSL_anyformat_to_radar(char
 *infile [, char *callid_or_first_file]);</a>
-<br><a href="RSL_edge_to_radar.html">Radar *RSL_edge_to_radar(char *infile);</a>
 <br><a href="RSL_get_win.html">Radar *RSL_get_window_from_radar(Radar *r,
 float min_range, float max_range, float low_azim, float hi_azim);</a>
 <br><a href="RSL_hdf_to_radar.html">Radar *RSL_hdf_to_radar(char *infile);</a>
index 9f582a0b9b9fe5046d4d9f8ad557b7e9d16d3c39..442db18402c71afead2723bc651af039a2ac18a5 100644 (file)
@@ -123,14 +123,6 @@ Output routine</h4>
 
 <td><a href="RSL_radtec_to_radar.html">RSL_radtec_to_radar</a></td>
 
-<td>None</td>
-</tr>
-
-<tr>
-<td>EDGE</td>
-
-<td><a href="RSL_edge_to_radar.html">RSL_edge_to_radar</a></td>
-
 <td>None</td>
 </tr>
 </table>
index e37d4d243c5b6ff20fa271777f32501912827187..511b83028c2aca082a61097059f911168933b51c 100644 (file)
@@ -18,7 +18,6 @@ librsl_la_SOURCES  = \
        radtec.c radtec_to_radar.c \
        dorade.c dorade_print.c dorade_to_radar.c \
        lassen.c lassen_to_radar.c \
-       edge_to_radar.c \
        radar.c volume.c image_gen.c cappi.c fraction.c read_write.c farea.c \
        range.c radar_to_uf.c uf_to_radar.c wsr88d_to_radar.c \
        carpi.c cube.c sort_rays.c toga_to_radar.c gts.c histogram.c \
index 146a5e08664a838ffdb43f1c47e8f3ee1601cc61..6f0d8fb4c17b09a763b5e624e0fe012d81f507ab 100644 (file)
@@ -115,7 +115,6 @@ enum File_type RSL_filetype(char *infile)
   if (strncmp("P A B ", magic, 6) == 0) return MCGILL_FILE;\r
   /* Byte swapped ? */\r
   if (strncmp(" P A B", magic, 6) == 0) return MCGILL_FILE;\r
-  if (strncmp("Volume", magic, 6) == 0) return EDGE_FILE;\r
   if (strncmp("SSWB", magic, 4) == 0) return DORADE_FILE;\r
   if (strncmp("VOLD", magic, 4) == 0) return DORADE_FILE;\r
 \r
@@ -166,7 +165,6 @@ Radar *RSL_anyformat_to_radar(char *infile, ...)
 #endif\r
   case RAINBOW_FILE: radar = RSL_rainbow_to_radar(infile); break;\r
   case  MCGILL_FILE: radar = RSL_mcgill_to_radar(infile); break;\r
-  case    EDGE_FILE: radar = RSL_EDGE_to_radar(infile);   break;\r
   case  LASSEN_FILE: radar = RSL_lassen_to_radar(infile); break;\r
   case  DORADE_FILE: radar = RSL_dorade_to_radar(infile); break;\r
 \r
diff --git a/src/edge_to_radar.c b/src/edge_to_radar.c
deleted file mode 100644 (file)
index bd75b9b..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-#include "rsl.h"
-
-#ifdef HAVE_LIBETOR
-
-/*----------------------------------------------------------------------**
-**
-** EDGE_to_Radar.c
-**
-**----------------------------------------------------------------------**
-**
-** DESCRIPTION
-**
-** Converts an EDGE Volume structure to an RSL Radar structure
-**
-** USAGE:
-**
-** Radar *RSL_EDGE_to_radar(EDGE_filename);    -* Usage Section with comments *-
-** char *EDGE_filename;                        -* name of EDGE volume file *-
-**
-** PROCESSING:
-**
-**     This program creates an RSL radar data structure copies an Edge 
-**     volume data structure into it and returns the pointer to the Radar 
-**     structure.
-**
-** COPYRIGHT NOTICE
-**
-**     Copyright (c) 1997 by Enterprise Electronics Corporation
-**     All Rights Reserved
-** 
-** This program is  copyright  by  Enterprise  Electronics  Corpora-
-** tion,    Enterprise,  Alabama,  USA  36330 (334) 347-3478.  It is
-** licensed for  use  on  a  specific  CPU   and   is  not    to  be
-** transferred  or otherwise divulged.   Copies  or modifications of
-** this program must carry this copyright notice.
-** 
-**
-**
-** HEADER INFOMATION
-**
-**     Software Suite          - EDGE
-**     Package                 -
-**     Reference number        - SP1/PGM/
-**     Revision number         - $Revision: 1.3 $
-**     Release State           - $State: Exp $
-**     Author, designer        - Don Burrows
-** Modification Date           - $Date: 1999/11/23 00:36:00 $
-** Modified by                 - $Author: merritt $
-** $Source: /nfs/trmm/src/CVS/rsl/edge_to_radar.c,v $
-**
-** MODIFICATION RECORD
-**
-** $Log: edge_to_radar.c,v $
-** Revision 1.3  1999/11/23 00:36:00  merritt
-** auto configure scripts added
-**
-** Revision 1.2  1999/04/02 16:14:45  merritt
-** ready for v1.23
-**
-** Revision 1.1  1999/03/31 22:35:16  merritt
-** round 1 for edge incorporation.   Still seg faults for any_to_gif
-**
-**
-**----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/* Feature Test Switches                                                */
-/*----------------------------------------------------------------------*/
-#define _POSIX_SOURCE  1
-
-/*----------------------------------------------------------------------*/
-/* System Headers            { full list in stdinc.h }                  */
-/*----------------------------------------------------------------------*/
-#include       <stdio.h>       /* stdio library                        */
-#include       <stddef.h>      /* Some popular symbols                 */
-#include       <stdlib.h>      /* Some standard funct.                 */
-#include       <unistd.h>      /* POSIX symbols definitions            */
-#include        <time.h>
-#include       <math.h>
-#include    <string.h>
-
-/*----------------------------------------------------------------------*/
-/* Application Headers                                                  */
-/*----------------------------------------------------------------------*/
-#include "vol.h"
-#include "antenna.h"
-
-/*----------------------------------------------------------------------*/
-/* Macros                                                               */
-/*----------------------------------------------------------------------*/
-#define NEEDED_VOLS 8
-
-/*----------------------------------------------------------------------*/
-/* External (Import) Variables                                          */
-/*----------------------------------------------------------------------*/
-extern int radar_verbose_flag;
-
-/*----------------------------------------------------------------------*/
-/* External Functions                                                   */
-/*----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/* Structures and Unions                                                       */
-/*----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/* Global (Export) Variables                                            */
-/*----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/* Local (Static) Variables                                             */
-/*----------------------------------------------------------------------*/
-static struct vol_struct *EDGE_vol=NULL;
-static int num_sweeps,num_rays,num_bins,gate_width;
-static float azimuth,elevation;
-static float prf,wavelength,nyq_vel,meansr;
-static struct tm *sweeptime;
-static float lat,lon;
-static int bytes_bin;
-static float beam_width;
-static float (*f)(Range x);
-static Range (*invf)(float x);
-
-/*----------------------------------------------------------------------*/
-/* Signal Catching Functions                                            */
-/*----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/* Local Function                                                       */
-/*----------------------------------------------------------------------*/
-
-Ray *Fill_Ray_Header(int num_bins,int isweep,int iray)
-{
-       Ray *RSL_ray;
-
-       RSL_ray = RSL_new_ray(num_bins);
-       RSL_ray->h.sec = sweeptime->tm_sec;
-       RSL_ray->h.minute = sweeptime->tm_min;
-       RSL_ray->h.hour = sweeptime->tm_hour;
-               RSL_ray->h.day = sweeptime->tm_mday;
-               RSL_ray->h.month = sweeptime->tm_mon+1;
-               RSL_ray->h.year = sweeptime->tm_year + 1900;
-       RSL_ray->h.unam_rng = 149851.274/prf;
-       RSL_ray->h.azimuth = azimuth;
-       RSL_ray->h.ray_num = iray;
-       RSL_ray->h.elev = elevation;
-       RSL_ray->h.elev_num = isweep;
-       RSL_ray->h.range_bin1 = gate_width;
-       RSL_ray->h.gate_size = gate_width;
-       RSL_ray->h.vel_res = nyq_vel/128.0;
-       RSL_ray->h.sweep_rate = meansr;
-       RSL_ray->h.prf = prf;
-       RSL_ray->h.azim_rate = 
-               (float)EDGE_vol->sweep[isweep].rad.antenna_speed*0.55;
-       RSL_ray->h.lat = lat;
-       RSL_ray->h.lon = lon;
-       RSL_ray->h.alt = EDGE_vol->sweep[isweep].rad.antenna_height;
-       RSL_ray->h.rvc = 0;
-       RSL_ray->h.pulse_count = EDGE_vol->sweep[isweep].rad.pulses;
-       RSL_ray->h.pulse_count = EDGE_vol->sweep[isweep].rad.pulse_width*1.2+0.8;
-       RSL_ray->h.beam_width = beam_width;
-       RSL_ray->h.frequency = 299.702547/wavelength;
-       RSL_ray->h.wavelength = wavelength;
-       RSL_ray->h.nyq_vel = nyq_vel;
-       RSL_ray->h.f = f;
-       RSL_ray->h.invf = invf;
-       RSL_ray->h.nbins = num_bins;
-       return RSL_ray;
-}
-
-/*----------------------------------------------------------------------*/
-/* Main Function                                                        */
-/*----------------------------------------------------------------------*/
-
-Radar *RSL_EDGE_to_radar(char *EDGE_filename)
-{
-       Radar *RSL_rad;
-       int i,j,k;
-       Sweep *sweep_u,*sweep_z,*sweep_v,*sweep_w,*sweep_d=NULL;
-       unsigned char *EDGE_ray;
-       unsigned short *sray;
-       struct tm *voltime;
-       float start_azimuth,end_azimuth;
-       char state[2];
-
-       float uz,cz,rv,sw,zdr=0;
-
-       if (radar_verbose_flag) printf("EDGE_to_radar(%s)\n",EDGE_filename);
-
-/** Load the EDGE volume structure  **/
-       if (load_data((char **)&EDGE_vol,EDGE_filename,VOL_FILE) == -1)
-       {
-               EDGE_vol = NULL;
-               fprintf(stderr,"EDGE_to_radar: Could not load EDGE Volume File: %s\n",EDGE_filename);
-               return NULL;
-       }
-/** Allocating memory for radar structure **/
-       RSL_rad = RSL_new_radar(MAX_RADAR_VOLUMES);
-       if (RSL_rad == NULL)
-       {
-               fprintf(stderr, "EDGE_to_radar: radar is NULL\n");
-               free(EDGE_vol);
-               return NULL;
-       }
-       bytes_bin = BYTES_BIN(EDGE_vol);
-       prf = (float)EDGE_vol->sweep[0].rad.prf1;
-       wavelength = EDGE_vol->sweep[0].rad.wavelength;
-       if (radar_verbose_flag) printf("bytes_bin: %d  prf %5.0f  wavelength %4.1f\n",
-               bytes_bin,prf,wavelength*100.0);
-       nyq_vel = prf*wavelength/4.0;
-       num_sweeps = EDGE_vol->num_sweeps;
-       if (radar_verbose_flag) printf("nyq_vel %5.1f  num_sweeps %d\n",nyq_vel,num_sweeps);
-
-       meansr = 0.0;
-       for(i=0;i<num_sweeps-1;i++)
-               meansr += (float)(EDGE_vol->sweep[i+1].date-EDGE_vol->sweep[i].date);
-       meansr /= (float)num_sweeps-1.0;
-       meansr = 60.0/meansr;
-
-       voltime = gmtime(&EDGE_vol->date);
-       if (num_sweeps > MAX_SWEEPS) num_sweeps = MAX_SWEEPS;
-       sprintf(state,"NA");
-
-/*  Now fill the Radar header  */
-        RSL_rad->h.sec = voltime->tm_sec;
-        RSL_rad->h.minute = voltime->tm_min;
-        RSL_rad->h.hour = voltime->tm_hour;
-        RSL_rad->h.day = voltime->tm_mday;
-        RSL_rad->h.month = voltime->tm_mon + 1;
-        RSL_rad->h.year = voltime->tm_year + 1900;
-       strcpy(RSL_rad->h.radar_type,"EDGE");
-       RSL_rad->h.nvolumes = NEEDED_VOLS;
-       RSL_rad->h.number = 553;/* What is this number supposed to be??? */
-       memmove(RSL_rad->h.name,EDGE_vol->sweep[0].rad.site_name,
-               sizeof(RSL_rad->h.name));
-       memmove(RSL_rad->h.radar_name,EDGE_vol->sweep[0].rad.radar_type,
-               sizeof(RSL_rad->h.radar_name));
-       memmove(RSL_rad->h.city,EDGE_vol->sweep[0].rad.site_name,
-               sizeof(RSL_rad->h.city));
-       memmove(RSL_rad->h.state,state,sizeof(RSL_rad->h.state));
-       RSL_rad->h.latd = EDGE_vol->sweep[0].rad.lat_deg;
-       RSL_rad->h.latm = EDGE_vol->sweep[0].rad.lat_min;
-       RSL_rad->h.lats = EDGE_vol->sweep[0].rad.lat_sec;
-       RSL_rad->h.lond = EDGE_vol->sweep[0].rad.long_deg;
-       RSL_rad->h.lonm = EDGE_vol->sweep[0].rad.long_min;
-       RSL_rad->h.lons = EDGE_vol->sweep[0].rad.long_sec;
-       if (RSL_rad->h.latd < 0) 
-       {
-               if(RSL_rad->h.latm > 0) RSL_rad->h.latm *= -1;
-               if(RSL_rad->h.lats > 0) RSL_rad->h.lats *= -1;
-       }
-       if (RSL_rad->h.lond < 0) 
-       {
-               if(RSL_rad->h.lonm > 0) RSL_rad->h.lonm *= -1;
-               if(RSL_rad->h.lons > 0) RSL_rad->h.lons *= -1;
-       }
-       lat = (float)RSL_rad->h.latd+(float)RSL_rad->h.latm/60.0+
-               (float)RSL_rad->h.lats/3600.0;
-       lon = (float)RSL_rad->h.lond+(float)RSL_rad->h.lonm/60.0+
-               (float)RSL_rad->h.lons/3600.0;
-       RSL_rad->h.height = EDGE_vol->sweep[0].rad.antenna_height;
-       RSL_rad->h.spulse = EDGE_vol->sweep[0].rad.pulse_width*1200 + 800;
-       RSL_rad->h.lpulse = EDGE_vol->sweep[0].rad.pulse_width*1200 + 800;
-       if (radar_verbose_flag) printf("Radar Header Filled\n");
-/* 
-       Done with Radar header
-       Now create the necessary volumes and fill the
-       volume headers
-*/
-
-       RSL_rad->v[DZ_INDEX] = RSL_new_volume(num_sweeps);
-       if (radar_verbose_flag) printf("DZ volume created index is %d\n",DZ_INDEX);
-       if ((RSL_rad->v[DZ_INDEX]->h.type_str = malloc(25)) != NULL)
-       {
-               RSL_rad->v[DZ_INDEX]->h.type_str[24] = '\0';
-               strcpy(RSL_rad->v[DZ_INDEX]->h.type_str,"Uncorrected Reflectivity"); 
-       }
-       if (radar_verbose_flag) printf("Uncorrected Reflectivity\n");
-       RSL_rad->v[DZ_INDEX]->h.nsweeps = num_sweeps;
-       if (radar_verbose_flag) printf("num_sweeps %d assigned\n",num_sweeps);
-       RSL_rad->v[DZ_INDEX]->h.f = DZ_F;
-       if (radar_verbose_flag) printf("DZ_F assigned\n");
-       RSL_rad->v[DZ_INDEX]->h.invf = DZ_INVF;
-       if (radar_verbose_flag) printf("DZ volume created and header Filled\n");
-
-       RSL_rad->v[CZ_INDEX] = RSL_new_volume(num_sweeps);
-       if ((RSL_rad->v[CZ_INDEX]->h.type_str = malloc(23)) != NULL)
-       {
-               RSL_rad->v[CZ_INDEX]->h.type_str[22] = '\0';
-               strcpy(RSL_rad->v[CZ_INDEX]->h.type_str,"Corrected Reflectivity"); 
-       }
-       RSL_rad->v[CZ_INDEX]->h.nsweeps = num_sweeps;
-       RSL_rad->v[CZ_INDEX]->h.f = CZ_F;
-       RSL_rad->v[CZ_INDEX]->h.invf = CZ_INVF;
-       if (radar_verbose_flag) printf("CZ volume created and header Filled\n");
-
-       RSL_rad->v[VR_INDEX] = RSL_new_volume(num_sweeps);
-       if ((RSL_rad->v[VR_INDEX]->h.type_str = malloc(16)) != NULL)
-       {
-               RSL_rad->v[VR_INDEX]->h.type_str[15] = '\0';
-               strcpy(RSL_rad->v[VR_INDEX]->h.type_str,"Radial Velocity"); 
-       }
-       RSL_rad->v[VR_INDEX]->h.nsweeps = num_sweeps;
-       RSL_rad->v[VR_INDEX]->h.f = VR_F;
-       RSL_rad->v[VR_INDEX]->h.invf = VR_INVF;
-       if (radar_verbose_flag) printf("VR volume created and header Filled\n");
-
-       RSL_rad->v[SW_INDEX] = RSL_new_volume(num_sweeps);
-       if ((RSL_rad->v[SW_INDEX]->h.type_str = malloc(15)) != NULL)
-       {
-               RSL_rad->v[SW_INDEX]->h.type_str[14] = '\0';
-               strcpy(RSL_rad->v[SW_INDEX]->h.type_str,"Spectrum Width"); 
-       }
-       RSL_rad->v[SW_INDEX]->h.nsweeps = num_sweeps;
-       RSL_rad->v[SW_INDEX]->h.f = SW_F;
-       RSL_rad->v[SW_INDEX]->h.invf = SW_INVF;
-       if (radar_verbose_flag) printf("SW volume created and header Filled\n");
-
-       if (bytes_bin == 5) 
-       {
-               RSL_rad->v[ZD_INDEX] = RSL_new_volume(num_sweeps);
-               strcpy(RSL_rad->v[ZD_INDEX]->h.type_str,"Differential Reflectivity"); 
-               if ((RSL_rad->v[ZD_INDEX]->h.type_str = malloc(26)) != NULL)
-               {
-                       RSL_rad->v[ZD_INDEX]->h.type_str[25] = '\0';
-                       strcpy(RSL_rad->v[ZD_INDEX]->h.type_str,"Differential Reflectivity"); 
-               }
-               RSL_rad->v[ZD_INDEX]->h.nsweeps = num_sweeps;
-               RSL_rad->v[ZD_INDEX]->h.f = ZD_F;
-               RSL_rad->v[ZD_INDEX]->h.invf = ZD_INVF;
-               if (radar_verbose_flag) printf("ZD volume created and header Filled\n");
-       }
-/*
-       Volume Headers complete now fill the sweeps
-*/
-
-       for (i=0;i<num_sweeps;i++)
-       {
-               if (radar_verbose_flag) printf("Sweep number %d\n",i);
-               num_rays = EDGE_vol->sweep[i].num_rays;
-               sray = (unsigned short *)RAY_PTR(EDGE_vol,i,10);
-                elevation = ((float)(BINEL2IANG100(sray[1])) +
-                        (float)(BINEL2IANG100(sray[3])))/200.0;
-               sweeptime = gmtime(&EDGE_vol->sweep[i].date);
-/* 
-       In newer versions of edge the beam width will be EDGE_vol->sweep[i].rad.beam_width 
-*/
-               beam_width = 1.0;
-
-               RSL_rad->v[DZ_INDEX]->sweep[i] = RSL_new_sweep(num_rays);
-               sweep_u = RSL_rad->v[DZ_INDEX]->sweep[i];
-               sweep_u->h.sweep_num = i;
-               sweep_u->h.elev = elevation;
-               sweep_u->h.beam_width = beam_width;
-               sweep_u->h.vert_half_bw = beam_width/2.0;
-               sweep_u->h.horz_half_bw = beam_width/2.0;
-               sweep_u->h.nrays = num_rays;
-               sweep_u->h.f = DZ_F;
-               sweep_u->h.invf = DZ_INVF;
-
-               RSL_rad->v[CZ_INDEX]->sweep[i] = RSL_new_sweep(num_rays);
-               sweep_z = RSL_rad->v[CZ_INDEX]->sweep[i];
-               sweep_z->h.sweep_num = i;
-               sweep_z->h.elev = elevation;
-               sweep_z->h.beam_width = beam_width;
-               sweep_z->h.vert_half_bw = beam_width/2.0;
-               sweep_z->h.horz_half_bw = beam_width/2.0;
-               sweep_z->h.nrays = num_rays;
-               sweep_z->h.f = CZ_F;
-               sweep_z->h.invf = CZ_INVF;
-
-               RSL_rad->v[VR_INDEX]->sweep[i] = RSL_new_sweep(num_rays);
-               sweep_v = RSL_rad->v[VR_INDEX]->sweep[i]; 
-               sweep_v->h.sweep_num = i;
-               sweep_v->h.elev = elevation;
-               sweep_v->h.beam_width = beam_width;
-               sweep_v->h.vert_half_bw = beam_width/2.0;
-               sweep_v->h.horz_half_bw = beam_width/2.0;
-               sweep_v->h.nrays = num_rays;
-               sweep_v->h.f = VR_F;
-               sweep_v->h.invf = VR_INVF;
-
-               RSL_rad->v[SW_INDEX]->sweep[i] = RSL_new_sweep(num_rays);
-               sweep_w = RSL_rad->v[SW_INDEX]->sweep[i];
-               sweep_w->h.sweep_num = i;
-               sweep_w->h.elev = elevation;
-               sweep_w->h.beam_width = beam_width;
-               sweep_w->h.vert_half_bw = beam_width/2.0;
-               sweep_w->h.horz_half_bw = beam_width/2.0;
-               sweep_w->h.nrays = num_rays;
-               sweep_w->h.f = SW_F;
-               sweep_w->h.invf = SW_INVF;
-
-               if (bytes_bin == 5) 
-               {
-                       RSL_rad->v[ZD_INDEX]->sweep[i] = RSL_new_sweep(num_rays);
-                       sweep_d = RSL_rad->v[ZD_INDEX]->sweep[i];
-                       sweep_d->h.sweep_num = i;
-                       sweep_d->h.elev = elevation;
-                       sweep_d->h.beam_width = beam_width;
-                       sweep_d->h.vert_half_bw = beam_width/2.0;
-                       sweep_d->h.horz_half_bw = beam_width/2.0;
-                       sweep_d->h.nrays = num_rays;
-                       sweep_d->h.f = ZD_F;
-                       sweep_d->h.invf = ZD_INVF;
-               }
-/*
-       Sweeps are complete now to do the rays
-*/
-               num_bins = (int)EDGE_vol->sweep[i].rad.gates;
-               for (j=0;j<num_rays;j++)
-               {
-                       sray = (unsigned short *)RAY_PTR(EDGE_vol,i,j);
-                       elevation = ((float)(BINEL2IANG100(sray[1])) +
-                        (float)(BINEL2IANG100(sray[3])))/200.0;
-                       gate_width = EDGE_vol->sweep[i].rad.gw1;
-                       start_azimuth =BIN2IANG(sray[0]);
-                       end_azimuth =BIN2IANG(sray[2]);
-                       azimuth = (start_azimuth + end_azimuth)/2.0;
-                       if (fabs(end_azimuth - start_azimuth) > 180.0) azimuth = azimuth - 180.0;
-                       if (azimuth < 0.0) azimuth = azimuth + 360.0;
-
-                       f = DZ_F;
-                       invf = DZ_INVF;
-                       sweep_u->ray[j] = Fill_Ray_Header(num_bins,i,j);
-                       f = CZ_F;
-                       invf = CZ_INVF;
-                       sweep_z->ray[j] = Fill_Ray_Header(num_bins,i,j);
-                       f = VR_F;
-                       invf = VR_INVF;
-                       sweep_v->ray[j] = Fill_Ray_Header(num_bins,i,j);
-                       f = SW_F;
-                       invf = SW_INVF;
-                       sweep_w->ray[j] = Fill_Ray_Header(num_bins,i,j);
-                       if (bytes_bin == 5)
-                       {
-                               f = ZD_F;
-                               invf = ZD_INVF;
-                               sweep_d->ray[j] = Fill_Ray_Header(num_bins,i,j);
-                       }
-                       EDGE_ray = RAY_PTR(EDGE_vol,i,j);
-
-/*
-       Now fill the rest of the ray 
-*/
-                       for (k=0;k<num_bins;k++)
-                       {       
-                               uz = (float)EDGE_ray[k*bytes_bin+2];
-                               if (uz == 0.0) uz = NOECHO;
-                               else if (uz > 255.0) uz = BADVAL;
-                               else uz = uz/2.0-32.0;
-                               cz = (float)EDGE_ray[k*bytes_bin];
-                               if (cz == 0.0) cz = NOECHO;
-                               else if (cz > 255.0) cz = BADVAL;
-                               else cz = cz/2.0-32.0;
-                               rv = (float)EDGE_ray[k*bytes_bin+1];
-                               if (rv == 0.0) rv = NOECHO;
-                               else if (rv > 255.0) rv = BADVAL;
-                               else rv = (rv-128.0)/128.0*nyq_vel;
-                               sw = (float)EDGE_ray[k*bytes_bin+3];
-                               if (sw == 0.0) sw = NOECHO;
-                               else if (sw > 255.0) sw = BADVAL;
-                               else sw = sw/128.0*nyq_vel;
-                               if (bytes_bin == 5) 
-                               {
-                                       zdr = (float)EDGE_ray[k*bytes_bin+4];
-                                       if (zdr == 0.0) zdr = NOECHO;
-                                       else if (zdr > 255.0) zdr = BADVAL;
-                                       else zdr = (zdr-128.0)/16.0;
-                               }
-                               sweep_u->ray[j]->range[k] = DZ_INVF(uz);
-                               sweep_z->ray[j]->range[k] = CZ_INVF(cz);
-                               sweep_v->ray[j]->range[k] = VR_INVF(rv);
-                               sweep_w->ray[j]->range[k] = SW_INVF(sw);
-                               if (bytes_bin == 5) sweep_d->ray[j]->range[k] = DR_INVF(zdr);
-                       }
-               }
-       }
-       if (radar_verbose_flag)
-         printf("EDGE to RSL conversion complete\n");  
-       free(EDGE_vol);
-       RSL_rad = RSL_prune_radar(RSL_rad);
-       return RSL_rad;
-}
-/*-END OF MODULE--------------------------------------------------------*/
-#else
-Radar *RSL_EDGE_to_radar(char *infile)
-{
-  fprintf(stderr,
-"The library libetor.a (or .so) was not found when RSL was installed,\n\
-therefore, EDGE capability was disabled.  If you now have libetor, then\n\
-you must reinstall RSL to enable EDGE.\n"
-);
-  return NULL;
-}
-#endif