netcdf wcr3l2gennc { //****************************************************************************// //* WCR prototype cdl file for generating WCR L2 netcdf files *// //* *// //* Level 2 WCR netcdf file is generated for every WCR active antenna *// //* (beam) recorded in the level 1 WCR netcdf data file as well as *// //* merged up and down beams if both are present *// //* *// //* Attention: For those using software/languages with 'column major' *// //* order for multi-dimensional arrays (e.g., FORTRAN), *// //* keep in mind that the order in which the dimensions will *// //* be loaded in is reversed to the one shown in this file *// //* header (which follows 'row major' order). The dimensions *// //* are also reversed when using IDL. *// //* This file can serve as a help document for level 2 processed data *// //* *// //****************************************************************************// dimensions: beam = 2; // beam dimension for merged up and down beams only //B12 gate = 1; // radar range gates for side-pointing beams //B0 gatealt = 1; // altitude gates for up- and down-pointing beams //B3 gateldr = 1; // altitude gates for LDR products //NL2 gatezdr = 1; // altitude gates for ZDR products //NZ2 nl = 1; // number of LDR products //NL1 np = 1; // number of reflectivity products //NP nv = 1; // number of Doppler velocity products //NV nz = 1; // number of ZDR products //NZ1 profile = 1; // radar profiles (time dimension) //PD 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 time:long_name = "Profile time stamp"; 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 float altrange(gatealt) ; // for up- and down-pointing beams altrange:long_name = "Altitude to (geometric) center of radar range gates" ; altrange:units = "meters" ; float ldrrange(gateldr) ; // if LDR products are available //* For side beams (updated by the software) *// //* ldrrange:long_name="Range to (geometric) center of LDR range gates";*// //* For up and/or down beams (update by the software) *// ldrrange:long_name = "Altitude to (geometric) center of LDR range gates" ; ldrrange:units = "meters" ; float zdrrange(gatezdr) ; // if ZDR products are available //* For side beams (updated by the software) *// //* zdrrange:long_name="Range to (geometric) center of ZDR range gates";*// //* For up and/or down beams *// zdrrange:long_name = "Altitude to (geometric) center of ZDR range gates" ; zdrrange:units = "meters" ; float radrange(gate) ; // for side beams radrange:long_name = "Range to (geometric) center of radar range gates" ; radrange:units = "meters" ; //*.....................................................................*// //* Reflectivity and velocity variables *// //* range dimension is replaced with: gate, gatealt, ... *// //*.....................................................................*// float reflectivity(profile,range) ; // single power product float reflectivity(np,profile,range) ; // multiple power products reflectivity:long_name = "Equivalent reflectivity factor" ; reflectivity:units= "dBZ"; reflectivity:_FillValue = -32767.f; //*npid code(9999999):(antID|rxpol|txpol|rxpol|txpol|receiver|receiver) *// reflectivity:nfilter=0; // noise reduction filter reflectivity:npid=0; // list(np) of reflectivity product IDs reflectivity:status="range correction applied, noise threshold applied, no atten.correction"; reflectivity:threshold="~10.*alog10(3*noisestd/sqrt(WCRavprofiles*WCRavrangegates))"; //* minimum detectable signal at 1 km *// //* (equal to the reflectivity threshold) *// float min_reflectivity(profile); // single reflectivity product //BN float min_reflectivity(np,profile) ; // multiple reflectivity prods //BN //* for up-down merged beam use beam dimension *// float min_reflectivity(beam,profile) ; // beam=0(up),1(down) beam //B12 min_reflectivity:long_name = "Minimum detectable reflectivity at 1 km" ; min_reflectivity:units= "dBZ" ; min_reflectivity:_FillValue = -32767.f ; float velocity(profile,range) ; // single velocity product float velocity(nv,profile,range) ; // multiple velocity products velocity:long_name = "Mean Doppler radial velocity" ; // see WCR_DopVelConvention velocity:units = "m/s"; velocity:_FillValue = -32767.f; //*nvid code(9999999):(antID|rxpol1|txpol1|rxpol2|txpol2|receiver1|receiver2)*// velocity:nvid=0; // list(nv) of velocity product IDs velocity:maxvel = 0.f; // list(nv) of Doppler Nyquist velocity velocity:algorithm = "puse-pair"; // 1st mom. calc. using pulse-pair alg. velocity:refframe="Earth (x:East,y:North,z:Up*)"; // * - the radial velocity sign depends on the beam // orientation and positive is always toward the // radar; one exception is the merged up-down // velocity for which up is positive velocity:status = "scatterers mean radial velocity, thresholded"; float ldr(profile,gateldr); // single LDR product //LDR float ldr(nl,profile,gateldr); // multiple LDR products //LDR ldr:long_name = "Linear Depolarization Ratio(hv/vv or vh/hh)"; //LDR ldr:units= "dB"; //LDR ldr:_FillValue = -32767.f; //LDR ldr:nlids= "vh"; // vh(hv): Tx h(v), Rx v(h) //LDR float zdr(profile,gatezdr); // single ZDR product //ZDR float zdr(nz,profile,gatezdr); // multiple ZDR products //ZDR zdr:long_name = "Differential Reflectivity (hh/vv)"; //ZDR zdr:units= "dB"; //ZDR zdr:_FillValue = -32767.f; //ZDR //*.....................................................................*// //* Ancillary variables *// //*.....................................................................*// float wcraspect(profile); // range/profile ratio based on ACID air speed wcraspect:long_name = "WCRrangegate/(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 wcrbeamvector(profile,vector3); //BN float wcrbeamvector(beam,profile,vector3); // beam=0(up),1(down) beam //B12 wcrbeamvector:long_name = "(East,North,Up) radar beam unit vectors" ; wcrbeamvector:units = ""; wcrbeamvector:_FillValue = -32767.f; wcrbeamvector:dependencies = "ACID IRS variables"; // ACID=N2UW or N130AR float acwcbeam(profile); //BN float acwcbeam(beam,profile); // beam=0(up),1(down) beam //B12 acwcbeam:long_name = "In situ measured wind component at platform altitude along WCR beam. Positive is away from the radar"; acwcbeam:units = "m/s"; acwcbeam:_FillValue = -32767.f; acwcbeam:dependencies = "ACID derived wind variables, wcrbeamvector"; //* Description of target mask(not available for side beams): *// //* LSB set bit(bit value): *// //* bit 0 (1) - beamID; set is up beam *// //* bit 1 (2) - beamID; set is down beam *// //* bit 2 (4) - beamID; set is down-slant beam *// //* bit 3 (8) - up or down beam is more than 6 deg off of vertical *// //* bit 4(16) - radar blind zone(mask value=16, combined up-down only)*// //* bit 5(32) - estimated surface return gate (mask value=32) *// //* bit 6(64) - sub-surface gate (mask value=64) *// //* bit 7(128)- pixel outside maximum radar range (mask value=128) *// //* MSB set bit(bit value): *// //* bit 8(256) - gate affected by surface clutter; set to max of *// //* ~75 m above surface for the down beam and ~150 m *// //* for the down-slant beam *// //* bit 11(2048)- down to up cross-talk: mask ~135m swath (cross- *// //* talk is exclusively caused by surface return *// short wcrmask(profile,gatealt); // beam mask for up and down beams only wcrmask:long_name = "Two byte target mask"; wcrmask:units = ""; wcrmask:activebits = 0,1,2,3,4,5,6,7,8; // currently active bits wcrmask:setbitname = "beamID,beamID,beamID,Off6,blind_zone,surface,sub_surface,out_of_range,surface_clutter"; //*.....................................................................*// //* Platform position variables *// //*.....................................................................*// float ALT(profile); ALT:long_name = "Radar platform Altitude from MSL" ; ALT:units = "meters"; ALT:_FillValue = -32767.f; ALT:source = "ACID"; float GS(profile) ; GS:long_name = "Radar platform ground speed"; GS:units = "m/s"; GS:_FillValue = -32767.f; GS:source = "ACID" ; double LAT(profile) ; LAT:long_name = "Radar platform Latitude" ; LAT:units = "degree_north" ; LAT:_FillValue = -32767.d; LAT:source = "ACID" ; double LON(profile) ; LON:long_name = "Radar platform Longitude"; LON:units = "degree_east"; LON:_FillValue = -32767.d; LON:source = "ACID" ; float TAS(profile) ; TAS:long_name = "Radar platform True airspeed"; TAS:units = "m/s"; TAS:_FillValue = -32767.f; TAS:source = "ACID" ; // global attributes: //*.....................................................................*// :Source = "University of Wyoming, Department of Atmospheric Science"; //F :Address = "1000 E. University Ave., Laramie, WY 82071"; //F :Phone = "(307) 766-5352"; //F :Email = "cgrasmic@uwyo.edu"; //F //*.....................................................................*// :Categories = "Reflectivity, DopplerVelocity"; //F :Conventions = ""; //F :DataDate = 0; // YYYYMMDD //P :DEMCopyright = "ASTER GDEM is a product of METI and NASA" ; //F :ProjectName = " "; //P :ProjectDates = " "; //P :PrincipalInvestigators = " "; //P //*.....................................................................*// :Platform = "ACID"; // N2UW or N130AR //P :PlatformDataSource = " "; //P :PlatformDateProcessed = 0; //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 //*.....................................................................*// :WCR_BeamID = 9s; // 0s, 1s, 2s, 3s, 4s, 12s //P :WCR_BeamName = ""; // side,up,down,side-fore,down-aft/fore,up-down //P :WCR_BeamWidth = 0.f; // antenna HPBW in degree: 0.5,0.6,0.7,0.8 //P //*.....................................................................*// :WCR_DopVelConvention = "positive is toward the radar"; // for up-down positive is up //P :WCR_Polarization = "Linear: antenna config. dependent; h-pol and v-pol\nrefer to their corresponding polarizations when\na WCR beam is pointing horizontally and laterally w.r.t.\nplatform 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 processing related attributes *// //*.....................................................................*// :WCRcdlfile = "wcr3l2gennc.cdl" ; // cdl level 2 source file //P :WCRl1file = " "; // wcr level 1 source netcdf file //P //*.....................................................................*// :WCRavprofiles = 0; // number of averaged L1 profiles //P :WCRavrangegates = 0; // number of averaged L1 range gates //P :WCRrangegate = 0; // range gate length in meters //P :WCRrangeresolution=0; // WCR range resolution in meters //P :WCRrangesampling = 0; // WCR range sampling in meters //P :WCRtimeint = 0.f ; // average time interval between profiles //P //*.....................................................................*// :ProcessAuthor = " " ; // login account name //P :DateProcessed = " " ; //P :RevisionDate = " " ; //P :RevisionStatus = "No known corrupted data" ; //F :RevisionNumber = 1 ; //F :Revision_1 = "Thresholded reflectivity and Doppler velocity" ; //F //*.....................................................................*// }