SASENOAA Interface Engine

Example 50.6 Retrieving Digital Mesocyclone Detection Algorithm Data for a Specific Date

(View the complete code for this example.)

The digital mesocyclone detection algorithm data (NX3MDA) are the successor to the legacy mesocyclone data (NX3MESO) and are designed to display information about the existence and nature of rotations associated with thunderstorms. Numerical output includes the azimuth, range, and height of the mesocyclone. This example retrieves these data for June 8, 2016. The first 10 observations are shown in Output 50.6.1.


options validvarname=any;

title 'Digital Mesocyclone Detection Algorithm Data for June 8, 2016';
libname mylib "/sasusr/noaa/doc/";
libname noaa sasenoaa "%sysget(NOAA_DATA)" 
   noaaset=nx3mda
   range='20160608:20160609'
   stat='countGroupBy:WSR_ID'  /* need this to create c9nco_S */
   outXml=c9nco
   automap=replace
   mapref=MyMap
   xmlmap="%sysget(NOAA_DATA)c9nco.map"
   format=xml
   ;

data mylib.myc9nco;
   set noaa.c9nco;
run;
proc contents data=mylib.myc9nco; run;
proc print data=mylib.myc9nco(obs=10); run;

Output 50.6.1: Digital Mesocyclone Detection Algorithm Data for June 8, 2016

Digital Mesocyclone Detection Algorithm Data for June 8, 2016

Obs ztime wsr_id cell_id str_rank scit_id range azimuth ll_rot_vel ll_dv ll_base depth_kft dpth_stmrl max_rv_kft max_rv_kts tvs motion_deg motion_kts msi shape
1 2016-06-08T00:01:10 KBOX 955 3 F5 88 49 17 17 10 13 100 14 22 N 278 14 1843 POINT (-69.6306900686946 42.9087204366999)
2 2016-06-08T00:01:10 KBOX 956 3 F5 91 48 17 19 11 18 100 19 28 N 353 33 1721 POINT (-69.6019306665078 42.9609951364008)
3 2016-06-08T00:01:14 KCXX 497 7L D6 14 86 51 30 2 2 47 2 63 N -999 -999 6050 POINT (-72.84057763236 44.5268104383833)
4 2016-06-08T00:05:22 KCXX 117 5L D6 13 107 38 54 1 2 44 2 49 N 311 5 4750 POINT (-72.8767138260852 44.4472967220186)
5 2016-06-08T00:08:07 KDEN 183 3 X1 20 242 14 14 5 19 0 11 29 N 226 14 1819 POINT (-104.906667800608 39.5707779820797)
6 2016-06-08T00:08:55 KRIW 614 7L B6 34 276 48 41 3 6 39 3 48 N -999 -999 4293 POINT (-109.246654714611 43.1226528729933)
7 2016-06-08T00:09:20 KEPZ 788 6 A6 76 33 31 62 8 11 67 8 31 N -999 -999 3187 POINT (-105.878317682481 32.9347703082943)
8 2016-06-08T00:10:20 KBOX 956 3 F5 93 49 14 20 11 18 100 19 22 N 305 15 1480 POINT (-69.5437406633111 42.962259402214)
9 2016-06-08T00:10:59 KDEN 203 3 X1 20 242 17 16 5 19 0 11 26 N -999 -999 1964 POINT (-104.906667800608 39.5707779820797)
10 2016-06-08T00:10:59 KDEN 204 3 X1 18 232 30 26 10 12 0 15 31 N -999 -999 1726 POINT (-104.831639940611 39.5427723681603)


The SASENOAA engine creates a temporary data set named OUTTP1 that shows the recorded feature (mesocyclone detection algorithm) count for each BY group by WSR_ID. The count represents the number of mesocyclones detected by that weather station. This information can be helpful for determining which geographic area to focus on and is generated automatically by the engine when you specify STAT='COUNTGROUPBY:WSR_ID'. The SASENOAA engine does not save this data set unless the STAT= option is specified; this results in a saved statistics data set that is named by appending _S to the name specified in the OUTXML= option, as shown by the following statements:

libname mystats "/sasusr/noaa/test/";

proc contents data=mystats.c9nco_S; run;
proc print data=mystats.c9nco_S(obs=20); run;

Output 50.6.2: Digital Mesocyclone Detection Algorithm Statistics Data for June 8, 2016

Digital Mesocyclone Detection Algorithm Data for June 8, 2016

Obs wsr_id count
1 KOTX 120
2 KPDT 113
3 KBOX 90
4 KMSX 23
5 KCXX 22
6 KRTX 20
7 KLGX 18
8 KAMA 15
9 KPUX 13
10 KEPZ 12
11 KTLX 8
12 KCBW 6
13 KDDC 5
14 KGYX 4
15 KTFX 4
16 KHDX 3
17 KMCO 3
18 KDEN 3
19 KRIW 3
20 KAMX 3


For brevity, only the first 10 out of 525 observations are printed by using the OBS= option in the PROC PRINT statement for Output 50.6.1. The first 20 observations of the statistics data set c9nco_S are shown in Output 50.6.2.

In Example 50.8, another method is used to subset results by location when you use the TILE= option. In Example 50.7, the STAT= option is used to collect statistics based on a tile summary in a data set (Mytile_S).

Last updated: June 19, 2025