Re: Sigmet Raw Product files

Hi Gordon-

Gordon Carrie wrote:

Hi folks,

I need to view Sigmet Raw products in IDV.  These are Sigmet's
equivalent of Level II files.  I see two options:

1) Adapt the programs for reading WSR88D Level II files in
   /metapps/ucar/unidata/data/radar.

This would probably be your best bet.  I'd create a
SigmetRadarDataSource that handles that format.  You might
be able to leverage some of the other classes in that package.

2) Convert the Sigmet files to NetCDF.  I see source code for
   reading radar data from NetCDF files in NetcdfRadarDataSource.java
   and NetcdfSweepfileAdapter.java, but I cannot find the format
   for the NetCDF files it reads (i.e. metadata, variable and
   dimension names, etc.).  Does anyone know where I can find this
   specification?  Output from ncdump on a sample file would be
   sufficient.

The NetcdfSweepfileAdapter is that actual data munger that
NetcdfRadarDataSource uses.  An example CDL is attached.
This is a format used by NCAR for their SPOL radar.

If I don't hear anything, I will proceed with option 1.  Stay tuned.

I think that's the best option.

Good luck!

Don
*************************************************************
Don Murray                               UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx                        P.O. Box 3000
(303) 497-8628                              Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
"There's someone in my head, but it's not me"    Roger Waters
*************************************************************

netcdf ncswp_SPOL_20000705_234939.847_v1_s8_59.0_RHI_ {
dimensions:
        Time = UNLIMITED ; // (41 currently)
        maxCells = 1008 ;
        numSystems = 1 ;
variables:
        int base_time ;
                base_time:long_name = "Unix Date/Time value for first record" ;
                base_time:units = "seconds since 1970-01-01 00:00 UTC" ;
                base_time:_FillValue = 0 ;
        float Fixed_Angle ;
                Fixed_Angle:long_name = "Targeted fixed angle for this scan" ;
                Fixed_Angle:units = "degrees" ;
                Fixed_Angle:_FillValue = 0.f ;
        float Range_to_First_Cell ;
                Range_to_First_Cell:long_name = "Range to the center of the 
first cell" ;
                Range_to_First_Cell:units = "meters" ;
                Range_to_First_Cell:_FillValue = 0.f ;
        float Cell_Spacing ;
                Cell_Spacing:long_name = "Distance between cells" ;
                Cell_Spacing:units = "meters" ;
                Cell_Spacing:_FillValue = 0.f ;
        float Nyquist_Velocity ;
                Nyquist_Velocity:long_name = "Effective unambigous velocity" ;
                Nyquist_Velocity:units = "meters/second" ;
                Nyquist_Velocity:_FillValue = 0.f ;
        float Unambiguous_Range ;
                Unambiguous_Range:long_name = "Effective unambigous range" ;
                Unambiguous_Range:units = "meters" ;
                Unambiguous_Range:_FillValue = 0.f ;
        double Latitude ;
                Latitude:long_name = "Latitude of the instrument" ;
                Latitude:units = "degrees_north" ;
                Latitude:valid_range = -90.f, 90.f ;
                Latitude:missing_value = -999.f ;
                Latitude:_FillValue = -888. ;
        double Longitude ;
                Longitude:long_name = "Longitude of the instrument" ;
                Longitude:units = "degrees_east" ;
                Longitude:valid_range = -360.f, 360.f ;
                Longitude:missing_value = -999.f ;
                Longitude:_FillValue = -888. ;
        double Altitude ;
                Altitude:long_name = "Altitude in meters (asl) of the 
instrument" ;
                Altitude:units = "meters" ;
                Altitude:valid_range = -10000.f, 90000.f ;
                Altitude:missing_value = -99999.f ;
                Altitude:_FillValue = -88888. ;
        float Radar_Constant(numSystems) ;
                Radar_Constant:long_name = "Radar constant" ;
                Radar_Constant:units = "???" ;
                Radar_Constant:_FillValue = 0.f ;
        float rcvr_gain(numSystems) ;
                rcvr_gain:long_name = "Receiver Gain" ;
                rcvr_gain:Comment = "Most entries are 2 dimension arrays one 
for each polarity" ;
                rcvr_gain:units = "db" ;
                rcvr_gain:missing_value = -999.f ;
                rcvr_gain:_FillValue = -888.f ;
        float ant_gain(numSystems) ;
                ant_gain:long_name = "Antenna Gain" ;
                ant_gain:units = "db" ;
                ant_gain:missing_value = -999.f ;
                ant_gain:_FillValue = -888.f ;
        float sys_gain(numSystems) ;
                sys_gain:long_name = "System Gain" ;
                sys_gain:units = "db" ;
                sys_gain:missing_value = -999.f ;
                sys_gain:_FillValue = -888.f ;
        float bm_width(numSystems) ;
                bm_width:long_name = "Beam Width" ;
                bm_width:units = "degrees" ;
                bm_width:missing_value = -999.f ;
                bm_width:_FillValue = -888.f ;
        float pulse_width(numSystems) ;
                pulse_width:long_name = "Pulse Width" ;
                pulse_width:units = "seconds" ;
                pulse_width:missing_value = -999.f ;
                pulse_width:_FillValue = -888.f ;
        float band_width(numSystems) ;
                band_width:long_name = "Band Width" ;
                band_width:units = "hertz" ;
                band_width:missing_value = -999.f ;
                band_width:_FillValue = -888.f ;
        float peak_pwr(numSystems) ;
                peak_pwr:long_name = "Peak Power" ;
                peak_pwr:units = "watts" ;
                peak_pwr:missing_value = -999.f ;
                peak_pwr:_FillValue = -888.f ;
        float xmtr_pwr(numSystems) ;
                xmtr_pwr:long_name = "Transmitter Power" ;
                xmtr_pwr:units = "dBm" ;
                xmtr_pwr:missing_value = -999.f ;
                xmtr_pwr:_FillValue = -888.f ;
        float noise_pwr(numSystems) ;
                noise_pwr:long_name = "Noise Power" ;
                noise_pwr:units = "dBm" ;
                noise_pwr:missing_value = -999.f ;
                noise_pwr:_FillValue = -888.f ;
        float tst_pls_pwr(numSystems) ;
                tst_pls_pwr:long_name = "Test Pulse Power" ;
                tst_pls_pwr:units = "dBm" ;
                tst_pls_pwr:missing_value = -999.f ;
                tst_pls_pwr:_FillValue = -888.f ;
        float tst_pls_rng0(numSystems) ;
                tst_pls_rng0:long_name = "Range to start of test pulse" ;
                tst_pls_rng0:units = "meters" ;
                tst_pls_rng0:_FillValue = 0.f ;
        float tst_pls_rng1(numSystems) ;
                tst_pls_rng1:long_name = "Range to end of test pulse" ;
                tst_pls_rng1:units = "meters" ;
                tst_pls_rng1:_FillValue = 0.f ;
        double time_offset(Time) ;
                time_offset:long_name = "time offset of the current record from 
base_time" ;
                time_offset:units = "seconds" ;
                time_offset:_FillValue = 0. ;
        float Azimuth(Time) ;
                Azimuth:long_name = "Earth relative azimuth of the ray" ;
                Azimuth:Comment = "Degrees clockwise from true North" ;
                Azimuth:units = "degrees" ;
                Azimuth:valid_range = -360.f, 360.f ;
                Azimuth:missing_value = -999.f ;
                Azimuth:_FillValue = -888.f ;
        float Elevation(Time) ;
                Elevation:long_name = "Earth relative elevation of the ray" ;
                Elevation:Comment = "Degrees from earth tangent towards zenith" 
;
                Elevation:units = "degrees" ;
                Elevation:valid_range = -360.f, 360.f ;
                Elevation:missing_value = -999.f ;
                Elevation:_FillValue = -888.f ;
        short DBZ(Time, maxCells) ;
                DBZ:long_name = "Reflectivity factor" ;
                DBZ:units = "dBz" ;
                DBZ:scale_factor = 0.01f ;
                DBZ:add_offset = 0.f ;
                DBZ:missing_value = -32768s ;
                DBZ:_FillValue = -32768s ;
                DBZ:polarization = "Horizontal" ;
                DBZ:Frequencies_GHz = 2.80900001525879 ;
                DBZ:InterPulsePeriods_secs = 0.00104149997234344 ;
        short ZDR(Time, maxCells) ;
                ZDR:long_name = "Polarization_diversity" ;
                ZDR:units = "dBm" ;
                ZDR:scale_factor = 0.01f ;
                ZDR:add_offset = 0.f ;
                ZDR:missing_value = -32768s ;
                ZDR:_FillValue = -32768s ;
                ZDR:polarization = "Horizontal and Vertical" ;
                ZDR:Frequencies_GHz = 2.80900001525879 ;
                ZDR:InterPulsePeriods_secs = 0.00104149997234344 ;
        short LDR(Time, maxCells) ;
                LDR:long_name = "Linear Depolarization Ratio" ;
                LDR:units = "dBm" ;
                LDR:scale_factor = 0.01f ;
                LDR:add_offset = 0.f ;
                LDR:missing_value = -32768s ;
                LDR:_FillValue = -32768s ;
                LDR:polarization = "Horizontal" ;
                LDR:Frequencies_GHz = 2.80900001525879 ;
                LDR:InterPulsePeriods_secs = 0.00104149997234344 ;
        short NCP(Time, maxCells) ;
                NCP:long_name = "Normalized Coherent Power" ;
                NCP:units = "" ;
                NCP:scale_factor = 0.01f ;
                NCP:add_offset = 0.f ;
                NCP:missing_value = -32768s ;
                NCP:_FillValue = -32768s ;
                NCP:polarization = "Horizontal" ;
                NCP:Frequencies_GHz = 2.80900001525879 ;
                NCP:InterPulsePeriods_secs = 0.00104149997234344 ;
        short VR(Time, maxCells) ;
                VR:long_name = "Doppler velocity" ;
                VR:units = "meters/second" ;
                VR:scale_factor = 0.01f ;
                VR:add_offset = 0.f ;
                VR:missing_value = -32768s ;
                VR:_FillValue = -32768s ;
                VR:polarization = "Horizontal" ;
                VR:Frequencies_GHz = 2.80900001525879 ;
                VR:InterPulsePeriods_secs = 0.00104149997234344 ;
        short PHIDP(Time, maxCells) ;
                PHIDP:long_name = "Differential Phase" ;
                PHIDP:units = "deg." ;
                PHIDP:scale_factor = 0.1f ;
                PHIDP:add_offset = 0.f ;
                PHIDP:missing_value = -32768s ;
                PHIDP:_FillValue = -32768s ;
                PHIDP:polarization = "Horizontal and Vertical" ;
                PHIDP:Frequencies_GHz = 2.80900001525879 ;
                PHIDP:InterPulsePeriods_secs = 0.00104149997234344 ;
        short RHOHV(Time, maxCells) ;
                RHOHV:long_name = "Copolar Cross Correlation" ;
                RHOHV:units = "" ;
                RHOHV:scale_factor = 0.001f ;
                RHOHV:add_offset = 0.f ;
                RHOHV:missing_value = -32768s ;
                RHOHV:_FillValue = -32768s ;
                RHOHV:polarization = "Horizontal and Vertical" ;
                RHOHV:Frequencies_GHz = 2.80900001525879 ;
                RHOHV:InterPulsePeriods_secs = 0.00104149997234344 ;
        short SW(Time, maxCells) ;
                SW:long_name = "Spectral width" ;
                SW:units = "meters/second" ;
                SW:scale_factor = 0.01f ;
                SW:add_offset = 0.f ;
                SW:missing_value = -32768s ;
                SW:_FillValue = -32768s ;
                SW:polarization = "Horizontal" ;
                SW:Frequencies_GHz = 2.80900001525879 ;
                SW:InterPulsePeriods_secs = 0.00104149997234344 ;
        short DM(Time, maxCells) ;
                DM:long_name = "Reflected power in dBm" ;
                DM:units = "dBm" ;
                DM:scale_factor = 0.01f ;
                DM:add_offset = 0.f ;
                DM:missing_value = -32768s ;
                DM:_FillValue = -32768s ;
                DM:polarization = "Horizontal" ;
                DM:Frequencies_GHz = 2.80900001525879 ;
                DM:InterPulsePeriods_secs = 0.00104149997234344 ;
        short DX(Time, maxCells) ;
                DX:long_name = "Crosspole Reflected power in dBm" ;
                DX:units = "dBm" ;
                DX:scale_factor = 0.01f ;
                DX:add_offset = 0.f ;
                DX:missing_value = -32768s ;
                DX:_FillValue = -32768s ;
                DX:polarization = "Horizontal and Vertical" ;
                DX:Frequencies_GHz = 2.80900001525879 ;
                DX:InterPulsePeriods_secs = 0.00104149997234344 ;

// global attributes:
                :Content = "This file contains one scan of remotely sensed 
data" ;
                :Conventions = "NCAR_ATD-NOAA_ETL/Scanning_Remote_Sensor" ;
                :Instrument_Name = "SPOL" ;
                :Instrument_Type = "GROUND" ;
                :Scan_Mode = "RHI" ;
                :Start_Time = "07/05/100 23:49:39.847" ;
                :Year = 2000 ;
                :Month = 7 ;
                :Day = 5 ;
                :Hour = 23 ;
                :Minute = 49 ;
                :Second = 39 ;
                :Volume_Number = 1 ;
                :Scan_Number = 8 ;
                :Num_Samples = 128 ;
                :Index_of_horizontal_information = 0 ;
                :Project_Name = "STEPS2000" ;
                :Production_Date = "Fri Jul  7 13:53:21 2000" ;
                :Producer_Name = "NSF/UCAR/NCAR/ATD" ;
                :Software = "xltrs" ;
}