netcdf wcrprototypenc { //****************************************************************************// //* Experiment VOCALS08 (15 Oct - 15 Nov 2008) *// //* WCR prototype cdl file used to generate VOCALS08 WCR netcdf files *// //* applicable to the following WCR modes (DAQ algorithms, WCRdaqalg): *// //* SPPMAG - single-antenna single-polarization *// //* PPMAG - multiple-antenna single-polarization *// //* FFT - single-antenna single-polarization //* For more information on the modes and DAQ algorithms see *// //* http://www-das.uwyo.edu/wcr *// //* Attention: For those using processing software with 'column major' *// //* order for multi-dimensional arrays (e.g., IDL, FORTRAN), *// //* keep in mind that the order in which the dimensions will *// //* be loaded in, say IDL, is reversed to the one shown in *// //* this file header (which follows 'row major' order). *// //* This file can also serve as help document for the archived variables *// //* *// //****************************************************************************// dimensions: profile = 1 ; // radar profiles; slightly irregularly sampled in time range = 1 ; // radar range gates //* number of co-pol/same-beam pulse pairs(velocity) for PPMAG algs; *// //* it is usually equal to beam dimension for multi-beam config. *// copp = 1 ; // number of co-pol pulse pairs(velocity) for PPMAG algs//PPM hbeam = 1 ; // number of active beams for H-receiver (PPMAG only) //PPM vbeam = 1 ; // number of active beams for V-receiver (PPMAG only) //PPM beam = 1 ; // number of all active beams for PPMAG algs //PPM bin = 1 ; // spectral lines for FFT algorithm //FFT vector3 = 3 ; // Earth coordinate system vector dimension variables: int base_time ; // Time (usually UTC) in UNIX format base_time:long_name = "Start time" ;// according to WCRirigflag status base_time:units = "seconds since 1970-01-01 00:00:00 +0000" ; base_time:source = "N130AR" ; base_time:status = "UTCcorrection applied" ; // usually GPS leap seconds double time_offset(profile) ; time_offset:long_name = "Profile acquisition time offset from base_time"; time_offset:units = "seconds since base_time" ; time_offset:source = "N130AR" ; time_offset:status = "Timeoffsetsync applied" ; // to match AC INS/GPS double time(profile) ; // base_time+time_offset time:long_name = "Profile acquisition time"; // according to WCRirigflag time:units = "seconds since 1970-01-01 00:00:00 +0000" ; time:source = "according to WCRirigflag" ; time:status = "UTCcorrection and Timeoffsetsync applied" ; float range(range) ; range:long_name = "Range to (geometric) center of radar range gates" ; range:units = "meters" ; range:source = "WCR" ; float range_correction(range) ; range_correction:long_name = "Radar power range correction" ; range_correction:units = "dB" ; range_correction:source = "WCR" ; float psd_range(bin); //FFT psd_range:long_name = "PSD velocity range for FFT algorithm"; //FFT psd_range:units = "m/s" ; //FFT psd_range:source = "WCR" ; //FFT float hmnoise(profile) ; //SPP float hmnoise(profile,hbeam) ; //PPM //*hmnoise:long_name = "H-ch noise power in mm^6/m^3 @ 1 km" ; *// hmnoise:long_name = "Mean noise subtracted from H-ch received power in dBZ@1km" ; hmnoise:units = "dBZ" ; // equivalent dBZ or mm^6/m^3 at 1 km hmnoise:receiver = "H" ; // receiver (Rx) noise channel used hmnoise:pulse = " "; // noise meas. from these pulses in a burst; // pulses sorted by min mean noise hmnoise:smooth = 0; // # of moving-averaged noise samples hmnoise:source = "WCR, derived variable, wcrwrite1nc" ; float hsnoise(profile) ; //SPP float hsnoise(profile,hbeam) ; //PPM hsnoise:long_name = "Std. Dev. of noise for H-ch reflectivity at 1km" ; hsnoise:units = "dBZ" ; // equivalent dBZ or mm^6/m^3 at 1 km hsnoise:source = "WCR, derived variable, wcrwrite1nc" ; float vmnoise(profile) ; //SPP float vmnoise(profile,vbeam) ; //PPM //*vmnoise:long_name = "V-ch noise power in mm^6/m^3 @ 1 km" ; *// vmnoise:long_name = "Mean noise subtracted from V-ch received power in dBZ@1km" ; vmnoise:units = "dBZ" ; // equivalent dBZ or mm^6/m^3 at 1 km vmnoise:receiver = "V" ; // receiver noise channel used vmnoise:pulse = " "; // noise meas. from these pulses in a burst; // pulses sorted by min mean noise vmnoise:smooth = 0; // # of moving-averaged noise samples vmnoise:source = "WCR, derived variable, wcrwrite1nc" ; float vsnoise(profile) ; //SPP float vsnoise(profile,vbeam) ; //PPM vsnoise:long_name = "Std. Dev. of noise for V-ch reflectivity at 1km" ; vsnoise:units = "dBZ" ; // equivalent dBZ or mm^6/m^3 at 1 km vsnoise:source = "WCR, derived variable, wcrwrite1nc" ; float hh(profile,range) ; //SPP float hh(profile,range,hbeam) ; //PPM hh:long_name = "Equivalent H_beam(hh-copol) channel reflectivity factor" ; hh:units = "dBZ" ; // equivalent dBZ or mm^6/m^3 at 1 km hh:missing_value = -32767.f ;// value assigned to below noise threshold hh:receiver = "H" ; // receiver channel used hh:transmitter = " " ; // transmitter channel(s)/port(s) used hh:status="mean noise subtracted, no threshold applied, no atten.correction"; hh:source = "WCR, derived variable, wcrwrite1nc" ; float vv(profile,range) ; //SPP float vv(profile,range,vbeam) ; //PPM vv:long_name = "Equivalent v_beam(vv-copol if V1) channel reflectivity factor"; vv:units = "dBZ" ; // equivalent dBZ or mm6/m3 at 1 km vv:missing_value = -32767.f ;// value assigned to below noise threshold vv:receiver = "V" ; // receiver channel used vv:transmitter = " " ; // transmitter channel(s)/port(s) used vv:status="mean noise subtracted, no threshold applied, no atten.correction"; vv:source = "WCR, derived variable, wcrwrite1nc" ; float dv(profile,range,copp) ; // for PPMAG algorithms only //PPM float dv(profile,range) ; // for SPPMAG/FFT algorithms only //SPP dv:long_name = "Doppler radial velocity. Positive is toward the radar" ; dv:units = "m/s" ; dv:missing_value = -32767.f ;// value assigned to below noise threshold dv:pulsepair =" " ; // co-channel pulse pairs or for FFT only // Tx port, attribute renamed to 'beamchannel' dv:maxvel = 0.f, 0.f ; // WCR Doppler Nyquist velocity dv:dvshift="none" ; // Velocity shift status according to UNFOLD: // 'none' - no shift applied // 'centered along acwcbeam' // '[u,v,w]' shift vector, where the values // can be: actual value for the component, // 777 - mean of AC measured // 888 - AC measured for each profile dv:status = " " ; // uncor./corrected for aircraft motion dv:dependencies = "N130AR IRS variables" ; dv:source = "WCR, derived variable, wcrwrite1nc,wcrwrite2nc" ; float fftpsd(profile,range,bin) ; //FFT fftpsd:long_name = "Co-pol or H/V-beam Power Spectral Density"; //FFT fftpsd:units = "mW/m/s" ; //FFT fftpsd:receiver = " "; //FFT fftpsd:transmitter = " "; //FFT fftpsd:prf = 0.f; //FFT fftpsd:status = "uncorrected for aircraft motion" ; //FFT fftpsd:source = "WCR, derived variable, wcrwrite1nc" ; //FFT float fftnoise(profile,bin) ; //FFT fftnoise:long_name = "Noise Power Spectral Density " ; //FFT fftnoise:units = "mW/m/s" ; //FFT fftnoise:receiver = " " ; //FFT fftnoise:transmitter = " " ; //FFT fftnoise:source = "WCR, derived variable, wcrwrite1nc" ; //FFT float wcraspect(profile) ; // range/profile ratio based on N130AR air speed wcraspect:long_name = "WCRrangesampling/(WCRtimeint*tas)" ; wcraspect:units = "" ; wcraspect:missing_value = -32767.f; //for any tas<50 or tas>200 m/s wcraspect:dependencies = "N130AR tas" ; wcraspect:status = "constant, using N130AR 90 m/s airspeed" ; wcraspect:source = "N130AR/WCR,derived variable,wcrwrite1nc,wcrwrite2nc"; float wcrbeamvector(profile, vector3, beam); // for PPMAG alg only //PPM float wcrbeamvector(profile, vector3) ; // for SPPMAG alg only //SPP wcrbeamvector:long_name = "(East,North,Up) radar beams unit vector" ; wcrbeamvector:units = "" ; wcrbeamvector:beamchannel = " " ;// WCR Rx ports used (H1,H2,V1,V2,V3) wcrbeamvector:dependencies = "N130AR IRS variables" ; wcrbeamvector:source = "N130AR/WCR, derived variable, wcrwrite2nc" ; float acvcbeam(profile,beam) ; // for PPMAG alg only //PPM float acvcbeam(profile) ; // for SPPMAG alg only //SPP acvcbeam:long_name = "Aircraft velocity component along WCR beam. Positive is away from the radar" ; acvcbeam:units = "m/s" ; acvcbeam:beamchannel = " " ;// WCR Rx ports used (H1,H2,V1,V2,V3) acvcbeam:dependencies = "N130AR IRS variables, wcrbeamvector" ; acvcbeam:source = "N130AR/WCR, derived variable, wcrwrite2nc" ; float acwcbeam(profile,beam) ; // for PPMAG alg only //PPM float acwcbeam(profile) ; // for SPPMAG alg only //SPP acwcbeam:long_name = "Aircraft measured wind component along WCR beam. Positive is away from the radar" ; acwcbeam:units = "m/s" ; acwcbeam:beamchannel = " " ;// WCR Rx ports used (H1,H2,V1,V2,V3) acwcbeam:dependencies = "N130AR derived wind variables, wcrbeamvector" ; acwcbeam:source = "N130AR/WCR, derived variable, wcrwrite2nc" ; //*....................................................................*// //* Platform (aircraft) related variables //*....................................................................*// double LON(profile) ; LON:long_name = "Longitude" ; LON:units = "degree_east" ; LON:source = "N130AR" ; LON:dependencies = "" ; // from AC global attribute 'coordinates' double LAT(profile) ; LAT:long_name = "Latitude" ; LAT:units = "degree_north" ; LAT:source = "N130AR" ; LAT:dependencies = "" ; // from AC global attribute 'coordinates' float ALT(profile) ; ALT:long_name = "Altitude MSL" ; ALT:units = "meters" ; ALT:source = "N130AR" ; ALT:dependencies = "" ; // from AC global attribute 'coordinates' float TAS(profile) ; TAS:long_name = "True airspeed" ; TAS:units = "m/s" ; TAS:source = "N130AR" ; //*....................................................................*// // global attributes: //*....................................................................*// //* The following attributes (except AcquisitionDate, TimeInterval, *// //* AircraftDataSource, and AircrafDateProcessed should be *// //* checked/edited for every experiment *// //*....................................................................*// :Source = "University of Wyoming, Department of Atmospheric Science" ; //F :Address = "1000 E. University Ave., Laramie, WY 82071" ; //F :Phone = "(307) 766-5352" ; //F :Email = "atsc-cc@uwyo.edu"; //F :Categories = "Reflectivity, DopplerVelocity" ; //E :Conventions = "" ; //F :ProjectName = "VOCALS: VAMOS Ocean-Cloud-Atmosphere-Land Study" ; //E :ProjectDates = "15 October - 15 November 2008" ; //E :PrincipalInvestigators = "David Leon, Jefferson Snider, Univ. of Wyoming; Robert Wood, Univ. of Washington" ; //E //*....................................................................*// :Aircraft = "N130AR" ; //E :AircraftDataSource = " "; //P :AircraftDateProcessed = " " ; //P //*....................................................................*// :AcquisitionDate = " " ; //P :TimeInterval = " " ; //P //*....................................................................*// :WCR_Freq = 94.92f ; // carrier frequency in GHz //F :WCR_Lambda = 0.00316f ; // carrier wavelength in meters //F :WCR_Config = "One transmitter(Tx); Two receivers(Rx: H, V);Five Tx/Rx ports: H1,H2,V1,V2,V3;\n3 fixed antennas with single-polarization"; //F :WCR_AntConfig = "1: up, 2: down, 4: down-aft" ; //F :WCR_Polarization = "Linear: antenna config. dependent\nh-pol and v-pol refer to their corresponding\npolarizations when a WCR beam is pointing horizontally\nand normal to the aircraft axis" ;//F :WCR_Channels = "Tx via H1,or H2,or V2;\nRx on H1 or H2,or V2"; //F :WCR_ChannelConfig = "H-channels = H1: beam1,h-pol; H2: beam4,h-pol\nV-channels = V2: beam2,h-pol"; //F :WCR_BeamDesignation = "1:up, 2:down, 4:down-aft" ; //F :WCR_BeamWidth = 0.6f,0.7f,0.7f ; // antenna HPBW in degree //F //*....................................................................*// //* BeamConfig are all useful single- or multi-beam configurations *// //* that can be recorded in any one data file. *// :WCR_BeamConfig = 1s,2s,12s,24s,124s ; //F //* BeamChannel contains Tx/Rx port names that match BeamConfig. *// :WCR_BeamChannel = "H1;V2;H1,V2;V2,H2;H1,V2,H2"; //F //*....................................................................*// :WCR_DopVelConvention = "positive is toward the radar" ; //F //*....................................................................*// //* WCR_XX for N130AR: assign beam string names to the beam port IDs *// //*....................................................................*// :WCR_H1= "up" ; // beam string for H1 (beam1) port :WCR_V2= "down" ; // beam string for V2 (beam2) port :WCR_H2= "down-aft" ; // beam string for H2 (beam4) port //*....................................................................*// //* N130AR Antenna positions in meters and AC coord. system w.r.t IRS *// //*....................................................................*// :WCRant1pos = -11.67f,-0.56f,-3.29f; // up ant. pos. w.r.t. IRS //F :WCRant2pos = -16.64f,-0.32f,-2.32f; // down ant. pos. w.r.t. IRS //F :WCRant4pos = -16.55f,-0.35f,-1.87f; // down-aft antenna w.r.t. IRS //F //*....................................................................*// :WCRcalbeamdate = 20080131 ; // beam angles effective date //E :WCRcalbeamstatus = "up/down beams ~ 0.2/0.4 deg accuracy"; //E //*....................................................................*// //* N130AR NCAR Antenna beams unit vectors *// //*....................................................................*// //* UP (ICE-L) deg 87.5000 90.0000 177.500 *// :WCRbeam1upUnitVector = 0.0436195f, 0.0f, -0.9990482f; //E //* NADIR (ICE-L) deg 92.0000 89.4402 2.07547 *// :WCRbeam2UnitVector = -0.0349f, 0.00977f, 0.999344f; //E //* DOWN-AFT (ICE-L)deg 125.247 89.3697 35.2541 *// :WCRbeam4UnitVector = -0.5771f, 0.011f, 0.8166f; //E //*....................................................................*// //* Calibration Coefficients for the beam-channels used. *// //* Cross-pol calib. coeffs, when relevant, are assumed identical to *// //* their corresponding co-pol coefficients. *// //*....................................................................*// :WCRcalpwrdate = 20080926 ; // calib. consts effective date //E :WCRcalpwrstatus = "accuracy/precision:+-3.0/1.0"; // LogDet precis. //E :WCRcalHH1 = 56.5f ;// Calib. const., beam1, h-pol, 250ns pulse (dB) //E :WCRcalHH2 = 51.0f ;// Calib. const., beam4, co-pol, 250ns pulse (dB) //E :WCRcalVV1 =-999.f ;// Calib. const., beam1, v-pol, 250ns pulse (dB) //E :WCRcalVV2 = 50.5f ;// Calib. const., beam2, co-pol, 250ns pulse (dB) //E :WCRcalVV3 =-999.f ;// Calib. const., beam3, co-pol, 250ns pulse (dB) //E //*....................................................................*// :WCRcal100= 2.5f ; // calibration difference for 225/125 ns pulses //F :WCRcal500= -3.5f ; // calibration difference for 225/500 ns pulses //F //*....................................................................*// //* The attributes below are program updated for every WCR data file *// //*....................................................................*// :WCRactivebeamsconfig = 1 ;// active beams this file: e.g.,1,12,24,... //P :WCRdaqalg = " " ; // wcrheader: DSP algorithm used in DAQ //P :WCRtxseq = " " ; // wcrheader: Tx pulse sequence in a burst //P :WCRppseq = " " ; // wcrheader: pulse pair sequence //P :WCRpulsepacket = 1 ; // # of Tx pulses in a burst //P :WCRcdlfile = " " ; // cdl source file used //P :WCRdaqfile = " " ; // data acquisition source file //P :WCRpulsewidth = 0.f ; // wcrheader: Tx pulse width in ns //P :WCRpulseav = 0 ; // wcrheader: number of pulses averaged in DAQ //P :WCRprfKHz = 0.f ; // wcrheader: pulse repetition frequency in KHz //P :WCRprfrange = 0.f ; // wcrheader: maximum unambiguous range in km //P :WCRprfvelocity = 0.f ;// wcrheader: +- maximum unambiguous velocity //P :WCRrangegates = 0 ; // wcrheader: number of sampled range gates //P :WCRrangesampling = 0 ;// wcrheader: WCR DAQ range sampling in meters //P :WCRrangeresolution=0 ;// wcrheader: WCR range resolution in meters //P :WCRstattimeint=0.f,0.f,0.f ; // mean,max,min prof time interval in ms //P :WCRstatDSPclock=0.f,0.f,0.f ;// mean,max,min DSPs clock diff. in ms //P :WCRstatpps=0.f,0.f,0.f,0.f ; // mean,std,max,min profiles per second //P :WCRirigflag=-9 ; //clock used: 0-DSP,1-TFP free,2-TFP IRIG,-2-failure //P //*....................................................................*// :WCRfftbins=0 ; // number of spectral lines for FFT alg //P :WCRfftave=0 ; // number of averaged spectra in DAQ //P :WCRfftwin=" "; // spectral window used for FFT alg //P :WCRfftres=0.f ; // FFT alg spectral lines resolution in m/s //P //*....................................................................*// :WCRprofrange = 0,0; // processed: first,last profile //P :WCRprofav = 0 ; // processed: number of profiles averaged //P :WCRrangeav = 0 ; // processed: number of range gates averaged //P :WCRtimeint = 0.f ; // processed: median time interval between profs //P //*....................................................................*// :UTCcorrection = 0.; // derived: UTC corr. applied to WCR time stamps //P :Timeoffsetsync = 0.;// derived: offset applied to WCR time to sync //P // with the aircraft time stamps //*....................................................................*// :ProcessAuthor = " " ; // login account name //P :DateProcessed = " " ; //P :RevisionDate = " " ; //P :RevisionStatus = " " ; // test, preliminary, OK, etc. //P :RevisionNumber = 1 ; // the last processed revision //P :Revision_1 = " " ; //P //*....................................................................*// }