IRIS Programmers Manual
IRIS Programmers Manual
IRIS
M211318EN-C
PUBLISHED BY
Vaisala 2013
Please observe that this manual does not create any legally binding
obligations for Vaisala towards the customer or end user. All legally
binding commitments and agreements are included exclusively in the
applicable supply contract or Conditions of Sale.
________________________________________________________________________________
Table of Contents
CHAPTER 1
GENERAL INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Version Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Related Manuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Documentation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
CHAPTER 2
INTRODUCTION TO IRIS PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Directory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Setting up the Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
CHAPTER 3
CUSTOM INPUT AND OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1 Input Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 User Product Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Building the Example Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Running the upi_rcv Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 IRIS Product and Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6 Customizing the Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7 The NORDRAD Area Definition File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
CHAPTER 4
DATA FORMATS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1 Scalar Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Structure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.1 beam_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.2 cappi_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.3 catch_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.4 catch_results Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.5 color_scale_def Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2.6 cross_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.7 dsp_data_mask Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.8 extended_header_v0 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.9 extended_header_v1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.10 extended_header_v2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.11 fcast_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.12 gage_psi_struct Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.13 gage_results Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.14 ingest_configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.15 ingest_data_header Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
VAISALA ________________________________________________________________________ 1
________________________________________________________________________________
2 _______________________________________________________________________________
________________________________________________________________________________
VAISALA ________________________________________________________________________ 3
________________________________________________________________________________
CHAPTER 5
UTILITIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1 Productx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.1 Invoking Productx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.2 Productx Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.2 Rays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.1 Invoking Rays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.2 Rays Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.2.1 Headers only Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.2.2 Velocity Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2.2.3 Extended Header Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
APPENDIX A
RADAR CONTROL PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
APPENDIX B
LINK TRANSMISSION FORMATS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
B.1 AWS (Austrian Weather Service) Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
B.2 HKO (HongKong Observatory) Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
APPENDIX C
UF FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.2 Single UF Ray Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.3 uf_mandatory_header2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
C.4 uf_optional_header Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
C.5 uf_data_header2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
C.6 uf_field_header2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
C.7 uf_fsi2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
APPENDIX D
RTD FORMATS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
D.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
D.2 Rtd_v1_xmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
D.3 Rtd_v2_xmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
D.4 Rtd_nids3_xmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4 _______________________________________________________________________________
________________________________________________________________________________
List of Figures
VAISALA ________________________________________________________________________ 5
________________________________________________________________________________
6 _______________________________________________________________________________
________________________________________________________________________________
List of Tables
VAISALA ________________________________________________________________________ 7
________________________________________________________________________________
8 _______________________________________________________________________________
Chapter 1 ________________________________________________________ General Information
CHAPTER 1
GENERAL INFORMATION
The IRIS programming interface gives you access to the radar, antenna,
and signal processing hardware, as well as the IRIS menus and utility
software. This means that you can expand the capabilities of IRIS for any
special purpose your site may require. For example:
Chapter 3, Custom Input and Output - shows how to define new IRIS
products types, which can be accessed through the IRIS menus. This
chapter contains an example program to help you get started.
VAISALA ________________________________________________________________________ 9
Programmers Manual_______________________________________________________________
You can download the latest versions of the manuals from Vaisala product
website, http://www.vaisala.com They can be read online using by
Adobe Reader, which is installed with IRIS.
Vaisala Inc.
7A Lyberty Way
Westford, MA 01886
email [email protected]
WARNING Warning alerts you to a serious hazard. If you do not read and follow
instructions very carefully at this point, there is a risk of injury or even
death.
10 __________________________________________________________________ M211318EN-C
Chapter 1 ________________________________________________________ General Information
CAUTION Caution warns you of a potential hazard. If you do not read and follow
instructions carefully at this point, the product could be damaged or
important data could be lost.
VAISALA _______________________________________________________________________ 11
Programmers Manual_______________________________________________________________
12 __________________________________________________________________ M211318EN-C
Chapter 2 _____________________________________________ Introduction to IRIS Programming
CHAPTER 2
INTRODUCTION TO IRIS
PROGRAMMING
0917-004
Figure 1 IRIS Directory Tree
IRIS_ROOT refers to the root directory for the IRIS system. It is often /
usr/sigmet; IRIS_ROOT is defined as an environment variable. When
referring to a file within the IRIS directory tree, this manual assumes
IRIS_ROOT to be the root directory. All pathnames are relative to
IRIS_ROOT, unless otherwise noted. All source code discussed here is
placed in the /src directory.
VAISALA _______________________________________________________________________ 13
Programmers Manual_______________________________________________________________
14 __________________________________________________________________ M211318EN-C
Chapter 2 _____________________________________________ Introduction to IRIS Programming
VAISALA _______________________________________________________________________ 15
Programmers Manual_______________________________________________________________
- If you are writing your own code to read or write IRIS products using
the IRIS data structures.
- If you are writing your own input or output pipe program to convert
the data to another format.
- If you are writing your own code to interface to the RCP and RVP
using our public APIs. This might be an offline diagnostic program,
for example.
- When defining new product types using UPI.
First, be sure to install the source files, object modules, libraries, and emacs
on your system. This is done by pushing these 4 buttons in the install
program. See the instructions for your operating system in the IRIS
Installation Manual.
Before you start writing new code, you need to set up directories to work
in. Do this with the following commands in the operator account:
$ cd
$ mkdir sigmet_src
$ cd sigmet_src
All the main IRIS source code reside in the release directory tree starting
at ${IRIS_ROOT}/src. It is all in 3 major subdirectories: libs, iris, and
utils. When making a change, do not change the source in the release tree.
Instead copy the files for the directory you are changing to the same
subdirectory of ~/sigmet. For example, to make a change to the
RainbowToIris input pipe, copy the files from ${IRIS_ROOT}/src/utils/
rainbow to ~/sigmet_src/utils/rainbow. You can then make your changes
and compile there. If you are modifying one of IRIS's standard pipes,
SIGMET strongly recommends that you rename it to a custom name. That
way it will not get replaced by the next upgrade.
16 __________________________________________________________________ M211318EN-C
Chapter 2 _____________________________________________ Introduction to IRIS Programming
You need to install the tomcat5 and Java rpms. Do this by following the
instructions in the chapter on Installing IRIS/Web Server in the Software
Installation Manual. Then you need to set the alternatives state of java and
javac to use the newly installed rpm. Do this with the "alternatives_java"
script file supplied by Vaisala.
You need to install the hdf5-devel rpm. Mount the IRIS/RDA release
cdrom and look in the directory RHEL5/extras/RPMS. If you do not have
a release cdrom, you can get them from our ftp site: ftp://ftp.sigmet.com/
outgoing/os_patches/RHEL5/RPMS. Install with the following command:
You need to install the OPERA BUFR development rpm. Mount the IRIS/
RDA release cdrom and look in the directory RHEL5/extras/RPMS. If you
do not have a release cdrom, you can get them from our ftp site: ftp://
ftp.sigmet.com/outgoing/os_patches/RHEL5/RPMS. Install with the
following commands:
VAISALA _______________________________________________________________________ 17
Programmers Manual_______________________________________________________________
18 __________________________________________________________________ M211318EN-C
Chapter 3 ____________________________________________________ Custom Input and Output
CHAPTER 3
CUSTOM INPUT AND OUTPUT
In this case, your pipe must explicitly open the input and output files. The
purpose of the "-if" argument (which is somewhat redundant with "-ip") is
to allow the pipe program to make nice diagnostic printouts, or to parse the
filename for information, without having to search the pathname for the
final "/".
The only information passed back to the calling program is the 8-bit exit
status. In normal cases is should return EXIT_SUCCESS (0). If it returns
EXIT_FAILURE (1), then IRIS will signal a messages saying "Error
running pipe, check log". It is important for the pipe program to write
diagnostic information to a log file. Sigmet suggests writing to the
${IRIS_LOG} directory.
VAISALA _______________________________________________________________________ 19
Programmers Manual_______________________________________________________________
Note that the input path is gone, and the option "-rerun" is supplied. When
the pipe is thus called, it can retrieve the stored information and write the
second output to the specified pathname.
EXIT_NOTHING indicates that the pipe ran without error, but there was
no output produced. IRIS will ignore and delete the output file. This is
useful for a pipe which needs to read several input files before producing
one output file. An example of such a pipe is the Rainbow input pipe
RainbowToIris, found in the directory ${IRIS_ROOT}/utils/rainbow.
One way to do this is by using IRIS's input and output mechanisms with no
handshaking. This scheme uses polling. For example the user places a
product file in a know directory, IRIS checks every few seconds. When it
finds a file it reads it in. Similarly, IRIS's output can place a file in a know
directory, and the user's program can poll for it. When using a polling
scheme, it is always desirable to first copy the file there with a "." prefix.
Once the file is fully there, rename it to a name without the dot. This
prevents the recipient from seeing a partial file.
20 __________________________________________________________________ M211318EN-C
Chapter 3 ____________________________________________________ Custom Input and Output
$ make upi_rcv
You may want to rename it, copy it elsewhere, and make a script file to
compile it. You can take the compile and link commands from the
makefile.
First create the directory on target into which IRIS can copy products. A
typical example might be /usr/iris_data/UPI. The actual directory name is
not important.
Copy the upi_rcv to the target computer (if it is different from where you
compiled it) so it can run there. You will need to set the mode again after
copying.
On the IRIS host system, create a new network output device called
"ToUPI" for sending products to the upi_rcv program. This is all done from
the setup utility - an example is shown below:
VAISALA _______________________________________________________________________ 21
Programmers Manual_______________________________________________________________
$ upi_rcv -d /usr/iris_data/UPI
Connection established
Connection closed
22 __________________________________________________________________ M211318EN-C
Chapter 3 ____________________________________________________ Custom Input and Output
The data type in a product file controls the color legend (the box containing
an array of colored rectangles with text next to them) The data type is
converted to text to label the legend, and is used internally to help control
how data values in Cartesian products are converted to colors. Some data
types do not display a color legend. Examples of these are products like
WARN, SLINE, TRACK, and VVP displayed as graphs.
The product type in a product file controls some of the text legend as well
as the geometry. Based on the product type, IRIS divides products into
several geometrical categories which determine what kind of overlays can
be drawn on the image:
The definitions for the data type parameters are found in the include/
dsp_lib.h file. The are also discussed in more detail in 4.3 Data Types on
page 71.
The definitions for the product types are found in the include/product.h
file.
VAISALA _______________________________________________________________________ 23
Programmers Manual_______________________________________________________________
legend, and the 4 lines above the time on the old-small sized legend. This
is controlled by the OUTPUT_LEGEND.DAT file. An example of this file
is below. As you can see, the format is more complicated. The column
headed by "R" stands for resolution, the number of characters on the line.
Low resolution windows can fit only 13 characters, while medium and
high resolution can fit 17 characters. Therefore, in general you must add
two definitions for each string you want to control. However, IRIS defaults
to the 11-character format for bigger displays if no 17-character entry is
defined. The column headed by "L" stands for line: "1" means line 7 on the
text legend, and "2" means line 8 on the text legend. The first entry in the
table is the product type, which must be USER, VUSER, or OTHER.
The general pattern of operation is as follows: When IRIS draws the legend
and the product type is either PROD_USER, PROD_USERV, or
PROD_OTHER, it searches this table. If it finds a match of the product
type, product name, resolutions, and line number, it is considered a match.
If it matches everything except the product name, then the first such match
in the table is taken as a default for all product names, and is considered a
match. If it would otherwise match, except that the desired resolution is
larger than the table, it is considered a match. If no match is found, it
displays blank.
If the flag is set to "SCALE", a 32-bit word is grabbed from the first byte
of the product header "product_specific_info" field offset by the offset in
the file. This number is converted to floating point, and multiplied by the
scale factor in the file. The C library routine sprintf is called with the
format statement and the resulting number as arguments. The resulting
string is displayed on the legend.
If the flag is neither of the above, a 32-bit word is grabbed from the first
byte of the product header "product_specific_info" field offset by the
offset in the file without any conversion. The C library routine sprintf is
called with the format statement and the 32-bit number as arguments. The
resulting string is displayed on the legend
# File: output_legend.dat
# Format:
24 __________________________________________________________________ M211318EN-C
Chapter 3 ____________________________________________________ Custom Input and Output
VAISALA _______________________________________________________________________ 25
Programmers Manual_______________________________________________________________
26 __________________________________________________________________ M211318EN-C
Chapter 3 ____________________________________________________ Custom Input and Output
The minimum must be between 0.001 and 1000.0, the maximum between
0.01 and 10000.0, and the span must be at least a factor of 10. If there is an
error, IRIS will signal when it reads the file. If there is no such line, IRIS
defaults to a span of 0.1 to 1000.
VAISALA _______________________________________________________________________ 27
Programmers Manual_______________________________________________________________
28 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
CHAPTER 4
DATA FORMATS
This chapter describes the archived data formats used by IRIS. These
formats include data storage on disk files, and output tape formats. Within
this chapter, all sizes and addresses are given in bytes. Also included are
tables of antenna, signal processor, and general-purpose constants.
VAISALA _______________________________________________________________________ 29
Programmers Manual_______________________________________________________________
next 45 degrees, etc. So you can convert an N-bit binary angle to degrees
with:
N
Degrees = 360 * Binary Angle / 2
30 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 31
Programmers Manual_______________________________________________________________
Source: headers.h
32 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
if the user selects "Use Default Scale" in the Color Scale Tool. The bit 11
is used to identify enumerated data type such as DB_HCLASS
(DB_HCLASS2), requiring further information about the discrete data
values.
In the first two cases, the number of colors can be anywhere from 2 to 16,
and optionally zoomed or split to effectively give up to 32 colors. True
color representation is possible in IRIS, too. The bits 10 and 11 in iflags
specify what to do with data off the end of the scale. There are two choices,
either saturate at the end (used the last color), or threshold (do not display).
For example a typical treatment of reflectivity would be to saturate the high
end of the scale (so as not to lose the strong features), and threshold at the
low end (to inhibit display of very weak speckles).
The number of main colors and labels in the legend is set by icolcnt. To
select which subset of colors is used for the scale, fill in the low byte of
iset_and_scale. The upper byte is not used in the product header.
For fixed spacing, set the istart and istep to the start and step values
desired. These values are integers which are 10 times the physical units as
discussed in the color_setup utility chapter of the IRIS Utilities Manual.
The labels of istart, istart+istep, istart+2*istep, etc. will show up on the
right side of the IRIS legend. There are two special cases: Width assumes
that the starting value is zero, and velocity assumes that the middle of the
scale is at zero. If the velocity step is set to zero it means automatically
scale to fit the Nyquist velocity.
For variable spacing (bit 8 ON), the numbers in the array ilevel_seams
control the starting values for each of the colors. The first seam is the
bottom of the first color. The top of the 16th color is computed by adding
the step between the 15th and 16th seam to the 16th seam. These seams are
data values, using the 16-bit versions of the data. For shear and height data,
for which there is no 16-bit version, the 8-bit version is used.
VAISALA _______________________________________________________________________ 33
Programmers Manual_______________________________________________________________
Enumerated data (bit 12 ON) can be treated as other data types, that is
either with fixed spacing or variable spacing.
34 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 35
Programmers Manual_______________________________________________________________
36 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 37
Programmers Manual_______________________________________________________________
38 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
Source: ingest.h
<structure_header> 12 Bytes
<ingest_configuration> 480 Bytes
<task_configuration> 2612 Bytes
Spare 732 Bytes
GPARM from DSP 128 Bytes
Reserved 920 Bytes
VAISALA _______________________________________________________________________ 39
Programmers Manual_______________________________________________________________
Source: product.h
40 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 41
Programmers Manual_______________________________________________________________
42 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 43
Programmers Manual_______________________________________________________________
44 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 45
Programmers Manual_______________________________________________________________
46 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
Previous to 7.31, IRIS acted as if the new setup question was set to record
data using local time. Some systems had their timezone set to UTC to make
sure data was recorded in UTC. This can now be changed. It is never
recommended to record data using summer time.
VAISALA _______________________________________________________________________ 47
Programmers Manual_______________________________________________________________
4.2.26 product_header_extensions
If the hdr.end.iExtendedHeaderOffset is non-zero, then there is a product
header extension, and this number if the byte offset from the beginning of
the file to the extension.
For example, in the the echo thickness product, we store two binary data
arrays, the first one is the thickness, and the second one is the average
reflectivity over that interval. The following name value pairs (the values
shown are example, but the names shown will be used: data_type=Z,
data_units=dBZ, x_size=120, y_size=120, data_storage=uint8_t,
data_bits=8, data_source=DB_DBZ, data_size=14400. We then
add a binary blob after the extension containing the average reflectivity.
48 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 49
Programmers Manual_______________________________________________________________
50 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 51
Programmers Manual_______________________________________________________________
52 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
In this coordinate system, I will call the X-coordinate of the left most end
of the line Xl and similarly the right most end Xr. Next we shift and scale
the coordinate system to keep the polynomial coefficients from becoming
too large. The equations for the transformation are:
X Xl
X' = ----------------
Xr Xl
Y' = Y
VAISALA _______________________________________________________________________ 53
Programmers Manual_______________________________________________________________
2 3 4 5
Y' = A 0 + A 1 X' + A 2 X' + A 3 X' + A 4 X' + A 5 X'
or
Y' = P X'
1 2
s tan dard deviation = --------
N Y' i P X' i
i = 1 N
1
East center = -------- Easti
N i = 1 N
1
North center = -------- Northi
N i = 1 N
54 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 55
Programmers Manual_______________________________________________________________
56 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 57
Programmers Manual_______________________________________________________________
58 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
68 252 <spare>
VAISALA _______________________________________________________________________ 59
Programmers Manual_______________________________________________________________
60 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
144 UINT2 Multi PRF mode flag: 0=1:1, 1=2:3, 2=3:4, 3=4:5
146 SINT2 Dual PRF delay
148 UINT2 AGC feedback code
150 SINT2 Sample size
152 UINT2 Gain Control flag (0=fixed, 1=STC, 2=AGC)
154 char[12] Name of file used for clutter filter
166 UINT1 Linear based filter number for first bin
167 UINT1 Log based filter number for first bin
168 SINT2 Attenuation in 1/10 dB applied in fixed gain mode
170 UINT2 Gas attenuation in 1/100000 dB/km for first
10000, then stepping in 1/10000 dB/km
172 UINT2 Flag nonzero means cluttermap used
174 UINT2 XMT phase sequence: 0:Fixed, 1:Random, 3:SZ8/
64
176 UINT4 Mask used for to configure the ray header.
180 UINT2 Time series playback flags, see OPTS_* in dsp.h
182 2 <spare>
184 char[16] Name of custom ray header
200 120 <spare>
VAISALA _______________________________________________________________________ 61
Programmers Manual_______________________________________________________________
62 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 63
Programmers Manual_______________________________________________________________
64 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 65
Programmers Manual_______________________________________________________________
34 2 <spare>
36 SINT4 Alert speed loss/gain in mm/sec, negative=loss
40 UINT4 Mask of protected areas checked for this corridor
44 UINT4 Mask of protected areas hit in this corridor
48 52 <spare>
66 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 67
Programmers Manual_______________________________________________________________
68 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 69
Programmers Manual_______________________________________________________________
70 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 71
Programmers Manual_______________________________________________________________
N
angle = ------
10
N 64
dBZ = ----------------
2
The overall range is from -31.5 dBZ to +95.5 dBZ in half dB steps as
follows. In data product files, the value of 255 indicates areas not scanned.
72 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
N 32768
dBZ = -------------------------
100
0 No data available
1 -327.67 dBZ
32768 0.00 dBZ
32769 0.01 dBZ
65534 327.66 dBZ
65535 Reserved for area not scanned in product files
0 0 deformation
1 0.001 10**-4 deformation
32766 32.766 10**-4 deformation
32767 Area not scanned
VAISALA _______________________________________________________________________ 73
Programmers Manual_______________________________________________________________
74 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 75
Programmers Manual_______________________________________________________________
Method 2 - PRECIPCLASSIFIER:
Method 3 - CELLCLASSIFIER:
CELL_CLASS_STRATIFORM =0 Stratiform
CELL_CLASS_CONVECTION =1 Convection
=2 Unused
=3 Forbidden
The value 255 (0xFF) of DB_HCLASS is reserved for "area not scanned",
and the use of value 3 (0x03) is forbidden in Method 3.
76 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 77
Programmers Manual_______________________________________________________________
N
angle = ------
10
N 129-
------------------
126
minimum
KDP = minimum -------------------------
maximum
Here is the conversion equation for positive values (stored value above
128):
129-
KDP = 0.25 600 N
------------------
126
Here is the conversion equation for negative values (stored value below
128):
78 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
N 32768
KDP = -------------------------
100
0 No data available
1 -327.67 deg/km
32768 0.00 deg/km
32769 0.01 deg/km
65534 327.66 deg/km
65535 Reserved for area not scanned in product files
N1
LDR db = ------------- 45.0
5
Like most power ratios this is expressed in dB. The overall range is from -
45 to +5.6 in steps of 0.2 dB as follows.
0 No data available
1 -45.0 dB
2 -44.8 dB
226 0.0 dB
254 +5.6 dB
255 Reserved for area not scanned in product files
VAISALA _______________________________________________________________________ 79
Programmers Manual_______________________________________________________________
1-
DP mod 180 = 180 * N
------------
254
0 No data available
1 0.00 deg
2 0.71 deg
101 70.87 deg
254 179.29 deg
255 Reserved for area not scanned in product files
80 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
N 1-
DP mod360 = 360 * --------------
65534
0 No data available
1 0.0000 deg
2 0.0055 deg
65534 359.9945 deg
65535 Reserved for area not scanned in product files
VAISALA _______________________________________________________________________ 81
Programmers Manual_______________________________________________________________
N 1-
RhoHV = ------------
253
82 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
N 1-
SQI = ------------
253
VAISALA _______________________________________________________________________ 83
Programmers Manual_______________________________________________________________
N 1
SQI = -----------------
65533
N 32768
Time = -------------------------
60
128- Nyquist
Velocity = N
------------------
127
84 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
N 32768
velocity = -------------------------
100
0 No data available
1 -327.67 m/s (towards the radar)
32768 0.00 m/s
32769 0.01 m/s
65534 327.66 m/s (away from the radar)
65535 Reserved for area not scanned in product files
N 32768
velocity = -------------------------
100
VAISALA _______________________________________________________________________ 85
Programmers Manual_______________________________________________________________
0 No data available
1 -327.67 m/s (towards the radar)
32768 0.00 m/s
32769 0.01 m/s
65534 327.66 m/s (away from the radar)
65535 Reserved for area not scanned in product files
86 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
n
W = ---------
256
The overall range is therefore a fraction between 1/256 and 255/256. The
code of 0 indicates that width data is not available at this range. To convert
the width to meters per second, multiply by the unambiguous velocity.
Thus the width has twice the resolution of the velocity. This unambiguous
velocity is not enlarged by the dual PRF scheme, but is halved by
alternating polarization. In data products, the value 255 indicates area not
scanned. Note that width unambiguous velocities are not changed for dual
PRF unfolding.
N
width = ---------
100
The overall range is from 0.01 to 655.34 in 1/100 of a meter per second
steps as follows.
0 No data available
1 0.01 m/s
32768 327.68 m/s
32769 327.69 m/s
65534 655.34 m/s
65535 Reserved for area not scanned in product files
N 128
dB ZDR = -------------------
16
The overall range is from -7.94 dBZ to +7.94 dBZ in sixteenth of a dB steps
as shown below. Positive ZDR means that the horizontal return is stronger
than the vertical return. In data products, the value 255 indicates area not
scanned.
VAISALA _______________________________________________________________________ 87
Programmers Manual_______________________________________________________________
1 -7.94 dB
128 0.00 dB
129 +0.06 dB
255 +7.94 dB
N 32768
dB ZDR = -------------------------
100
0 No data available
1 -327.67 dB
32768 0.00 dB
32769 0.01 dB
65534 327.66 dB
65535 Reserved for area not scanned in product files
88 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
Ray data are partially compressed with a truncation scheme. If a ray does
not contain data all the way out to the last range bin, those trailing bins are
removed from the archive. This means that the storage space required for
each ray varies, which requires the pointer table for quick random access.
The pointer points to a ray_header structure, which is followed by an array
of range bins. The count of the number of range bins could be zero, in
which case the ray contains only the 12-byte ray header.
The file consists of the product_hdr structure followed by the data. The
product configuration structure is exactly what is in one of the product
configuration files. It specifies how a product should be generated, and so
includes some information not strictly required to appear in the final disk
file.
VAISALA _______________________________________________________________________ 89
Programmers Manual_______________________________________________________________
90 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
Raw product files are blocked into 6144-byte records, which match the
record length used if and when the files are eventually written to tape.
Mimicking the tape structure on disk permits error recovery to be built
directly into the raw data format. For all other types of products, if a tape
I/O error occurs within the product's records on tape, then the entire
product is lost. For raw archive this would be too great a penalty, since an
entire volume scan is at stake. The blocking scheme permits partial error
recovery while still maintaining a one-to-one mapping between disk and
tape formats.
NOTE Note: The records are for IRIS interpretation only and do not refer to any
operating system file records.
The first 6144 byte record of a RAW product holds the product_hdr (4.2.25
product_hdr Structure on page 46) structure. Thus, the RAW product
begins with a product_hdr like all the other types of products. The only
difference is the zero padding out to 6144 bytes. The next record holds the
ingest_header (4.2.16 ingest_header Structure on page 39) structure for the
volume scan that supplied the data. Again, this structure is zero-padded to
fill the entire second record. All subsequent records hold the actual data,
and each record begins with the raw_prod_bhdr structure described in
4.3.29 1-byte Velocity Format (DB_VEL) on page 84.
Records hold data from one and only one sweep, and the sweep number is
found in each record's header. The data for the sweep is the concatenation
of all the data from as many records as pertain to that sweep. When data
for a sweep ends short of the 6144 byte record size, the remainder of that
record is padded with zeros. Each of these sweep data sets begins with the
ingest_data_header (4.2.15 ingest_data_header Structure on page 38)
structures for each data type that was recorded. The same number of
headers are found in the beginning of a sweep's data as there are data types
acquired during the sweep. The list of data types recorded is specified by
the data collection mask in the task_dsp_info within the task_configuration
within the ingest_header. The actual rays of data are found immediately
after the headers.
Rays are ordered within a sweep by the same ordering sequence used for
the ingest data file pointer table. If a ray is missing from the ingest file, a
zero-length ray is inserted into the product file as a placeholder. Thus, the
number of compressed rays in the file is equal to the product of the number
VAISALA _______________________________________________________________________ 91
Programmers Manual_______________________________________________________________
of data types recorded and the number of angles sampled. This is true even
if data were not actually acquired at some of those angles. Within a ray, the
recorded data are ordered by increasing data type number. See the
task_dsp_info structure for a definition of the data type numbers. All data
rays are compressed using the algorithm described in 4.5.4.1 Data
Compression Algorithm on page 92. Note that the raw product headers and
the ingest data headers are not compressed. The overall organization of the
file is shown below. Raw product files are blocked into 6144-byte records,
and all but the first two records begin with the raw_prod_bhdr 12-byte
structure.
92 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
VAISALA _______________________________________________________________________ 93
Programmers Manual_______________________________________________________________
94 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
used" field. Also if the calculation cannot be performed for some other
reason, then the standard deviation will be set to 32767. Analysis programs
should also check the standard deviations. Data fields which are turned off
in the product configuration will be set to zero. Therefore the "Wind
parameters mask" in the vvp_psi_struct in the product header needs to be
checked also. Note that only data bins with valid velocities not near zero
are included in the calculation. To compute the average reflectivity, bins
must also have a valid reflectivity. Because of this, it can produce a lower
number of valid bins, so the number of valid reflectivity bins is also
recorded. Same for RhoHV.
VAISALA _______________________________________________________________________ 95
Programmers Manual_______________________________________________________________
When IRIS copies files to other directories using the network product
output, it must generate a file name that is unique in the target directory.
To see the choices available for this, see the SETUP/OUTPUT section of
the IRIS Utilities Manual.
There is a special short record at the beginning of the tape that serves to
identify how and when the tape was initially created by the
init_iris_tape utility. This record contains the tape_header_record
structure, and is followed by an EOF and the product files, if any. There
are no special directory or inventory records on the tape. After a tape has
been started, the only additional writing that can be done is to append more
product file images to the end.
96 __________________________________________________________________ M211318EN-C
Chapter 4 _____________________________________________________________ Data Formats
4.8 Constants
Table 13 Data Type Constants /include/sigtypes.h
Extended Header is included here though it is not generated by the DSP.
In general, types 031 could be produced by the DSP.
DB_XHDR (0) Extended Headers
DB_DBT (1) Total power (1 byte)
DB_DBZ (2) Reflectivity (1 byte)
DB_VEL (3) Velocity (1 byte)
DB_WIDTH (4) Width (1 byte)
DB_ZDR (5) Differential reflectivity (1 byte)
DB_DBZC (7) Corrected reflectivity (1 byte)
DB_DBT2 (8) Total power (2 byte)
DB_DBZ2 (9) Reflectivity (2 byte)
DB_VEL2 (10) Velocity (2 byte)
DB_WIDTH2 (11) Width (2 byte)
DB_ZDR2 (12) Differential reflectivity (2 byte)
DB_RAINRATE2 (13) Rainfall rate (2 byte)
DB_KDP (14) KDP (Differential phase) (1 byte)
DB_KDP2 (15) KDP (Differential phase) (2 byte)
DB_PHIDP (16) PhiDP(Differential phase) (1 byte)
DB_VELC (17) Corrected velocity (1 byte)
DB_SQI (18) SQI (1 byte)
DB_RHOHV (19) RhoHV (1 byte)
DB_RHOHV2 (20) RhoHV (2 byte)
DB_DBZC2 (21) Corrected Reflectivity (2 byte)
DB_VELC2 (22) Corrected velocity (2 byte)
DB_SQI2 (23) SQI (2 byte)
DB_PHIDP2 (24) PhiDP (Differential phase) (2 byte)
DB_LDRH (25) LDR xmt H, rcv V (1 byte)
DB_LDRH2 (26) LDR xmt H, rcv V (2 byte)
DB_LDRV (27) LDR xmt V, rcv H (1 byte)
DB_LDRV2 (28) LDR xmt V, rcv H (2 byte)
...
DB_HEIGHT (32) Height (1/10 km) (1 byte)
DB_VIL2 (33) Linear liquid (.001mm) (2 byte)
DB_RAW (34) Raw Data
DB_SHEAR (35) Wind Shear (1 byte)
DB_DIVERGE2 (36) Divergence (2 byte)
DB_FLIQUID2 (37) Floated liquid (2 byte)
DB_USER (38) User type, unspecified data (1 byte)
VAISALA _______________________________________________________________________ 97
Programmers Manual_______________________________________________________________
98 __________________________________________________________________ M211318EN-C
Chapter 5 __________________________________________________________________ Utilities
CHAPTER 5
UTILITIES
5.1 Productx
The productx utility, or "product examiner," displays the information
contained in a specified product file.
For all product types, productx displays the product header, including
information such as the site where the ingest data came from, the date and
time when the ingest data was gathered, and its size. This is followe by
product-specific meta-data from the header for many product types.
Finally it displays the data values from the file. Note that for Cartesian data
files, this could be a large number of pixels. In this case it skips data to
present a summary display which fits on the terminal. If you want no
skipping, then specify a very large terminal width, say 10000.
Options
VAISALA _______________________________________________________________________ 99
Programmers Manual_______________________________________________________________
Each product file has a unique name based on the site ID, date, and a
randomize algorithm. The first three letters of the file extension state the
kind of product stored in the file:
$ productx HOT000602152122.STAZ0GN
------------- Product Summary for HOT000602152122.STAZ0GN -------------
Ingest site name : 'SIGMET, HOT', Version: 7.17
Ingest hardware name : 'SIGMET, HOT'
Product site name : 'SIGMET, HOT', Version: 7.17
File size: 2340 bytes (Disk space: 2340 bytes)
Product type is: Status
PCO name: SIGMET, HOT, TCO name: FAULT
PRF: 500Hz, Wavelength: 5.00cm, Nyquist: 6.25m/s(V), 6.25m/s(W)
Polarization: Horizontal, wind:???
Heights: Radar: 600m, Ground: 100m, Melting: ???m MSL
Size is: 0x0x0 pixels
Center Location: 42_33.0'N, 71_25.8'W, ref: 600 meters
Projection type is: Azimuthal Equidistant
719:255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
679:255 255 255 255 255 255 0 0 0 0 0 0 0 255 255 255 255 255
639:255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255
599:255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255
559:255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
519:255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
479:255 0 0 0 0 0 0 0 105 117 104 66 0 0 0 0 0 0
439:255 0 0 0 0 0 82 85 121 57 0 101 81 0 0 0 0 0
399:255 0 0 0 0 0 83 111 136 78 0 0 0 0 0 0 0 0
359:255 0 0 0 0 0 83 169 71 0 0 0 0 0 0 0 0 0
319:255 0 0 0 0 0 133 87 0 0 0 0 0 0 0 0 0 0
279:255 0 0 0 0 0 97 93 0 0 0 0 0 0 0 0 0 0
239:255 0 0 0 0 0 78 77 64 0 0 0 0 0 0 0 0 0
199:255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
159:255 255 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 255
119:255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255
79: 255 255 255 255 0 0 0 0 0 0 0 0 255 0 0 255 255 255
39: 255 255 255 255 255 255 0 0 0 0 0 0 0 255 255 255 255 255
5.2 Rays
The rays utility gives information about ingest files. You can choose to
display information about various parameters of the ingest data.
filename is the name of an ingest header file stored in the directory /usr/
iris_data/ingest. Ingest files are named for the date and time when the
data were gathered. For example, ingest data gathered at 10:17:30 on
December 2, 1994 would be stored in a file named 941202101730.
Options
To make it easier to enter the names of the ingest files, change your default
directory to the ingest directory and get a listing of all the header files (with
"ls *."). Then select the name of a file with the mouse and paste it into the
command line.
azimuth and elevation angles recorded with each ray. These are angles at
the beginning and ending of each ray.
Here are details, see also the extended_header_v1 structure in the IRIS
Programmer's Manual.
This shows the azimuth and elevation of the antenna, as well as the pitch,
roll, and heading of the platform. Also shown are the derivatives of those
five numbers in degrees/second. The extended header information is
recorded from a serial data stream transmitted from the RCP. Typically this
is configured to transmit updates at the maximum possible speed of about
"Tr" is the training angle, which is the pedestal relative azimuth of the
pedestal. Similarly "El_or" is the pedestal relative elevation angle. "Cor"
is the velocity correction in meters/second applied to the velocity data to
correct for platform motion. "Age" is the time in milliseconds since this
update arrived from the RCP. Finally the position and motion of the
platform is recorded. Altitude is in meters, and motions are in meters/
second.
APPENDIX A
RADAR CONTROL PROTOCOL
The interface to the RCP is typically via network UDP multicast packets.
Alternatively we can use a serial line, or a UNIX FIFO. When using the
network, all transmissions both directions are sent to the same address and
port number. This allows the seamless merging of data from multiple
clients. It also means that there is no longer a separate wire for transmit and
receive as with a serial cable. The data format consists of exactly the serial
format with a 16-byte prefix. The prefix consists of the packet size in
ASCII (8-bytes), followed by a ASCII code for the type of packet. The first
letter of the type is either "T" or "R" for transmit or receive. This is relative
to the main controlling host. If coding this up, you will need to filter on the
direction.
When using a two-way asynchronous RS-232 data line, the baud rate is
typically 9600 (19200+ for shipboard systems). Through this link, IRIS
controls the servo and antenna and receives feedback status. Information is
transferred in packets consisting of two or more bytes. Each packet begins
with a SYNC byte and ends with an END byte of FF(Hex). All SYNC
bytes have the MSB set, and the particular value indicates the type of
packet to follow. Types currently available are 80(hex) for antenna,
C0(hex) for BITE, AF(hex) for Q-BITE, and B0(hex) for time. The packet
layouts are shown below. Each type of packet has a specific direction of
travel (to or from IRIS), but packets can arrive in any order within the serial
stream.
The following angles, with the exception of the latitude and the longitude,
are transmitted as 14-bit binary angles. The latitude and longitude are both
21-bit binary angles.
The azimuth and the elevation angles are corrected angles relative to the
north and are the angles that the antenna is pointed relative to the deck of
the platform. These calculations are derivable from the other angles but are
also reported to assist in the data analysis, especially if one of the sensors
or the stabilization fails.
The pitch is the angle between the fore-and-aft axis of the platform and the
horizontal is measured in the vertical plane. The pitch is positive when the
bow is down and the roll is the rotation angle about the fore-and-aft axis in
its pitched position. The pitch is measured in the plane perpendicular to the
fore-and-aft axis, which is generally not the vertical plane, and the roll is
positive when the deck is down on the port side.
NOTE Note: The pitch can be directly measured by a level on the fore-and-aft
axis but the roll cannot be directly measured by a one-axis tilt meter.
The heading is referred to as the direction the platform is pointed but is not
the same as direction of motion. The platform could be pointed one way
and drifting backwards.
The time stamp is a 14-bit counter incremented by the RCP once per
millisecond. The RCP should latch all the data for a packet at the same
time. This counter allows the host computer to accurately judge the time
between samples without the serial line latencies and fluctuations due to
the time sharing operating system.
The position of the platform is reported by the latitude, the longitude, and
the altitude. Since the altitude may not be implemented for systems on
ships, the setting will be zero.
The BITE status packet consists of from 3 to 20 bytes. The first two and
the last bytes are used for identification purposes. The middle bytes must
have the MSB set to zero and can contain arbitrary status in the lower 7
bits. Typically this is used to report back individual bits containing the
results of tests such as cabinet interlocks, airflow sensors, and power
supply checks. This report should be sent by the BITE every time the status
changes. It should also send a report in response to the interrogate
command. IRIS sends the interrogate command every 60 seconds.
This example BITE packet is supported by the SIGMET RCP02 and RCP8
Radar Control Processors, and is an example of a mapping of arbitrary
control and status bits into a BITE packet.
The Q-BITE data stream consists of a series of integer values. Each value
is packed into a series of 7-bit characters, using between 1 and 5 depending
on the desired resolution. The low bits come first, and IRIS supports up to
32 bits per value. IRIS can easily be configured to display any such values
with appropriate units and scaling.
APPENDIX B
LINK TRANSMISSION FORMATS
The following byte contains one less than the line number for data that
follows. For example, FFh 0Ch means line 13 follows. This command also
implies that the previous line is zeroed from the current position to the end.
This command is the same as the normal data repeat command, except that
the repeat count is 12 bits. The high 8 bits of the repeat count are in the
following byte, and the low 4 bits are in the high 4 bits of the third byte.
The data value is in the low 4 bits of the third byte. For example, FEh 12h
34h means insert the data value 4 292 times.
The station identifier is configured from the setup utility. If multiple FBh
commands are received for a given image, the last one takes effect. There
must be at least one FBh command in each image. This command allows
data from multiple sites to be merged on one transmission line. IRIS
transmits only host site data.
This command specifies the time of the data in the current image. If
multiple FAh commands are received for a given image, the last one takes
effect. There must be at least one FAh command in each image. The 18-
byte string contains a text version of the time, such as "10-MAY-91
15:45:00." There is one space between the year and hours, and all numeric
fields are two digits, with leading zeros, if required. The month contains
the first three letters of the English month name.
F8h End-of-Image
This indicates that an image has been completely sent. Any future
transmissions relate to another image. After an F8h command and before
an FFh command, only FBh, FAh commands are processed. All other
commands are ignored.
The only use of a zero byte is to immediatly proceed on the the commands
below. This make it easy to sync up to the data stream.
The following byte contains the origin 1 line number in the range 1255.
This is followed by a variable length string of bytes containing a data
number followed by a repeat count. Data numbers are in the range 1
through 16.
This indicates that an image has been completely sent. Any future
transmissions relate to another image.
APPENDIX C
UF FORMAT
C.1 Introduction
UF (short for "Universal Format") is a radar data format originally
proposed and documented in the "Report on a Meeting to Establish a
Common Doppler Radar Data Exchange Format", page 1401 of the
November 1980 Bulletin of the American Meteorological Society.
Please look in our uf.h header file for additional documentation. These
structure names generally end with a "2" to indicate that they are 2-byte
aligned. The default is that all IRIS structures are 4-byte alligned unless
they end in a 2 or 8.
<uf_optional_header> 0 or 12 Words
<uf_data_header2> 3 + 2N Words
<uf_field_header2> #1 19 or 21 or 25 Words
data from field #1 M Words
<uf_field_header2>#2 19 or 21 or 25 Words
data from field #2 M Words
...(repeats for each data type)...
ray size 4 Bytes
APPENDIX D
RTD FORMATS
D.1 Introduction
IRIS can output a real-time display data stream using UDP data packets.
There are several formats provided, and the customer can also write their
own. The source code for these transmitter programs is in ${IRIS_ROOT}/
libs/rtq. The formats are documented in detail in the sig_rtdisp.h file.
Any computer running IRIS on that network can receive and process
(display) the real time display data. One nice factor about the real time
display is that it is completely scalable. If the IRIS Radar server is sending
real time display data, the load induced on the network, and the servers
CPU is constant no matter if none, one or a hundred machines are on that
network receiving and processing the real time display data. This is made
possible by the fact that the real time display is done in broadcast mode.
It should also be noted that UDP data does not get retransmitted upon
packet loss, and at the application level in IRIS, there is no attempt done at
detected packet losses nor asking for retransmissions. If such a loss occurs
at the transmitter, on the network, or at one or more receiving hosts, then a
gap would occur in the picture being drawn on the destination real time
displays. This of course differs from IRIS product transmission which are
done point-to-point via TCP and are reliable due to error checking and
retransmissions.
The load induced on the network by a real time display server broadcasting
is a function of the following: Number of moments being broadcast (up to
3 Z, V and W), the number of bins per radial and the scan rate of the
antenna. The total number of bins (combined for all moments) is
approximately 1400 per radial. An overhead of about 100 bytes per ray
exists. Each bin requires one byte of data. Thus this a scan rate of 5 RPM
(30 radials per second), requires about 1500 * 30 = 45000 bytes per second.
One must remember that the real time display bandwidth must be added to
any other IRIS and other bandwidth being occupied on your network.
Therefore, running the real time display on a remote radar connected via a
56K baud link would not be practical.
The real time display data stream can be configured to transmit using up to
6 different formats, IP addresses, and ports. See the setup utility
documentation in the SIGMET Utilities Manual. Normally gateways, such
as multi-homed hosts, bridges and routers will NOT pass IRIS real time
display data. This is because such devices are built to filter broadcast data.
This is the mechanism that keeps the real time display data on a single
network. However, it is usually possible to configure such devices to pass
broadcast data that is occurring on a specific port (like the real time display
port). This may be convenient in some installations.
To receive real time display data, the receive process needs to issue a
socket and a bind system call. Following this, the receiver can read
messages from the socket as they are transmitted.
D.2 Rtd_v1_xmt
There are three different messages transmitted as part of the real time
display data stream. The messages are distinguished by the the first two
bytes (SHORT) in the message summarized in the following table (see
definitions in sig_rtdisp.h):
RTRAY_TYPE_HEADER
RTRAY_TYPE_RAY
RTRAY_TYPE_RAY
The message RTRAY_TYPE_RAY begins with the two byte ID. What
this is followed by depends on the type of data being transmitted by the real
time display sender. This is chosen in the senders setup utility and can
consists of 1, 2 or 3 data types being Z, V or W. The volume header
indicates which data types are currently being transmitted and in which
order the data types are being presented. For example, if only Z and V are
being transmitted, the RTRAY_TYPE_RAY message will consist of its
two byte message ID, followed by a struct rtd_v1_ray_header, followed by
the data elements for Z, followed by the V elements. The Z and V elements
are presented as one byte per range bin. The scaling of the elements is
defined in 4.3 Data Types on page 71. For example, if the volume header
indicates that 200 bins of each type are being transmitted, then the Z
elements (and the V elements) would each be 200 bytes long each, with
each byte representing one range bin. The spacing between the range bins
is also defined by the volume header.
D.3 Rtd_v2_xmt
This format is designed to support the full number of range bins, almost the
full number of data types, and both 8-bit and 16-bit data formats. As a
result each radial must be split into potentially many individual 1500 byte
UDP packets. Similar to rtd_v1_xmt, the volume header
rtd_v2_vol_header is sent periodically. Every 25 rays, or when there is a
change. Otherwise the rtd_v2_ray_header is sent followed by data.
D.4 Rtd_nids3_xmt
This format is designed to support a legacy data format used by Radtec. All
packets are the same format, with minimal header information. Data can be
either 8-bit or 4-bit format. There is a config file rtd_nids3_xmt.conf which
controls some details.
INDEX
A DB_USER constant 97
DB_VEL constant 97
Antenna library, subdirectory 14 DB_VEL2 constant 97
AWS product transmission format 121 DB_VIL2 constant 97
Axis of Dillitation, 2-byte data format 72 DB_VVEL2 constant 98
DB_WIDTH constant 97
B DB_WIDTH2 constant 97
DB_XHDR constant 97
beam_psi_struct structure 30 DB_ZDR constant 97
BITE command packet 118 DB_ZDR2 constant 97
BITE individual command 119 Deformation, data format, 73
BITE packet 117 Divergence, data format 73
DSP library, subdirectory 14
C dsp_data_mask structure 34
cappi_psi_struct structure 31 E
Cartesian product, file format 90
Catch_psi_struct structure 31 Echo Tops, data format 77
Catch_results structure 31 extended_header format, ingest file 72
Chat-mode packet 120 extended_header_v0 structure 34, 35
color_scale_def structure 32 in ingest file data format 72
Config library, subdirectory 14 extended_header_v1 structure 35
cross_psi_struct structure 34 in ingest file data format 72
D F
136 _____________________________________________________________________________
________________________________________________________________________________
U ZDR
2-byte data format 87
UF format 125 ingest file format, 1-byte 87
138 _____________________________________________________________________________
________________________________________________________________________________
140 _____________________________________________________________________________
www.vaisala.com
*M211318EN*