netcdf kprprototypenc { //****************************************************************************// //* Experiment *// //* KPR prototype cdl file for generating KPR LEVEL 1 netcdf *// //* files applicable to the following DAQ (data acquisition) modes: *// //* SPP - single/dual-antenna, single-polarization pulse-pair mode *// //* FFT_PP - single/dual-antenna, single/dual-pol Doppler spectra mode *// //* including pulse-pair calculation over the length of the FFT *// //* *// //* 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 all processed variables *// //* *// //****************************************************************************// dimensions: //* dim. names must include min of one space before and after the name *// beam = 2 ; // number of active antennas (if more than one) //MAB fftlen = 1 ; // number of spectral lines for FFT modes //FFT profile = 1 ; // radar profiles (time dimension) range = 1 ; // range gates for merged pulse and chirp data range_chirp = 1 ; // radar chirp range gates (radial range dimension) range_pulse = 1 ; // radar pulse range gates (radial range dimension) vector3 = 3 ; // Earth coordinate system vector dimension variables: //*.....................................................................*// //* Dimensions related variables *// //*.....................................................................*// double time(profile); // UTC stamps representing the middle of a radar // profile dwell(integration) time (KPRdaqint) time:long_name = "Profile acquisition time"; // based on NTP server time:units = "seconds since 1970-01-01 00:00:00 +0000"; // UTC UNIX secs time:strptime_format = "seconds since %F %T %z" ; time:source = "system clock disciplined by NTP " ; time:status = "KPRdaqint/2,KPRUTCcor,KPRtimeoffset applied" ; float range(range) ; // merged short pulse and chirp range range:long_name = "Merged Pulse&Chirp Range to (geometric) center of radar range gates" ; range:units = "meters" ; range:mrange = 0 ; // range at which pulse and chirp are merged (> 500 m) // (this is range_pulse[mrg_pulse]) range:mrg_pulse = 0 ; // pulse last range gate used in the merged data (0 is 1st gate) range:mrg_chirp = 0 ; // chirp first range gate used in the merged data (0 is 1st gate) float range_chirp(range_chirp) ; range_chirp:long_name = "Chirp Range to (geometric) center of radar range gates" ; range_chirp:units = "meters" ; float range_pulse(range_pulse) ; range_pulse:long_name = "Pulse Range to (geometric) center of radar range gates" ; range_pulse:units = "meters" ; float range_cor(range) ; // merged short pulse and chirp range correction range_cor:long_name = "Received power range correction (1/r^2, r in km)" ; range_cor:units = "dB" ; float range_cor_chirp(range_chirp) ; range_cor_chirp:long_name = "Received power range correction (1/r^2, r in km)" ; range_cor_chirp:units = "dB" ; float range_cor_pulse(range_pulse) ; range_cor_pulse:long_name = "Received power range correction (1/r^2, r in km)" ; range_cor_pulse:units = "dB" ; //*.....................................................................*// //* Reflectivity and velocity variables *// //*.....................................................................*// //*................... Merged Pulse&Chirp products .....................*// float reflectivity(profile,range) ; // single antenna //SAB float reflectivity(beam,profile,range) ; // two antennas //MAB reflectivity:long_name = "Noise Subtracted Power Equivalent reflectivity factor" ; reflectivity:units= "mm^6/m^3" ; reflectivity:_FillValue = -32767.f ; reflectivity:antenna =" "; // active antenna names reflectivity:antennaid =0s; // active antenna IDs reflectivity:calcoef=0.f,0.f; // pulse&chirp cal.coef in dBZ@1km reflectivity:averages=0s; // # of pulses averaged in DAQ //*id code(9999999):(antID:1,2|ipt_nsec|data type:1,2,3-pulse,chirp,merged)*// reflectivity:id=0; // reflectivity product IDs reflectivity:status="mean noise subtracted, range correction applied, no threshold applied, no atten.correction, merged short pulse and chirp data"; //* Description of 2-Byte (MSB,LSB) reflectivity mask: *// //* LSB set bit(bit value): *// //* bit 0 (1) - signal above 1 StDev of mean noise (LSB value=1) *// //* bit 1 (2) - signal above 2 StDev of mean noise (LSB value=3) *// //* bit 2 (4) - signal above 3 StDev of mean noise (LSB value=7) *// //* bit 3 (8) - signal in the receiver saturation range (LSB value=15)*// //* bit 4-7 - reserved *// //* Note: bits 0,1,2, and 3 are inter-dependent *// //* MSB set bit # (bit value): *// //* bit 8(256) - surface clutter affected gate (mask value>=256) *// //* bit 9(512) - estimated surface return gate (mask value=512) *// //* bit 10(1024)- sub-surface gate (mask value=1024) *// //* bit 11(2048)- isolation leak affected gate (mask value>=2048) *// //* bit 12-15 - reserved *// //* Note: Image pixels defined by MSB are preliminary and likely not *// //* very accurate. This is due to not very accurate *// //* antenna beam-pointing vector and errors in the INS data *// //* applicable to the location of the KPR antennas. *// short reflectivity_mask(profile,range) ; // target mask //SAB short reflectivity_mask(beam,profile,range); //MAB reflectivity_mask:antennaid = 0s; reflectivity_mask:long_name = "Two byte target mask" ; reflectivity_mask:units = "" ; reflectivity_mask:id=0; reflectivity_mask:activebits = 0,1,2,3 ;// currently active bits reflectivity_mask:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; reflectivity_mask:status="none set, LSB bits set; merged short pulse and chirp data"; reflectivity_mask:statusid=0s; // 0,1 float velocity(profile,range) ; // single antenna //SAB float velocity(beam,profile,range) ; // two antennas //MAB velocity:long_name = "Mean Doppler radial velocity. Positive is toward the radar" ; velocity:units = "m/s" ; velocity:_FillValue = -32767.f ; velocity:antenna =" "; // active antenna names velocity:antennaid = 0s; // active antenna IDs velocity:averages=0s; // pulsepairs averaged in DAQ velocity:id=0; // velocity product IDs velocity:maxvel = 0.f ; // Doppler Nyquist velocity velocity:rmcor = 0s; // radar moment correction: // 0|1=not applied|applied velocity:refframe = "aircraft (x:nose,y:right_wing,z:down*)"; // radial velocity reference coordinate system // * - the radial velocity sign depends on the beam // orientation and positive is always toward the // radar velocity:algorithm = "puse-pair"; // 1st mom. calc. using pulse-pair alg. velocity:shift = "none" ; // Velocity shift status velocity:shiftid = 0s ; // Velocity shift status ID velocity:dependencies = "ACID IRS variables" ;// ACID=N2UW,N130AR velocity:status = "uncorrected Doppler velocity; merged short pulse and chirp data" ; velocity:statusid= 0s ;// 0|1=uncorrected/corrected Doppler //*......................... Chirp products ............................*// float reflectivity_chirp(profile,range_chirp) ; // single antenna //SAB float reflectivity_chirp(beam,profile,range_chirp) ; // two antennas //MAB reflectivity_chirp:long_name = "Noise Subtracted Power Equivalent reflectivity factor" ; reflectivity_chirp:units= "mm^6/m^3" ; reflectivity_chirp:_FillValue = -32767.f ; reflectivity_chirp:antenna =" "; // active antenna names reflectivity_chirp:antennaid =0s; // active antenna IDs reflectivity_chirp:calcoef=0.f; // calibration coef. in dBZ@1km reflectivity_chirp:averages=0s; // # of pulses averaged in DAQ reflectivity_chirp:id=0; // reflectivity product IDs reflectivity_chirp:status="mean noise subtracted, range correction applied, no threshold applied, no atten.correction"; short reflectivity_mask_chirp(profile,range_chirp) ; // target mask //SAB short reflectivity_mask_chirp(beam,profile,range_chirp); //MAB reflectivity_mask_chirp:antennaid = 0s; reflectivity_mask_chirp:long_name = "Two byte target mask" ; reflectivity_mask_chirp:units = "" ; reflectivity_mask_chirp:id=0; reflectivity_mask_chirp:activebits = 0,1,2,3 ;// currently active bits reflectivity_mask_chirp:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; reflectivity_mask_chirp:status="none set, LSB bits set"; reflectivity_mask_chirp:statusid=0s; // 0,1 float velocity_chirp(profile,range_chirp) ; // single antenna //SAB float velocity_chirp(beam,profile,range_chirp) ; // two antennas //MAB velocity_chirp:long_name = "Mean Doppler radial velocity. Positive is toward the radar" ; velocity_chirp:units = "m/s" ; velocity_chirp:_FillValue = -32767.f ; velocity_chirp:antenna =" "; // active antenna names velocity_chirp:antennaid = 0s; // active antenna IDs velocity_chirp:averages=0s; // pulsepairs averaged in DAQ velocity_chirp:id=0; // velocity product IDs velocity_chirp:maxvel = 0.f ; // Doppler Nyquist velocity velocity_chirp:rmcor = 0s; // radar moment correction: // 0|1=not applied|applied velocity_chirp:refframe = "aircraft (x:nose,y:right_wing,z:down*)"; // radial velocity reference coordinate system // * - the radial velocity sign depends on the beam // orientation and positive is always toward the // radar velocity_chirp:algorithm = "puse-pair"; // 1st mom. calc. using pulse-pair alg. velocity_chirp:shift = "none" ; // Velocity shift status velocity_chirp:shiftid = 0s ; // Velocity shift status ID velocity_chirp:dependencies = "ACID IRS variables" ;// ACID=N2UW,N130AR,GROUND velocity_chirp:status = "uncorrected Doppler velocity" ; velocity_chirp:statusid= 0s ;// 0|1=uncorrected/corrected Doppler //*......................... Pulse products ............................*// float reflectivity_pulse(profile,range_pulse) ; // single antenna //SAB float reflectivity_pulse(beam,profile,range_pulse) ; // two antennas //MAB reflectivity_pulse:long_name = "Noise Subtracted Power Equivalent reflectivity factor" ; reflectivity_pulse:units= "mm^6/m^3" ; reflectivity_pulse:_FillValue = -32767.f ; reflectivity_pulse:antenna =" "; // active antenna names reflectivity_pulse:antennaid =0s; // active antenna IDs reflectivity_pulse:calcoef=0.f; // calibration coef. in dBZ@1km reflectivity_pulse:averages=0s; // # of pulses averaged in DAQ reflectivity_pulse:id=0; // reflectivity product IDs reflectivity_pulse:status="mean noise subtracted, range correction applied, no threshold applied, no atten.correction"; short reflectivity_mask_pulse(profile,range_pulse) ; // target mask //SAB short reflectivity_mask_pulse(beam,profile,range_pulse); //MAB reflectivity_mask_pulse:antennaid = 0s; reflectivity_mask_pulse:long_name = "Two byte target mask" ; reflectivity_mask_pulse:units = "" ; reflectivity_mask_pulse:id=0; reflectivity_mask_pulse:activebits = 0,1,2,3 ;// currently active bits reflectivity_mask_pulse:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; reflectivity_mask_pulse:status="none set, LSB bits set"; reflectivity_mask_pulse:statusid=0s; // 0,1 float velocity_pulse(profile,range_pulse) ; // single antenna //SAB float velocity_pulse(beam,profile,range_pulse) ; // two antennas //MAB velocity_pulse:long_name = "Mean Doppler radial velocity. Positive is toward the radar" ; velocity_pulse:units = "m/s" ; velocity_pulse:_FillValue = -32767.f ; velocity_pulse:antenna =" "; // active antenna names velocity_pulse:antennaid = 0s; // active beam IDs velocity_pulse:averages=0s; // pulsepairs averaged in DAQ velocity_pulse:id=0; // velocity product IDs velocity_pulse:maxvel = 0.f ; // Doppler Nyquist velocity velocity_pulse:rmcor = 0s; // radar moment correction: // 0|1=not applied|applied velocity_pulse:refframe="aircraft (x:nose,y:right_wing,z:down*)"; // radial velocity reference coordinate system // * - the radial velocity sign depends on the beam // orientation and positive is always toward the // radar velocity_pulse:algorithm = "puse-pair"; // 1st mom. calc. using pulse-pair alg. velocity_pulse:shift = "none" ; // Velocity shift status velocity_pulse:shiftid = 0s ; // Velocity shift status ID velocity_pulse:dependencies = "ACID IRS variables" ;// ACID=N2UW,N130AR,GROUND velocity_pulse:status = "uncorrected Doppler velocity" ; velocity_pulse:statusid= 0s ;// 0|1=uncorrected/corrected Doppler //*.....................................................................*// //* Auxiliary variables *// //*.....................................................................*// //*..........................Noise variables............................*// //*......................... Chirp products ............................*// //* 'noise' var is the best estimate of the noise in the reflectivity *// //* data based on measurement from no-target range gates or system *// //* ambient receiver noise available for each profile. *// float noise_chirp(profile) ; // single antenna //SAB float noise_chirp(beam,profile) ; // two antennas //MAB noise_chirp:long_name = "Estimated Received noise power in mm^6/m^3 at 1 km" ; noise_chirp:units = "mm^6/m^3"; // equivalent mm^6/m^3 at 1 km noise_chirp:source =" "; // noise source names(RM,WL,RGxxx,...) //* 'noisemn'is the mean noise calculated from 'noise' *// float noisemn_chirp(profile) ; // single antenna //SAB float noisemn_chirp(beam,profile) ; // two antennas //MAB noisemn_chirp:long_name = "Mean noise power in mm^6/m^3 at 1 km" ; noisemn_chirp:units = "mm^6/m^3";// equivalent mm^6/m^3 at 1 km noisemn_chirp:nsamples = 0; // # of noise samples used in the mean calcs. noisemn_chirp:source =" "; // noise source names(RM,WL,RMP,...) //* 'noisestd'is the noise StDev calculated from 'noise' or noiserm' *// float noisestd_chirp(profile) ; // single antenna //SAB float noisestd_chirp(beam,profile) ; // two antennas //MAB noisestd_chirp:long_name = "Std. Dev. of noise power in mm^6/m^3 @ 1 km" ; noisestd_chirp:units = "mm^6/m^3";// equivalent mm^6/m^3 at 1 km noisestd_chirp:nsamples = 0; // # of noise samples used in the std calcs. noisestd_chirp:source =" "; // noise source names(RM,WL,RMP,...) //*......................... Pulse products ............................*// float noise_pulse(profile) ; // single antenna //SAB float noise_pulse(beam,profile) ; // two antennas //MAB noise_pulse:long_name = "Estimated Received noise power in mm^6/m^3 at 1 km" ; noise_pulse:units = "mm^6/m^3"; // equivalent mm^6/m^3 at 1 km noise_pulse:source =" "; // noise source names(RM,WL,RGxxx,...) //* 'noisemn'is the mean noise calculated from 'noise' *// float noisemn_pulse(profile) ; // single antenna //SAB float noisemn_pulse(beam,profile) ; // two antennas //MAB noisemn_pulse:long_name = "Mean noise power in mm^6/m^3 at 1 km" ; noisemn_pulse:units = "mm^6/m^3";// equivalent mm^6/m^3 at 1 km noisemn_pulse:nsamples = 0; // # of noise samples used in the mean calcs. noisemn_pulse:source =" "; // noise source names(RM,WL,RMP,...) //* 'noisestd'is the noise StDev calculated from 'noise' or noiserm' *// float noisestd_pulse(profile) ; // single antenna //SAB float noisestd_pulse(beam,profile) ; // two antennas //MAB noisestd_pulse:long_name = "Std. Dev. of noise power in mm^6/m^3 @ 1 km" ; noisestd_pulse:units = "mm^6/m^3";// equivalent mm^6/m^3 at 1 km noisestd_pulse:nsamples = 0; // # of noise samples used in the std calcs. noisestd_pulse:source =" "; // noise source names(RM,WL,RMP,...) //*...................Pulse-pair derived variables......................*// //*................... Merged Pulse&Chirp products .....................*// float ppreflectivity(profile, range) ; //PPS float ppreflectivity(beam,profile, range); //PPT ppreflectivity:long_name = "Coherent Power Equivalent reflectivity factor"; //PPM ppreflectivity:units = "mm^6/m^3" ; //PPM ppreflectivity:_FillValue = -32767.f; //PPM ppreflectivity:antenna =" "; // active antenna names //PPM ppreflectivity:antennaid = 0s; // list of active beam IDs //PPM ppreflectivity:averages=0s;// list(np) of # of pulse pair magnitudes averaged in the DAQ//PPM ppreflectivity:calcoef=0.f,0.f; // pulse&chirp cal.coef in dBZ@1km //PPM ppreflectivity:id=0; // puse-pair product IDs //PPM ppreflectivity:prt=0; // pulse repetition time in usec //PPM ppreflectivity:status="range correction applied,no threshold applied, no atten.correction; short pulse and chirp merged"; //PPM short ppreflectivity_mask(profile, range) ; //PPS short ppreflectivity_mask(beam,profile, range); //PPT ppreflectivity_mask:long_name = "Two byte pulse-pair reflectivity mask" ; //PPM ppreflectivity_mask:units = "" ; //PPM ppreflectivity_mask:antennaid = 0s; //PPM ppreflectivity_mask:id=0; //PPM ppreflectivity_mask:activebits = 0,1,2,3; // currently active bits //PPM ppreflectivity_mask:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; //PPM ppreflectivity_mask:status="none set,LSB bits set,LSB&MSB bits set; short pulse and chirp merged"; //PPM ppreflectivity_mask:statusid=0s; // 0 //PPM float ppsw(profile, range) ; // pulse-pair algorithm //PPS float ppsw(beam,profile, range);// pulse-pair algorithm //PPT ppsw:long_name = "Spectral width"; //PPM ppsw:units = "m/s" ; //PPM ppsw:_FillValue = -32767.f ; //PPM ppsw:antennaid = 0s; //PPM ppsw:id=0; //PPM ppsw:algorithm = " "; // 2nd mom. calc. using pulse-pair algorithm //PPM ppsw:status="thresholded at 5 StDev of the pp noise power(~7dB SNR)"; //PPM //*......................... Chirp products ............................*// float ppnoise_chirp(profile) ; // single antenna pp //PPS float ppnoise_chirp(beam,profile) ; // two antennas pp //PPT ppnoise_chirp:long_name = "Pulse Pair Noise magnitude in mm^6/m^3 at 1 km" ; //PPM ppnoise_chirp:units = "mm^6/m^3"; // equivalent mm^6/m^3 at 1 km //PPM ppnoise_chirp:source =" "; // noise source names('RM','WL',...) //PPM float ppnoisestd_chirp(profile) ; //PPS float ppnoisestd_chirp(beam,profile) ; //PPT ppnoisestd_chirp:long_name = "Std.Dev. of pulse-pair noise magnitude in mm^6/m^3 at 1 km" ; //PPM ppnoisestd_chirp:units = "mm^6/m^3" ; //PPM ppnoisestd_chirp:smooth = 101; // # of moving-averaged noise samples //PPM ppnoisestd_chirp:source =" "; // noise source names('RM','WL',...) //PPM float ppreflectivity_chirp(profile, range_chirp) ; //PPS float ppreflectivity_chirp(beam,profile, range_chirp); //PPT ppreflectivity_chirp:long_name = "Coherent Power Equivalent reflectivity factor"; //PPM ppreflectivity_chirp:units = "mm^6/m^3" ; //PPM ppreflectivity_chirp:_FillValue = -32767.f; //PPM ppreflectivity_chirp:antenna =" "; // active antenna names //PPM ppreflectivity_chirp:antennaid = 0s; // list of active beam IDs //PPM ppreflectivity_chirp:averages=0s;// list(np) of # of pulse pair magnitudes averaged in the DAQ//PPM ppreflectivity_chirp:calcoef=0.f; // cal. coef. in dBZ@1km //PPM ppreflectivity_chirp:id=0; // puse-pair product IDs //PPM ppreflectivity_chirp:prt=0; // pulse repetition time in usec //PPM ppreflectivity_chirp:status="range correction applied,no threshold applied, no atten.correction"; //PPM short ppreflectivity_mask_chirp(profile, range_chirp) ; //PPS short ppreflectivity_mask_chirp(beam,profile, range_chirp); //PPT ppreflectivity_mask_chirp:long_name = "Two byte pulse-pair reflectivity mask" ; //PPM ppreflectivity_mask_chirp:units = "" ; //PPM ppreflectivity_mask_chirp:antennaid = 0s; //PPM ppreflectivity_mask_chirp:id=0; //PPM ppreflectivity_mask_chirp:activebits = 0,1,2,3; // currently active bits //PPM ppreflectivity_mask_chirp:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; //PPM ppreflectivity_mask_chirp:status="none set,LSB bits set,LSB&MSB bits set"; //PPM ppreflectivity_mask_chirp:statusid=0s; // 0 //PPM float ppsw_chirp(profile, range_chirp) ; // pulse-pair algorithm //PPS float ppsw_chirp(beam,profile, range_chirp);// pulse-pair algorithm //PPT ppsw_chirp:long_name = "Spectral width"; //PPM ppsw_chirp:units = "m/s" ; //PPM ppsw_chirp:_FillValue = -32767.f ; //PPM ppsw_chirp:antennaid = 0s; //PPM ppsw_chirp:id=0; //PPM ppsw_chirp:algorithm = "pulse-pair lag 0 and lag 1 correlation"; // 2nd mom. calc. using pulse-pair algorithm //PPM ppsw_chirp:status="thresholded at 3 StDev of the pp noise power(~5dB SNR)"; //PPM //*......................... Pulse products ............................*// float ppnoise_pulse(profile) ; // single antenna pp //PPS float ppnoise_pulse(beam,profile) ; // two antennas pp //PPT ppnoise_pulse:long_name = "Pulse Pair Noise magnitude in mm^6/m^3 at 1 km" ; //PPM ppnoise_pulse:units = "mm^6/m^3"; // equivalent mm^6/m^3 at 1 km //PPM ppnoise_pulse:smooth = 0; // # of moving-averaged noise samples //PPM ppnoise_pulse:source =" "; // noise source names('RM','WL',...) //PPM float ppnoisestd_pulse(profile) ; // single antenna pp //PPS float ppnoisestd_pulse(beam,profile) ; // two antenna pp //PPT ppnoisestd_pulse:long_name = "Std.Dev. of pulse-pair noise magnitude in mm^6/m^3 at 1 km" ; //PPM ppnoisestd_pulse:units = "mm^6/m^3" ; //PPM ppnoisestd_pulse:smooth = 101; // # of moving-averaged noise samples//PPM ppnoisestd_pulse:source =" "; // noise source names('RM','WL',...) //PPM float ppreflectivity_pulse(profile, range_pulse) ; // single antenna pp //PPS float ppreflectivity_pulse(beam,profile, range_pulse);// two antenna pp //PPT ppreflectivity_pulse:long_name = "Coherent Power Equivalent reflectivity factor"; //PPM ppreflectivity_pulse:units = "mm^6/m^3" ; //PPM ppreflectivity_pulse:_FillValue = -32767.f; //PPM ppreflectivity_pulse:antenna =" "; // active antenna names //PPM ppreflectivity_pulse:antennaid = 0s; // list of active beam IDs //PPM ppreflectivity_pulse:averages=0s;// list(np) of # of pulse pair magnitudes averaged in the DAQ//PPM ppreflectivity_pulse:calcoef=0.f; // cal. coef. in dBZ@1km //PPM ppreflectivity_pulse:id=0; // puse-pair product IDs //PPM ppreflectivity_pulse:prt=0; // pulse repetition time in usec //PPM ppreflectivity_pulse:status="range correction applied,no threshold applied, no atten.correction"; //PPM short ppreflectivity_mask_pulse(profile, range_pulse) ; // pp refl. mask //PPS short ppreflectivity_mask_pulse(beam,profile, range_pulse);// pp refl. mask //PPT ppreflectivity_mask_pulse:long_name = "Two byte pulse-pair reflectivity mask" ; //PPM ppreflectivity_mask_pulse:units = "" ; //PPM ppreflectivity_mask_pulse:antennaid = 0s; //PPM ppreflectivity_mask_pulse:id=0; //PPM ppreflectivity_mask_pulse:activebits = 0,1,2,3; // active bits //PPM ppreflectivity_mask_pulse:setbitname = "1_noise_StDev,2_noise_StDev,3_noise_StDev,saturation"; //PPM ppreflectivity_mask_pulse:status="none set,LSB bits set,LSB&MSB bits set"; //PPM ppreflectivity_mask_pulse:statusid=0s; // 0,1,2 //PPM float ppsw_pulse(profile, range_pulse) ; // pulse-pair algorithm //PPS float ppsw_pulse(beam,profile, range_pulse);// pulse-pair algorithm //PPT ppsw_pulse:long_name = "Spectral width"; //PPM ppsw_pulse:units = "m/s" ; //PPM ppsw_pulse:_FillValue = -32767.f ; //PPM ppsw_pulse:antennaid = 0s; //PPM ppsw_pulse:id=0; //PPM ppsw_pulse:algorithm = "pulse-pair lag 0 and lag 1 correlation"; // 2nd mom. calc. using pulse-pair algorithm //PPM ppsw_pulse:status="thresholded at 3 StDev of the pp noise power(~5dB SNR)"; //PPM //*....................Power derived variables..........................*// float snr(profile, range) ; // single antenna //SAB float snr(beam,profile, range) ; // two antennas //MAB snr:long_name = "Post-averaged Signal-to-Noise Ratio" ; snr:units= "dB" ; snr:_FillValue = -32767.f ; snr:antenna =" "; // active antenna names snr:antennaid = 0s; // active antenna beam IDs snr:id=0; // snr product IDs snr:status="SNR=0 - signal power equal to noise power; noise power=noise StDev; short pulse and chirp merged"; float snr_chirp(profile, range_chirp) ; // single antenna //SAB float snr_chirp(beam,profile, range_chirp) ; // two antennas //MAB snr_chirp:long_name = "Post-averaged Signal-to-Noise Ratio" ; snr_chirp:units= "dB" ; snr_chirp:_FillValue = -32767.f ; snr_chirp:antenna =" "; // active antenna names snr_chirp:antennaid = 0s; // active antenna beam IDs snr_chirp:id=0; // snr product IDs snr_chirp:status="SNR=0 - signal power equal to noise power; noise power=noise StDev"; float snr_pulse(profile, range_pulse) ; // single antenna //SAB float snr_pulse(beam,profile, range_pulse) ; // two antennas //MAB snr_pulse:long_name = "Post-averaged Signal-to-Noise Ratio" ; snr_pulse:units= "dB" ; snr_pulse:_FillValue = -32767.f ; snr_pulse:antenna =" "; // active antenna names snr_pulse:antennaid = 0s; // active antenna beam IDs snr_pulse:id=0; // snr product IDs snr_pulse:status="SNR=0 - signal power equal to noise power; noise power=noise StDev"; //*.....................................................................*// //* Doppler spectra related variables (for FFT mode) *// //*.....................................................................*// float psd_axis(fftlen); //FFT psd_axis:long_name = "PSD velocity axis for FFT algorithms"; //FFT psd_axis:units = "m/s" ; //FFT psd_axis:antenna= " "; // antenna names matching beam ID //FFT psd_axis:antennaid= 0s ; // active beam IDs //FFT //*......................... Chirp products ............................*// float psd_chirp(profile, range_chirp,fftlen) ; // single antenna FF //FP1 float psd_chirp(beam,profile, range_chirp,fftlen); // two antenna FFT //FP2 psd_chirp:long_name = "Received Power Doppler Spectra"; //FFT psd_chirp:units = "mW/m/s" ; //FFT psd_chirp:_FillValue = -32767.f; //FFT psd_chirp:antennaid = 0s; //FFT psd_chirp:averages = 0; // number of averaged spectra in DAQ //FFT psd_chirp:resolution = 0.0f; // spectral lines resolution in m/s //FFT psd_chirp:status = "uncorrected for platform motion" ; //FFT psd_chirp:window = " "; // spectral window used, e.g.,hanning //FFT float psdmom0_chirp(profile, range_chirp) ; // single antenna FF //FP1 float psdmom0_chirp(beam,profile, range_chirp) ; // two antenna FFT //FP2 psdmom0_chirp:long_name = "Power Doppler Spectra 0th Moment"; //FPP psdmom0_chirp:units= "mm^6/m^3" ; //FPP psdmom0_chirp:_FillValue = -32767.f ; //FPP psdmom0_chirp:antenna =" "; // active antenna names //FPP psdmom0_chirp:antennaid = 0s;// active antenna beam IDs //FPP psdmom0_chirp:calcoef=0.f; // calibration coef. in dBZ@1km //FPP psdmom0_chirp:id=0; // psdmom0 product IDs //FPP psdmom0_chirp:status="mean noise subtracted, range correction applied, no threshold applied, no atten.correction"; //FPP float psdmom1_chirp(profile, range_chirp) ; // single antenna FFT //FP1 float psdmom1_chirp(beam,profile, range_chirp) ; // two antenna FFT //FP2 psdmom1_chirp:long_name = "Power Doppler Spectra 1th Moment"; //FPP psdmom1_chirp:units = "m/s" ; //FPP psdmom1_chirp:_FillValue = -32767.f ; //FPP psdmom1_chirp:antenna =" "; // active antenna names //FPP psdmom1_chirp:antennaid = 0s; // active beam IDs //FPP psdmom1_chirp:id=0; // psdmom1 product IDs //FPP psdmom1_chirp:maxvel = 0.f ; // Doppler Nyquist psdmom1 //FPP psdmom1_chirp:rmcor = 0s; // radar moment correction: //FPP // 0|1=not applied|applied //FPP psdmom1_chirp:refframe = "aircraft (x:nose,y:right_wing,z:down*)"; //FPP // radial velocity reference coordinate system //FPP // * - the radial velocity sign depends on the beam //FPP // orienretatation and positive is always toward //FPP // the adar //FPP psdmom1_chirp:shift = "none" ; // pdfmom1 shift status //FPP psdmom1_chirp:shiftid = 0s ; // pdfmom1 shift status ID //FPP psdmom1_chirp:dependencies = "ACID IRS variables" ; //FPP psdmom1_chirp:status = "uncorrected bias estimate(for SNR>20dB and not folded psd the bias is small)"; //FPP psdmom1_chirp:statusid= 0s ;// 0|1=uncorrected/corrected Doppler //FPP //*......................... Pulse products ............................*// float psd_pulse(profile, range_pulse,fftlen) ; // single antenna FF //FP1 float psd_pulse(beam,profile, range_pulse,fftlen); // two antenna FFT //FP2 psd_pulse:long_name = "Received Power Doppler Spectra"; //FFT psd_pulse:units = "mW/m/s" ; //FFT psd_pulse:_FillValue = -32767.f; //FFT psd_pulse:antennaid = 0s; //FFT psd_pulse:averages = 0; // number of averaged spectra in DAQ //FFT psd_pulse:resolution = 0.0f; // spectral lines resolution in m/s //FFT psd_pulse:status = "uncorrected for platform motion" ; //FFT psd_pulse:window = " "; // spectral window used, e.g.,hanning //FFT float psdmom0_pulse(profile, range_pulse) ; // single antenna FFT //FP1 float psdmom0_pulse(beam,profile, range_pulse) ; // two antenna FFT //FP2 psdmom0_pulse:long_name = "Power Doppler Spectra 0th Moment"; //FPP psdmom0_pulse:units= "mm^6/m^3" ; //FPP psdmom0_pulse:_FillValue = -32767.f ; //FPP psdmom0_pulse:antenna =" "; // active antenna names //FPP psdmom0_pulse:antennaid = 0s;// active antenna beam IDs //FPP psdmom0_pulse:calcoef=0.f; // calibration coef. in dBZ@1km //FPP psdmom0_pulse:id=0; // psdmom0 product IDs //FPP psdmom0_pulse:status="mean noise subtracted, range correction applied, no threshold applied, no atten.correction"; //FPP float psdmom1_pulse(profile, range_pulse) ; // single antenna FFT //FP1 float psdmom1_pulse(beam,profile, range_pulse) ; // two antenna FFT //FP2 psdmom1_pulse:long_name = "Power Doppler Spectra 1th Moment"; //FPP psdmom1_pulse:units = "m/s" ; //FPP psdmom1_pulse:_FillValue = -32767.f ; //FPP psdmom1_pulse:antenna =" "; // active antenna names //FPP psdmom1_pulse:antennaid = 0s; // active beam IDs //FPP psdmom1_pulse:id=0; // psdmom1 product IDs //FPP psdmom1_pulse:maxvel = 0.f ; // Doppler Nyquist psdmom1 //FPP psdmom1_pulse:rmcor = 0s; // radar moment correction: //FPP // 0|1=not applied|applied //FPP psdmom1_pulse:refframe = "aircraft (x:nose,y:right_wing,z:down*)"; //FPP psdmom1_pulse:shift = "none" ; // pdfmom1 shift status //FPP psdmom1_pulse:shiftid = 0s ; // pdfmom1 shift status ID //FPP psdmom1_pulse:dependencies = "ACID IRS variables" ; //FPP psdmom1_pulse:status = "uncorrected bias estimate(for SNR>20dB and not folded psd the bias is small)"; //FPP psdmom1_pulse:statusid= 0s ;// 0|1=uncorrected/corrected Doppler //FPP //*.....................................................................*// //* Ancillary variables *// //*.....................................................................*// float kpraspect(profile) ; // range/profile ratio based on ACID air speed kpraspect:long_name = "KPRrangesampling/(KPRtimeint*tas)" ; kpraspect:units = "" ; kpraspect:_FillValue = -32767.f; //for any tas<50 or tas>200 m/s kpraspect:dependencies = "ACID tas" ; // ACID=N2UW or N130AR float kprantpos(vector3); // single-antenna/beam //SAB float kprantpos(beam,vector3) ; // multi-antenna/beam //MAB kprantpos:long_name = "Antenna position distances w.r.t. IRS in platform coordinates" ; kprantpos:units = "meters" ; // distances in AC coord(x,y,z) kprantpos:_FillValue = -32767.f; kprantpos:antennaid = 0s ; kprantpos:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float kprbeamacvec_chirp(vector3); // single-antenna/beam //SAB float kprbeamacvec_chirp(beam,vector3) ; // multi-antenna/beam //MAB kprbeamacvec_chirp:long_name = "Radar beam unit vector in platform coordinates" ; kprbeamacvec_chirp:units = "" ; // AC coord(x,y,z): (ac_axis,right_wing,down) kprbeamacvec_chirp:_FillValue = -32767.f; kprbeamacvec_chirp:antennaid = 0s ; kprbeamacvec_chirp:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float kprbeamvector_chirp(profile,vector3); // single-antenna/beam //SAB float kprbeamvector_chirp(beam,profile,vector3) ; // multi-antenna/beam //MAB kprbeamvector_chirp:long_name = "(East,North,Up) radar beam unit vectors" ; kprbeamvector_chirp:units = "" ; kprbeamvector_chirp:_FillValue = -32767.f; kprbeamvector_chirp:antennaid = 0s ; kprbeamvector_chirp:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float acvcbeam_chirp(profile) ; // single-antenna/beam //SAB float acvcbeam_chirp(beam,profile) ; // multi-antenna/beam //MAB acvcbeam_chirp:long_name = "Platform velocity component along KPR beam. Positive is away from the radar" ; acvcbeam_chirp:units = "m/s" ; acvcbeam_chirp:_FillValue = -32767.f; acvcbeam_chirp:antennaid = 0s ; acvcbeam_chirp:dependencies = "ACID IRS variables, kprbeamvector" ; float acwcbeam_chirp(profile) ; // single-antenna/beam //SAB float acwcbeam_chirp(beam,profile) ; // multi-antenna/beam //MAB acwcbeam_chirp:long_name = "In situ measured wind component at platform altitude along KPR beam. Positive is away from the radar" ; acwcbeam_chirp:units = "m/s" ; acwcbeam_chirp:_FillValue = -32767.f; acwcbeam_chirp:antennaid = 0s ; acwcbeam_chirp:dependencies = "ACID derived wind variables, kprbeamvector" ; float kprbeamacvec_pulse(vector3); // single-antenna/beam //SAB float kprbeamacvec_pulse(beam,vector3) ; // multi-antenna/beam //MAB kprbeamacvec_pulse:long_name = "Radar beam unit vector in platform coordinates" ; kprbeamacvec_pulse:units = "" ; // AC coord(x,y,z): (ac_axis,right_wing,down) kprbeamacvec_pulse:_FillValue = -32767.f; kprbeamacvec_pulse:antennaid = 0s ; kprbeamacvec_pulse:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float kprbeamvector_pulse(profile,vector3); // single-antenna/beam //SAB float kprbeamvector_pulse(beam,profile,vector3) ; // multi-antenna/beam //MAB kprbeamvector_pulse:long_name = "(East,North,Up) radar beam unit vectors" ; kprbeamvector_pulse:units = "" ; kprbeamvector_pulse:_FillValue = -32767.f; kprbeamvector_pulse:antennaid = 0s ; kprbeamvector_pulse:dependencies = "ACID IRS variables" ;// ACID=N2UW or N130AR float acvcbeam_pulse(profile) ; // single-antenna/beam //SAB float acvcbeam_pulse(beam,profile) ; // multi-antenna/beam //MAB acvcbeam_pulse:long_name = "Platform velocity component along KPR beam. Positive is away from the radar" ; acvcbeam_pulse:units = "m/s" ; acvcbeam_pulse:_FillValue = -32767.f; acvcbeam_pulse:antennaid = 0s ; acvcbeam_pulse:dependencies = "ACID IRS variables, kprbeamvector" ; float acwcbeam_pulse(profile) ; // single-antenna/beam //SAB float acwcbeam_pulse(beam,profile) ; // multi-antenna/beam //MAB acwcbeam_pulse:long_name = "In situ measured wind component at platform altitude along KPR beam. Positive is away from the radar" ; acwcbeam_pulse:units = "m/s" ; acwcbeam_pulse:_FillValue = -32767.f; acwcbeam_pulse:antennaid = 0s ; acwcbeam_pulse:dependencies = "ACID derived wind variables, kprbeamvector" ; //*.....................................................................*// //* Platform position variables *// //*.....................................................................*// 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 GS(profile) ; GS:long_name = "Radar platform Ground Speed" ; GS:units = "m/s" ; GS:_FillValue = -32767.f; GS:source = "ACID" ; GS:dependencies = "" ; // AC data file variable used for tas 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' 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' float TAS(profile) ; TAS:long_name = "Radar platform True Air Speed" ; 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 are manually checked/edited or software *// //* modified 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-kapm@uwyo.edu"; //F //*.....................................................................*// :AcquisitionDate = 0 ; // YYYYMMDD //P :Categories = "Reflectivity, DopplerVelocity" ; //E :Conventions = "" ; //F :ProjectName = " " ; //E :ProjectDates = " " ; //E :PrincipalInvestigators = " " ; //E //*.....................................................................*// :Platform = "N2UW" ; // N2UW or N130AR //E :PlatformDataSource = " "; //P :PlatformDateProcessed = " " ; //P :PlatformIRS = " "; // Inertial Reference system: Applanix AV410 //P //*......... Start-End time of the data recorded in the file ...........*// :TimeInterval = " " ; //P //*.....................................................................*// //* Antenna and beam attribute lists match the radar transmitter ports *// //*.....................................................................*// //* N2UW (has an external mirror for the side/up antenna thus beam IDs *// //* do not match antenna IDs) *// :KPR_AntID = 1s, 2s ; // antenna IDs //F //* KPR_AntName names are reserved names - required by kprplot1(2)nc *// :KPR_AntName = "up, down"; // antenna names //F :KPR_AntPortName = "0, 1"; //F :KPR_BeamWidth = 4.2f,4.2f; // antenna HPBW in degree //F //*.....................................................................*// :KPR_DopVelConvention = "positive is toward the radar" ; //F :KPR_Polarization = "Linear" ; //F //*.....................................................................*// //* Beam Pointing Calibration Date and Status *// //*.....................................................................*// :KPRbeamcaldate = 0 ; // beam angles effective cal date //P :KPRbeamcalfile = "N/A" ; //E :KPRbeamcalstatus = "not calibrated"; //E //*.....................................................................*// //* Power Calibration parameters, Date, and Status *// //*.....................................................................*// :KPRcalkfactor = 0.0; // Index of refraction factor |K|^2 for water at 0degC //F :KPRcalpwrdate = 0 ; // Reflectivity calibibration constants effective date //P :KPRcalpwrfile = "N/A"; //E :KPRcalpwrstatus = "estimated accuracy/precision: N/A"; //E :KPRcalrffreq = 35.64; // KPR transmit center frequency in GHz //F :KPRcalrflambda = 0.00841; // KPR transmit center wavelength in meters //F :KPRcalrxsaturation = 6.30957; // KPR saturation level in mW (+8dBm) //F //*.....................................................................*// //* KPR data acquisition(DAQ) and processing related attributes *// //*.....................................................................*// :KPRcdlfile = " " ; // cdl source file used //P :KPRconfigfile = " " ; // KPR configuration file used //P :KPRdaqalg = " " ; // kprheader: DSP algorithm used in DAQ //P :KPRdaqfile = " " ; // data acquisition source file //P :KPRdaqint = 0.f ; // radar dwell time in msec //P :KPRdaqrev = " " ; // DAQ software revision //P //*.....................................................................*// :KPRmaxrange=0.f,0.f; // kprheader: maximum chirp,pulse recorded range in km //P :KPRppav = 0; // kprheader: number of pulsepair averaged in DAQ//P :KPRprfKHz = 0.f; // kprheader: pulse repetition frequency in KHz //P :KPRprfrange = 0.f; // kprheader: maximum unambiguous range in km //P :KPRprfvelocity = 0.f; // kprheader: +- maximum unambiguous velocity //P :KPRprofiles = 0,0; // processed: first,last processed profile //P :KPRpulsewidth=0,0; // kprheader: chirp, pulse length in ns //P :KPRrangegates=0,0; // kprheader: sampled chirp,pulse range gates //P :KPRrangeresolution=0.f; // kprheader: KPR range resolution in meters //P :KPRrangesampling = 0.f; // kprheader: KPR DAQ range sampling in meters //P :KPRstatpps=0.f,0.f,0.f;// min,max,mean # profiles per second //P :KPRstattimeint=0.f,0.f,0.f,0.f; // min,max,mean,std prof timeint.in ms //P :KPRtimeint = 0.f ; // processed: average time int. between profs. //P //*.....................................................................*// :KPRtimeoffset = 0.d;// derived: offset applied to KPR time to //P // sync with the platform time stamps //F :KPRUTCcor = 0.d; // derived: UTC corr. applied to KPR time stamps //P //*.....................................................................*// :ProcessAuthor = " " ; // login account name //P :ProcessorRevision = "kpr rev. 1.0" ; //F :DateProcessed = " " ; //P :RevisionDate = " " ; //P :RevisionStatus = " " ; // test, preliminary, OK, etc. //P :RevisionNumber = 1 ; // the last processed revision //P :Revision_1 = " " ; //P //*.....................................................................*// }