netcdf wcr2prototypenc { //****************************************************************************// //* Experiment ICET11 *// //* WCR prototype cdl file for generating ICET11 WCR netcdf files *// //* applicable to the following DAQ (data acquisition) algorithms/modes: *// //* SPP - single antenna, single-polarization pulse-pair mode *// //* CPP - single/multi-antenna, single/dual-pol pulse-pair modes *// //* FFT - single/multi-antenna, single/dual-pol Doppler spectra mode *// //* *// //* 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 serve as a help document for all processed variables *// //* *// //****************************************************************************// dimensions: beam = 1 ; // number of active beams //MAB fftlen = 1 ; // number of spectral lines for FFT modes //FFT np = 1 ; // number of reflectivity products (np=nv=2 for SPP) //MNP nv = 1 ; // number of Doppler vel. products (np=nv for FFT modes) //MNV profile = 1 ; // radar profiles range = 1 ; // radar range gates vector3 = 3 ; // Earth coordinate system vector dimension variables: //*.....................................................................*// //* Dimensions related variables *// //*.....................................................................*// double time(profile); // time stamps representing the middle of radar // profile dwell(integration) time (WCRdaqint) time:long_name = "Profile acquisition time"; // according to WCRirigflag time:units = "seconds since 1970-01-01 00:00:00 +0000" ; time:strptime_format = "seconds since %F %T %z" ; time:source = " " ; 'initialized w/ DAQ server time or ACID master time time:status = "WCRdaqint/2,WCRUTCcor,WCRtimeoffset applied" ; //added cor. int irigstatus(profile) ; // irigstatus (8-bit word) // 2nd bit: 0|1 free running|IRIGB sync irigstatus:long_name = "WCR TFP card IRIG-B status 8-bit word" ; irigstatus:units = "" ; float range(range) ; range:long_name = "Range to (geometric) center of radar range gates" ; range:units = "meters" ; float range_cor(range) ; range_cor:long_name = "Received power range correction (1/r^2, r in km)" ; range_cor:units = "dB" ; //*.....................................................................*// //* Reflectivity and velocity variables *// //*.....................................................................*// float reflectivity(profile,range) ; // single power product //SNP float reflectivity(np,profile,range) ; // multiple power products //MNP reflectivity:long_name = "Equivalent reflectivity factor" ; reflectivity:units= "mm^6/m^3" ; reflectivity:_FillValue = -32767.f ; reflectivity:antenna =" "; // list(np) of active antenna names reflectivity:beamid = 0s; // list(np) of active antenna beam IDs reflectivity:calcoef=0.f; // list(np) of calibration coef. in dBZ@1km reflectivity:isoxpol=0.f; // list(np) of cross-pol isolation in dB reflectivity:npid=0; // list(np) of reflectivity product IDs reflectivity:receiver = 0b; // list(np) of receivers used: 0=V,1=H reflectivity:rxpol = 0s; // list(np) of received polarization;0=v,1=h reflectivity:txpol = 0s; // list(np) of transmitted polarization reflectivity:status="mean noise subtracted, no threshold applied, no atten.correction"; byte reflectivity_mask(profile,range) ; // target mask //SNP byte reflectivity_mask(np,profile,range);// target mask //MNP reflectivity_mask:long_name = "Target mask(1=target,0=no signal)" ; reflectivity_mask:units = "" ; reflectivity_mask:beamid = 0s; reflectivity_mask:npid=0; reflectivity_mask:values = 0,1;// mask allowed values reflectivity_mask:valuename = "below_mean_noise,above_3_noise_StDev"; float velocity(profile,range) ; // single velocity product //SNV float velocity(nv,profile,range) ; // multiple velocity products //MNV velocity:long_name = "Doppler radial velocity. Positive is toward the radar" ; velocity:units = "m/s" ; velocity:_FillValue = -32767.f ; velocity:antenna =" "; // list(nv) of active antenna names velocity:beamid = 0s; // list(nv) of active beam IDs velocity:nvid=0; // list(nv) of velocity product IDs velocity:maxvel = 0.f ; // list(nv) of Doppler Nyquist velocity velocity:rmcor = 0s; // radar moment correction: // 0|1=not applied|applied velocity:refframe="Earth: azimuth and elevation"; // radial velocity reference coordinate // system: // ground: 'Earth: azimuth and elevation' // AC raw Doppler:'aircraft (x:nose,y:right_wing,z:down*)' // AC corrected: 'Earth (x:East,y:North,z:Up*)' // * - the radial velocity sign depends on // the beam orientation since positive // is always toward the radar velocity:shift = "none" ; // Velocity shift status velocity:shiftid = 0s ; // Velocity shift status ID velocity:dependencies = "ACID IRS variables" ;// ACID=N2UW,N130AR,GROUND velocity:status = " " ;// uncor./corrected for platform motion velocity:statusid= " " ;// 0|1=uncorrected/corrected Doppler //*.....................................................................*// //* Auxiliary reflectivity and velocity associated variables *// //*.....................................................................*// float noise(profile) ; // single power product //SNP float noise(np,profile) ; // multiple power products //MNP noise:long_name = "Receiver noise power in mm^6/m^3 at 1 km" ; noise:units = "mm^6/m^3"; // equivalent mm^6/m^3 at 1 km noise:receiver = 0b; // receivers used for the np products; // 0=V(Vrx),1=H(Hrx) noise:smooth = 101; // # of moving-averaged noise samples noise:source =" "; // list(np); noise source names ('RM','WL') float noisestd(profile) ; // single power product //SNP float noisestd(np,profile) ; // multiple power products //MNP noisestd:long_name = "Std. Dev. of noise power in mm^6/m^3 @ 1 km" ; noisestd:units = "mm^6/m^3";// equivalent mm^6/m^3 at 1 km noisestd:receiver = 0b; // Rx for each reflectivity product;0=V,1=H noisestd:smooth = 101; // # of moving-averaged noise samples //*.....................................................................*// float ppnm(profile) ; // single velocity product //PPS float ppnm(nv,profile) ; // multiple velocity products //PPT ppnm:long_name = "Pulse Pair Noise magnitude in mW" ; //PPM ppnm:units = "mW" ; //PPM ppnm:receiver = 0b; // pulse pair 1st pulse receiver //PPM ppnm:receiver2 = 0b; // pulse pair 2nd pulse receiver //PPM float ppmag(profile,range) ; // single velocity product //PPS float ppmag(nv,profile,range) ; // multiple velocity products //PPT ppmag:long_name = "Pulse Pair magnitude in mW" ; //PPM ppmag:units = "mW" ; //PPM ppmag:_FillValue = -32767.f; //PPM ppmag:beamid = 0s; // list of active beam IDs //PPM ppmag:rxpol = 0s; // list of 1st pp pulse Rx polarization //PPM ppmag:rxpol2= 0s; // list of 2nd pp pulse Rx polarization //PPM ppmag:txpol = 0s; // list of 1st pp pulse Tx polarization //PPM ppmag:txpol2 =0s; // list of 2nd pp pulse Tx polarization //PPM //*.....................................................................*// //* FFT algorithms related variables *// //*.....................................................................*// float psd_range(fftlen); //FF1 float psd_range(np,fftlen); //FF2 psd_range:long_name = "PSD velocity axes for FFT algorithms"; //FFT psd_range:units = "m/s" ; //FFT psd_range:antenna= " "; // antenna names matching beam ID //FFT psd_range:beamid= " "; // active beam IDs //FFT float psd_noise(profile,fftlen) ; // single FFT product //FFS float psd_noise(np,profile,fftlen) ; // multiple FFT products //FFM psd_noise:long_name = "Receiver Noise Power Spectral Density " ; //FFT psd_noise:units = "mW/m/s" ; //FFT psd_noise:receiver = 0b ; //FFT float psd(profile,range,fftlen) ; // single FFT product //FFS float psd(np,profile,range,fftlen) ; // multiple FFT products //FFM psd:long_name = "Received Power Doppler Spectra"; //FFT psd:units = "mW/m/s" ; //FFT psd:_FillValue = -32767.f; //FFT psd:average = 0; // number of averaged spectra in DAQ //FFT psd:beamid = 0s; //FFT psd:receiver = 0b; //FFT psd:resolution = 0.0f; // spectral lines resolution in m/s //FFT psd:rxpol = 0s ; //FFT psd:txpol = 0s ; //FFT psd:status = "uncorrected for platform motion" ; //FFT psd:window = " "; // spectral window used, e.g.,hanning //FFT //*.....................................................................*// //* Ancillary variables *// //*.....................................................................*// //* Note: When beam dimension is present the variables are written *// //* sorted by beam ID (1,2,...). This is different than the beam *// //* dimension for every reflecitivity and velocity variables *// //* product, which are written in the beam ID order determined *// //* by the radar data acquisition system. *// //*.....................................................................*// float wcraspect(profile) ; // range/profile ratio based on ACID air speed wcraspect:long_name = "WCRrangesampling/(WCRtimeint*tas)" ; wcraspect:units = "" ; wcraspect:_FillValue = -32767.f; //for any tas<50 or tas>200 m/s wcraspect:dependencies = "ACID tas" ; // ACID=N2UW or N130AR float wcrbeamacvec(vector3); // single-antenna/beam //SAB float wcrbeamacvec(beam,vector3) ; // multi-antenna/beam //MAB wcrbeamacvec:long_name = "Radar beam unit vector in platform coordinates" ; wcrbeamacvec:units = "" ; // AC coord(x,y,z): (ac_axis,right_wing,down) wcrbeamacvec:_FillValue = -32767.f; wcrbeamacvec:beamid = 0s ; wcrbeamacvec:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float wcrbeamvector(profile,vector3); // single-antenna/beam //SAB float wcrbeamvector(beam,profile,vector3) ; // multi-antenna/beam //MAB wcrbeamvector:long_name = "(East,North,Up) radar beam unit vectors" ; wcrbeamvector:units = "" ; wcrbeamvector:_FillValue = -32767.f; wcrbeamvector:beamid = 0s ; wcrbeamvector:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float acvcbeam(profile) ; // single-antenna/beam //SAB float acvcbeam(beam,profile) ; // multi-antenna/beam //MAB acvcbeam:long_name = "Platform velocity component along WCR beam. Positive is away from the radar" ; acvcbeam:units = "m/s" ; acvcbeam:_FillValue = -32767.f; acvcbeam:beamid = 0s ; acvcbeam:dependencies = "ACID IRS variables, wcrbeamvector" ; float acvcmask(profile) ; acvcmask:long_name = "Mask for velocity component along WCR beam" ; acvcmask:units = "m/s" ; acvcmask:_FillValue = -32767.f; acvcmask:values = 0,1;// mask allowed values; 0=bad/missing value acvcmask:valuename = "missing_value,valid_value"; acvcmask:dependencies = "ACID IRS variables" ; float acwcbeam(profile) ; // single-antenna/beam //SAB float acwcbeam(beam,profile) ; // multi-antenna/beam //MAB acwcbeam:long_name = "Platform measured wind component along WCR beam. Positive is away from the radar" ; acwcbeam:units = "m/s" ; acwcbeam:_FillValue = -32767.f; acwcbeam:beamid = 0s ; acwcbeam:dependencies = "ACID derived wind variables, wcrbeamvector" ; //*.....................................................................*// //* Platform position variables *// //*.....................................................................*// double LON(profile) ; LON:long_name = "Radar platform Longitude" ; LON:units = "degree_east" ; LON:_FillValue = -32767.d; LON:source = "ACID" ; LON:dependencies = "" ; // from AC global attribute 'coordinates' double LAT(profile) ; LAT:long_name = "Radar platform Latitude" ; LAT:units = "degree_north" ; LAT:_FillValue = -32767.d; LAT:source = "ACID" ; LAT:dependencies = "" ; // from AC global attribute 'coordinates' float ALT(profile) ; ALT:long_name = "Radar platform Altitude from MSL" ; ALT:units = "meters" ; ALT:_FillValue = -32767.f; ALT:source = "ACID" ; ALT:dependencies = "" ; // from AC global attribute 'coordinates' float TAS(profile) ; TAS:long_name = "Radar platform True airspeed" ; TAS:units = "m/s" ; TAS:_FillValue = -32767.f; TAS:source = "ACID" ; TAS:dependencies = "" ; // AC data file variable used for tas // global attributes: //*.....................................................................*// //* The following attributes (except AcquisitionDate, TimeInterval, *// //* PlatformDataSource, and PlatformDateProcessed 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 //*.....................................................................*// :AcquisitionDate = 0 ; // YYYYMMDD //P :Categories = "Reflectivity, DopplerVelocity" ; //E :Conventions = "" ; //F :ProjectName = "Ice in Clouds Experiment - Tropical (ICE-T)" ; //E :ProjectDates = "1-30 July 2011"; //E :PrincipalInvestigators = "Andrew Heymsfield, NCAR" ; //E :Platform = "N130AR" ; // N2UW or N130AR //E :PlatformDataSource = " "; //P :PlatformDateProcessed = " " ; //P //*......... Start-End time of the data recorded in the file ...........*// :TimeInterval = " " ; //P //*............... Radar Configuration Parameters ......................*// :WCR_Freq = 94.92f ; // carrier frequency in GHz //F :WCR_Lambda = 0.00316f ; // carrier wavelength in meters //F //*.....................................................................*// //* Antenna and beam attribute lists match the radar transmitter ports *// //*.....................................................................*// //* N130AR (utilizes 4 of the 5 radar transmitter ports) *// :WCR_AntID = 1s, 2s, 4s, 4s ; // antenna IDs //F :WCR_AntName = "up,down,down-aft-h,down-aft-v"; // antenna names //F :WCR_BeamID = 1s, 2s, 4s, 4s ; // beam IDs //F :WCR_BeamName = "up,down,down-aft,down-aft"; // beam names //F :WCR_BeamPol = "h, h, h, v"; // polarization //F :WCR_BeamRxID = 1s, 1s, 1s, 0s ; // 0=Vrx,1=Hrx //F :WCR_BeamWidth= 0.6f,0.7f,0.7f,0.7f; // antenna HPBW in degree //F //*.....................................................................*// :WCR_DopVelConvention = "positive is toward the radar" ; //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 laterally w.r.t. platform logitudinal axis rotation(roll)" ;//F :WCR_PolID = 0s, 1s ; // polarization ID: 0=v-pol, 1=h-pol //F :WCR_PolName = "v,h"; // polarization names //F :WCR_RxID = 0s,1s; // receiver ID; 0=Vrx,1=Hrx //F :WCR_RxName = "V,H"; // receiver names; 2 receivers: Vrx and Hrx //F //*.....................................................................*// //* Beam Calibration Date and Status *// //*.....................................................................*// :WCRbeamcaldate = 0 ; // beam angles effective date //P :WCRbeamcalfile = "see WCRconfigfile, wcrbeamacvec" ; //E :WCRbeamcalstatus = "estimated accuracy/precision: currently not available"; //E //*.....................................................................*// //* Power Calibration Date and Status *// //*.....................................................................*// :WCRcalpwrdate = 0 ; // calib. consts effective date //P :WCRcalpwrfile = "see WCRconfigfile, reflectivity:calcoef"; //E :WCRcalpwrstatus = "estimated accuracy/precision: currently not available"; //E //*.....................................................................*// //* WCR2 data acquisition(DAQ) and processing related attributes *// //*.....................................................................*// :WCRcdlfile = " " ; // cdl source file used //P :WCRconfigfile = " " ; // WCR2 configuration file used //P :WCRdaqalg = " " ; // wcrheader: DSP algorithm used in DAQ //P :WCRdaqfile = " " ; // data acquisition source file //P :WCRdaqint = 0.f ; // radar dwell time in msec //P :WCRdaqrev = "wcr2 rev. 1.0" ; // acquisition software revision //F //*.....................................................................*// :WCRmaxrange=0.f // wcrheader: maximum recorded range in km //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 :WCRprofiles = 0,0; // processed: first,last processed profile //P :WCRpulsewidth = 0.f ; // wcrheader: Tx pulse width in ns //P :WCRpulseav = 0 ; // wcrheader: number of pulses averaged in DAQ //P :WCRrangegates = 0 ; // wcrheader: number of sampled range gates //P :WCRrangeresolution=0 ;// wcrheader: WCR range resolution in meters //P :WCRrangesampling = 0 ;// wcrheader: WCR DAQ range sampling in meters //P :WCRstatpps=0,0,0 ; // min,max,mean # profiles per second //P :WCRstattimeint=0.f,0.f,0.f,0.f; // min,max,mean,std prof timeint.in ms //P :WCRtimeint = 0.f ; // processed: average time int. between profs. //P :WCRtxseq=''; // wcrheader: Tx sequence by port name //P //*.....................................................................*// :WCRtimeoffset = 0.d;// derived: offset applied to WCR time to sync //P // with the platform time stamps :WCRUTCcor = 0.d; // derived: UTC corr. applied to WCR time stamps //P //*.....................................................................*// :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 //*.....................................................................*// }