Example Dataset & MATLAB Reader

The OU-PRIME data is available in NetCDF format and has been designed to be WDSS-II friendly. Each data file contains all the attributes needed for WDSS-II to recognize the data type, site location, colormap, etc. Here is a set of data with example MATLAB code to read and display them. If you try them with your MATLAB, you should get something similar to the following screenshots. Download

Really Quick Start

Download the zip archive. Unzip it. Go to that folder and try MATLAB. Run
showmap
You should be presented with a list of filenames, choose any one of them. To view another set, do
clear cut
showmap
That is it! Wasn't it quick?

MATLAB reader

A MATLAB reader readprime() is included in the zipfile.

Syntax

cut = readprime(FILE)

Description

readprime(FILE) reads a NetCDF moment data FILE into MATLAB as a structure variable. Each NetCDF file from OU-PRIME contains only one sweep, one moment product. If multiple products are available, with similar filenames, the function will attempt to find and group them into the same structure.

Example

cut = readprime('OKU-20090613-032937-03-Z.nc')
The output is
cut =
       radar: 'OU-PRIME'
         lat: 35.1801
         lon: -97.4337
      elev_m: 342
    height_m: 366
        time: 7.3394e+05
         vcp: 'OUVCP21'
      el_deg: [720x1 single]
      az_deg: [720x1 single]
        prod: [6x1 struct]

cut.prod(1) =
      type: 'Z'
     ngate: 960
    delr_m: 125
      data: [960x720 single]

cut.prod(2) =
      type: 'V'
     ngate: 960
    delr_m: 125
      data: [960x720 single]
Say if you wanted to access the data of reflectivity, i.e., a matrix of 960 x 720 elements, it should be referred to as
cut.prod(1).data = 
    [  z(1,1)   z(1,2)   z(1,3) ...   z(1,720);
       z(2,1)   z(2,2)   z(2,3) ...   z(2,720);
       z(3,1)   z(3,2)   z(3,3) ...   z(3,720);
        :        :        :              :
        :        :        :              :
     z(960,1) z(960,2) z(960,3) ... z(960,720)]

Limitations

The function is implemented using the native support for netCDF from MATLAB. It should be portable across various platforms as long as MATLAB supports them. The function has been tested, however, only with the MATLAB release 2008b, 2009a, 2009b, 2010a on Mac OS X 10.6.2 and RedHat Linux 2.6.18.

Screenshots





NetCDF Header

dimensions:
	Azimuth = 720 ;
	Gate = 960 ;
variables:
	float Azimuth(Azimuth) ;
		Azimuth:Units = "Degrees" ;
	float Elevation(Azimuth) ;
		Elevation:Units = "Degrees" ;
	float Beamwidth(Azimuth) ;
		Beamwidth:Units = "Degrees" ;
	float GateWidth(Azimuth) ;
		GateWidth:Units = "Meters" ;
	float TxPower(Azimuth) ;
		TxPower:Units = "dBm" ;
	float Corrected_Intensity(Azimuth, Gate) ;
		Corrected_Intensity:Units = "dBZ" ;

// global attributes:
		:TypeName = "Corrected_Intensity" ;
		:DataType = "RadialSet" ;
		:Latitude = 35.1800994873047 ;
		:Longitude = -97.4337005615234 ;
		:Height = 342 ;
		:Time = 1244863777 ;
		:FractionalTime = 0. ;
		:attributes = "NyquistVelocity vcp radarName ColorMap" ;
		:NyquistVelocity-unit = "MetersPerSecond" ;
		:NyquistVelocity-value = "16.05" ;
		:vcp-unit = "dimensionless" ;
		:vcp-value = "OUVCP21_1deg" ;
		:radarName-unit = "dimensionless" ;
		:radarName-value = "OKU" ;
		:RangeToFirstGate = 0 ;
		:RangeToFirstGateUnits = "Meters" ;
		:RadarParameters = "PRF PulseWidth MaximumRange" ;
		:PRF-unit = "Hertz" ;
		:PRF-value = 1180 ;
		:PulseWidth-unit = "MicroSeconds" ;
		:PulseWidth-value = 0.8 ;
		:MaximumRange-unit = "KiloMeters" ;
		:MaximumRange-value = 120.f ;
		:Z_Calibration = 0.f ;
		:Zdr_Calibration = 0.f ;
		:C_Calibration = 32.f ;
		:ColorMap-unit = "dimensionless" ;
		:ColorMap-value = "Reflectivity" ;
		:Elevation = 1.5 ;
		:ElevationUnits = "Degrees" ;
		:MissingData = -99900. ;
		:RangeFolded = -99901. ;
		:MoreRadarParameters = "AntennaSpeed ClutterFilter" ;
		:AntennaSpeed-DegreesPerSecond = 15.f ;
		:ClutterFilter = "No Filter" ;
		:CalibrationParameters = "ZCal ZdrOffset NoiseSampleH NoiseSampleV" ;
		:ZCal-dB = -32.f ;
		:ZdrOffset-dB = 0.f ;
		:NoiseSampleH-value = 2.25f ;
		:NoiseSampleV-value = 2.01f ;
		:CensoringParameters = "LogNoiseThreshold CCOR SQIThreshold" ;
		:LogNoiseThreshold-dB = 0.0625f ;
		:CCOR-dB = 60.f ;
		:SQIThreshold-percent = 0.f ;
		:ConversionPlugin = "Vol2NetCDF v1.2 for EDGE 5.3" ;
		:ContactInformation = "http://arrc.ou.edu/ouprime" ;