ASCII Raw File
The raw data file contains the same information as the WXP format. This type of file is provided to allow non-WXP programs to create data that can be used by WXP. Raw data files are written in ASCII and contain location and values for various data points. This data can be plotted or fit to a grid for contouring. Raw data files can also be used to plot and annotate various plots with text and weather symbols. These files can be created by many of the plotting programs such as sfcwx, upairwx, and fouswx. Raw data can be displayed using mapplt, fitted to a grid with grid, and manipulated with rawmath.
FORMAT
The format is as follows:
WXPRAW
date
[flag]info
[data header]
raw data...
Header Data
The first line of the file is the string:
WXPRAW
which is used to determine file type. The second line of the data file is a character string describing the valid time and origin of the image (less than 50 characters). Examples:
12Z 14 JUN 98
May 1995
The third line contains a character string describing the contents of the raw file (less than 50 characters). Examples:
Surface Temperature (C)
Monthly Precipitation (in)
Data Header
There is an optional data header which is placed after the information line which describes the raw data. This is not necessary if the only one type of data exists in the file but it is often more convenient to put more than one piece of data for each station in the raw file. This is done by specifying more than one value on each line of station data. In order to access this data, the column number can be specified or the column name. The name and additional attributes are specified in the data header.
To include the data header, a "!" (exclamation point) flag must be added to the beginning of the information line. The data header contains a list of information, whitespace delimited, one for each column of data. The format is:
name[:long_name][:attributes...]
where:
- name -- The name used to describe the column of data. This is used with programs like mapplt to extract this data from the raw file.
- long_name -- This is a long name that will be printed at the top of a plot using this data.
- attributes... -- This is a set of plotting attributes (see data plotting attributes in the Users Guide).This can also include plotting types such as wx, mark, wbarb, etc.
The data header block is terminated with a "$". The rest of the line following the "$" is ignored. This can be used for column headers. Here is an example:
WXPRAW 22-30 JUN 1998 !Hurricane BLAS ID LAT LON TIME:Time:ur:tx WIND:Max_wind_(kt):ul:tx PR:Low_central_pressure_(mb):ll:tx STAT:Storm_status:co=yellow LINE:Storm_track $ID LAT LON TIME WIND PR STAT LINE 1 9.90 -96.20 22/15Z 30 - L post:line:co=green TROPICAL_DEPRESSION
Raw Data
The following lines contain information for each station/report. The format is:
ident [lat lon] data1 [data2...]
Where:
- ident -- The unique station/report identifier (up to 10 characters)
- lat lon -- Latitude, longitude location data. For some types of raw files, this will be X Y position values or a single pressure value P. These fields can be omitted if only one data value data1 appears after the ident or if a dash '-' appears after ident.
- data1 -- This is a single data value. The syntax is:
[type:]data[:attrib...]
where:
- type -- Data type identifier. This identifies the type of data. This is optional if there is only one type of data in the file or the column has be identified in the data header block (see above). This can be used by mapplt to select specific pieces of data from the raw file.
- data -- The actual data value. This can be a number or string.
- attrib... -- A set of plotting attributes (see data plotting attributes in the Users Guide). These attributes will override those listed in the data header. This can also include plotting types such as wx, mark, wbarb, line, etc.
- data2 Subsequent data values for a particular station/report. These are separated by a space and follow the same format as data1. These data can be accessed by specifying the column number or name (as described below).
Raw files should have one blank line at the end. This way raw files can be strung together in a stream to programs such as rawmath.
Comments
Any line starting with a "#", is considered a comment line.
EXAMPLES
A simple raw file would look like:
WXPRAW 19Z 21 JAN 98 Surface Temperature (F) KBIL 45.80 -108.53 47.0 KBNA 36.12 -86.68 26.0 KCVG 39.05 -84.67 16.0 KDAY 39.90 -84.20 13.0 KDBQ 42.40 -90.70 18.0 (blank line)
The data lines contain a station identifier, latitude, longitude, and a simple value. Using multiple columns in a raw file would look like:
WXPRAW 15Z 2 NOV 97 Surface data #ID LAT LON T TD WIND ALT SLP VIS KAUG 44.32 -69.80 34.0 20.0 0207 040 399 15 KBGR 44.80 -68.82 35.0 19.0 0206 040 297 15 KBNA 36.12 -86.68 62.0 49.0 2311 970 054 10 KCAR 46.87 -68.02 30.0 18.0 3509 037 297 30 (blank line)
Here, the columns are unnamed but there is a column header as a comment line. Plotting programs will plot all of the data fields for a particular station/report. This will overlap information. To select a particular column of information, specify the column number starting with column one (in this case one is T). For example:
mapplt sfc.raw-1
To eliminate overlap, attributes may also be added to enhance output:
WXPRAW 21Z 21 JAN 98 Surface Station data KABR 45.45 -98.43 C:cldcv:co=white 19:text:ul:co=green 12:text:ll:co=green KBBW 41.43 -99.65 C:cldcv:co=white 53:text:ul:co=green 26:text:ll:co=green KBIL 45.80 -108.53 O:cldcv:co=white 49:text:ul:co=green 24:text:ll:co=green KBNA 36.12 -86.68 C:cldcv:co=white 28:text:ul:co=green 16:text:ll:co=green KDLH 46.83 -92.18 S:cldcv:co=white 23:text:ul:co=green 11:text:ll:co=green
To simplify this, attributes can be in the data header:
WXPRAW 06Z 8 AUG 98 !Surface All data id lat lon temp:Surface_Temperature_(F):value:ul dewp:Surface_Dewpoint_temperature_(F):value:ll pres:Sea_level_Pressure_(mb):data:ur wbrbc:Surface_:cbarb: cldcv:Surface_Cloud_cover:cloud: wx:Surface_Present_weather:symb:cl $ KJDN 47.33 -106.93 75.000000 51.099998 097 300.000000,14.000000 - - KPIT 40.50 -80.22 73.900002 61.000000 235 120.000000,7.000000 C - KCID 41.88 -91.72 66.900002 66.900002 152 0.000000,0.000000 O - KLIT 34.73 -92.23 77.000000 75.199997 176 150.000000,3.000000 B - KIAD 38.95 -77.45 73.900002 71.099998 251 0.000000,5.000000 S - KROW 33.30 -104.53 77.000000 50.000000 113 160.000000,8.000000 C - KBKW 37.78 -81.12 69.099998 63.000000 220 120.000000,6.000000 C - KRDU 35.87 -78.78 75.900002 73.900002 227 80.000000,5.000000 O TR-
Once the data header is specified, individual columns can be plotted using:
mapplt sfc.raw-temp
The output will be a plot of temperatures with the label of "Surface All data-Surface Temperature (F)" which is the combination of the raw file information line and the long name for the specified variable.
The data header is nice for specifying the names of regular columns but this doesn't work well if the data is irregular as is the case with SHEF data. In this case, the data type is specified with each data value:
WXPRAW 0Z 28 DEC 93 SHEF Data HLTK1 TA:17 TX:36 TN:17 EART2 PCIRG:16.59 PPKRG:.00 KNBT2 PCIRG:12.00 PPKRG:.00 HGIRG:2.85 NLKT2 PCIRG:9.74 PPKRG:.00 TKLT2 PCIRG:10.33 PPKRG:.00 HGIRG:4.23 BILT2 PCIRG:7.81 PPKRG:.00 STST2 PCIRG:12.93 PPKRG:.00 BCPT2 PCIRG:12.41 PPKRG:.00 ATKM5 HGIRG:7.60 RKFM5 HGIRG:5.30 ANKM5 HGIRG:7.64 SSPM5 HGIRG:87.01
To plot the PCIRG data, use:
mapplt shef.raw-PCIRG
A more complete example is a hurricane track raw file which includes various types of formatting:
WXPRAW 22-30 JUN 1998 !Hurricane BLAS ID LAT LON TIME:Time:ur:text WIND:Max_wind_(kt):ul:text PR:Low_central_pressure_(mb):ll:text STAT:Storm_status:co=yellow LINE:Storm_track $ID LAT LON TIME WIND PR STAT LINE 1 9.90 -96.20 22/15Z 30 - L post:line:co=green TROPICAL_DEPRESSION 2 10.90 -97.90 22/21Z 45 1000 @:wx post:line:co=yellow TROPICAL_STORM 3 11.20 -98.10 23/03Z 55 997 @:wx post:line:co=yellow TROPICAL_STORM 4 11.20 -99.00 23/09Z 55 994 @:wx post:line:co=yellow TROPICAL_STORM 5 12.00 -100.30 23/15Z 55 994 @:wx post:line:co=yellow TROPICAL_STORM 6 12.80 -101.80 23/21Z 65 987 @+:wx post:line:co=red HURRICANE-1 7 13.10 -103.40 24/03Z 90 970 @+:wx post:line:co=lred HURRICANE-2 8 13.40 -104.10 24/09Z 95 970 @+:wx post:line:co=lred HURRICANE-2 9 14.00 -104.70 24/15Z 100 965 @+:wx post:line:co=magenta HURRICANE-3 10 14.70 -105.70 24/21Z 100 965 @+:wx post:line:co=magenta HURRICANE-3 11 15.00 -106.50 25/03Z 115 948 @+:wx post:line:co=lmagenta HURRICANE-4 12 15.50 -107.30 25/09Z 120 945 @+:wx post:line:co=lmagenta HURRICANE-4 13 16.10 -108.10 25/15Z 120 948 @+:wx post:line:co=lmagenta HURRICANE-4 14 16.60 -108.90 25/21Z 115 948 @+:wx post:line:co=lmagenta HURRICANE-4 15 17.10 -110.10 26/03Z 100 960 @+:wx post:line:co=magenta HURRICANE-3 16 17.30 -111.00 26/09Z 95 965 @+:wx post:line:co=lred HURRICANE-2 17 17.40 -112.40 26/15Z 100 960 @+:wx post:line:co=magenta HURRICANE-3 18 17.60 -113.50 26/21Z 90 970 @+:wx post:line:co=lred HURRICANE-2 19 17.70 -114.40 27/03Z 90 970 @+:wx post:line:co=lred HURRICANE-2 20 17.80 -115.60 27/09Z 80 977 @+:wx post:line:co=red HURRICANE-1
The identifiers are the advisory numbers. The columns are specified in the column header section:
Col | Name | Longname | Attribute |
---|---|---|---|
1 | ID | ||
2 | LAT | ||
3 | LON | ||
4 | TIME | Time | ur:text (place upper right, data is text) |
5 | WIND | Max_wind_(kt) | ul:text (place upper left, data is text) |
6 | PR | Low_central_pressure_(mb) | ll:text (place lower left, data is text) |
7 | STAT | Storm_status | col:yellow (color yellow) |
8 | LINE | Storm_track |
Additional attributes can be specified with the data as is the case with the storm
status. The "@:wx
" specifies to plot a tropical storm symbol. The
storm track data has a plot type of "line" and a data value of
"post" which means a line will be drawn between the current
location and the next location. The data value of "pre" can be
used to draw to the previous location. The data header section is terminated with the '$'
at the beginning of the line with the header remarks. This shows using the remainder of
this line as a column header line. This is considered a comment and does not affect the
interpretation of the raw file. Again, a single data type can be selected by specifying
the column name. For example:
mapplt track.dat-LINE:wi=2
will plot the storm track with a width of 2 pixels and changing colors based on storm intensity. The plot output will be labeled "Hurricane Blas-Storm track".
SEE ALSO
Last updated May 10, 2020