(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).