IRIS Programmers Manual
IRIS Programmers Manual
Programming
Guide
IRIS Radar
IRIS
PUBLISHED BY
Vaisala Oyj
Street address: Vanha Nurmijärventie 21, FI-01670 Vantaa, Finland
Mailing address: P.O. Box 26, FI-00421 Helsinki, Finland
Phone: +358 9 8949 1
© Vaisala 2017
Table of Contents
1. About This Document......................................................................................7
1.1 Version Information.............................................................................................7
1.2 Related Documents............................................................................................. 7
1.3 Documentation Conventions............................................................................. 8
1.4 Trademarks...........................................................................................................8
4. Data Formats.................................................................................................... 23
4.1 Data Format Overview..................................................................................... 23
4.2 Scalar Definitions.............................................................................................. 23
4.3 Structure Definitions.........................................................................................24
4.3.1 beam_psi_struct Structure....................................................................... 24
4.3.2 cappi_psi_struct Structure........................................................................24
4.3.3 catch_psi_struct Structure........................................................................25
4.3.4 catch_results Structure..............................................................................25
4.3.5 color_scale_def Structure......................................................................... 26
4.3.6 cross_psi_struct Structure........................................................................ 27
4.3.7 dsp_data_mask Structure......................................................................... 28
4.3.8 extended_header_v0 Structure............................................................... 28
4.3.9 extended_header_v1 Structure................................................................ 28
4.3.10 extended_header_v2 Structure................................................................29
4.3.11 fcast_psi_struct Structure.........................................................................30
4.3.12 gage_psi_struct Structure........................................................................ 30
4.3.13 gage_results Structure.............................................................................. 30
4.3.14 ingest_configuration Structure..................................................................31
4.3.15 ingest_data_header Structure..................................................................32
4.3.16 ingest_header Structure............................................................................33
4.3.17 max_psi_struct Structure..........................................................................33
4.3.18 mlhgt_psi_struct Structure.......................................................................34
4.3.19 ndop_input Structure................................................................................ 34
4.3.20 ndop_psi_struct Structure........................................................................ 35
4.3.21 ndop_results Structure.............................................................................. 35
4.3.22 one_protected_region Structure..............................................................35
4.3.23 ppi_psi_struct Structure............................................................................36
4.3.24 product_configuration Structure............................................................. 36
4.3.25 product_end Structure.............................................................................. 39
4.3.26 product_hdr Structure...............................................................................42
1
IRIS Programming Guide M211318EN-G
4.3.27 product_header_extensions.....................................................................43
4.3.28 product_specific_info Structure.............................................................. 43
4.3.29 protect_setup Structure............................................................................ 45
4.3.30 rain_psi_struct Structure...........................................................................45
4.3.31 raw_prod_bhdr Structure......................................................................... 45
4.3.32 raw_psi_struct Structure...........................................................................46
4.3.33 ray_header Structure.................................................................................46
4.3.34 rhi_psi_struct Structure.............................................................................47
4.3.35 rti_psi_struct Structure..............................................................................47
4.3.36 shear_psi_struct Structure........................................................................47
4.3.37 sline_psi_struct Structure......................................................................... 48
4.3.38 sline_results Structure............................................................................... 48
4.3.39 sri_psi_struct Structure.............................................................................50
4.3.40 status_antenna_info Structure.................................................................. 51
4.3.41 status_device_info Structure.................................................................... 52
4.3.42 status_message_info Structure................................................................ 52
4.3.43 status_misc_info Structure....................................................................... 52
4.3.44 status_one_device Structure.................................................................... 53
4.3.45 status_one_process Structure..................................................................54
4.3.46 status_process_info Structure..................................................................54
4.3.47 status_results Structure............................................................................ 54
4.3.48 structure_header Structure.......................................................................55
4.3.49 tape_header_record Structure................................................................. 55
4.3.50 task_calib_info Structure.......................................................................... 56
4.3.51 task_configuration Structure.................................................................... 57
4.3.52 task_dsp_info Structure............................................................................ 57
4.3.53 task_dsp_mode_batch Structure............................................................ 59
4.3.54 task_end_info Structure............................................................................59
4.3.55 task_file_scan_info Structure.................................................................. 60
4.3.56 task_manual_scan_info Structure........................................................... 60
4.3.57 task_misc_info Structure.......................................................................... 60
4.3.58 task_ppi_scan_info Structure....................................................................61
4.3.59 task_range_info Structure..........................................................................61
4.3.60 task_rhi_scan_info Structure.....................................................................61
4.3.61 task_scan_info Structure...........................................................................62
4.3.62 task_sched_info Structure........................................................................ 63
4.3.63 tdwr_psi_struct Structure......................................................................... 63
4.3.64 tdwr_results Structure...............................................................................64
4.3.65 text_results Structure................................................................................ 64
4.3.66 top_psi_struct Structure........................................................................... 64
4.3.67 track_psi_struct Structure........................................................................ 65
4.3.68 track_results Structure.............................................................................. 65
4.3.69 vad_psi_struct Structure...........................................................................66
4.3.70 vad_results Structure.................................................................................66
4.3.71 vvp_psi_struct Structure........................................................................... 67
4.3.72 vvp_results Structure.................................................................................67
4.3.73 warn_psi_struct Structure........................................................................ 68
4.3.74 warning_results Structure.........................................................................68
4.3.75 wind_psi_struct Structure.........................................................................69
4.3.76 wind_results Structure.............................................................................. 70
4.3.77 ymds_time Structure................................................................................. 70
2
Table of Contents
3
IRIS Programming Guide M211318EN-G
Warranty...................................................................................................................... 145
4
Table of Contents
Recycling..................................................................................................................... 145
5
IRIS Programming Guide M211318EN-G
List of Tables
Table 1 Document Versions.............................................................................................. 7
Table 2 Weather Radar Documentation........................................................................ 7
Table 3 Input Pipe Message Returns............................................................................. 17
Table 4 Example Programs.............................................................................................. 18
Table 5 Product Types......................................................................................................20
Table 6 out_legend.dat Flag Values............................................................................. 22
Table 7 IRIS Data Types....................................................................................................23
Table 8 IRIS Timezone Recording................................................................................. 42
Table 9 Data Types............................................................................................................. 71
Table 10 Method 1 - METEOCLASSIFIER (HydroClass)..............................................77
Table 11 Method 2 - PRECIPCLASSIFIER...................................................................... 77
Table 12 Method 3 - CELLCLASSIFIER...........................................................................77
Table 13 Ingest Data File Format..................................................................................... 91
Table 14 Product File Format........................................................................................... 92
Table 15 Compression Code Meanings..........................................................................95
Table 16 Raw Product Example.......................................................................................96
Table 17 TIFF Fields Used by IRIS................................................................................... 99
Table 18 Data Type Constants — /include/sigtypes.h...............................100
Table 19 Raw Product Parameters................................................................................ 103
Table 20 Product File Naming........................................................................................ 103
Table 21 Ray Options........................................................................................................ 108
Table 22 Status Packet RCV01 Format (RCP to Host).............................................. 114
Table 23 Control Packet XMT01 Format (Host to RCP)............................................ 115
Table 24 Status Packet RCV02 / RCV04 Format (RCP to Host)............................116
Table 25 Control Packet XMT02 / XMT04 Format (Host to RCP)..........................117
Table 26 Status Packet RCV03 Format (RCP to Host)..............................................118
Table 27 Status Packet RCV05 Format (RCP to Host)..............................................121
Table 28 Control Packet XMT05 Format (Host to RCP)...........................................122
Table 29 Time Packet (RCP to Host)............................................................................. 122
Table 30 Generic BITE Status Packet (Both ways)....................................................123
Table 31 BITE Command Packet (Both ways)............................................................ 123
Table 32 Auxiliary Control BITE Packets (Both ways)..............................................124
Table 33 Q-BITE Status Packet (Both ways)...............................................................125
Table 34 Simple Q-BITE Example.................................................................................. 125
Table 35 Q-BITE Interrogate Packet (Both ways)..................................................... 125
Table 36 BITE Individual Command Packet (Host to RCP).....................................126
Table 37 Chat-Mode Packet (Both ways).................................................................... 126
Table 38 HKO Picture types.............................................................................................129
Table 39 Network Load From RTD Dependencies.................................................... 137
Table 40 Supported IRIS Input Pipes............................................................................. 141
Table 41 Supplied IRIS Output Pipes............................................................................ 143
6
Chapter 1 – About This Document
1.2 Related Documents
Table 2 Weather Radar Documentation
For information on changes made since your current release was installed, download the
latest document versions and check the IRIS and RDA Release Notes from www.vaisala.com.
Vaisala encourages you to send your comments or corrections to [email protected]
7
IRIS Programming Guide M211318EN-G
1.3 Documentation Conventions
WARNING! Warning alerts you to a serious hazard. If you do not read and follow
instructions carefully at this point, there is a risk of injury or even death.
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.
Indicates that you need to take some notes during the task.
1.4 Trademarks
HydroClass™ is a trademark of Vaisala Oyj.
8
Chapter 2 – Introduction to IRIS Programming
2. Introduction to IRIS
Programming
2.1 IRIS Programming Interface
The IRIS programming interface provides access to the radar, antenna, and signal processing
hardware, as well as to the IRIS software.
You can expand the capabilities of IRIS to, for example:
• Create special-purpose products.
• Write applications that accept data generated by IRIS.
• Write new interfaces to IRIS.
2.2 Directory Organization
IRIS source files, object modules, and library routines are in separate branches of the IRIS
directory tree.
IRIS_ROOT refers to the root directory for the IRIS system. Often /usr/sigmet;
IRIS_ROOT is defined as an environment variable.
In this document, pathnames are relative to IRIS_ROOT, unless otherwise noted. All source
code is in the /src directory.
All system wide header files are in the ${IRIS_ROOT}/include directory, and all
library .a files are in the ${IRIS_ROOT}/lib directory.
9
IRIS Programming Guide M211318EN-G
Base Subdirectory
│── base
│ ├── antenna_lib
│ ├── antennax
│ ├── ant_utils
│ ├── ascope
│ ├── audio
│ ├── audio_lib
│ ├── bitex
│ ├── bxutils_lib
│ ├── config_lib
│ ├── dpolapp_lib
│ ├── dsp_lib
│ ├── dspx
│ ├── exthdr_lib
│ ├── fileformats_lib
│ ├── himath_lib
│ ├── icons
│ ├── include
│ │ └── embhw
│ ├── install_tools
│ │ └── tests
│ ├── irisscan_lib
│ ├── keys
│ ├── linux_configs
│ │ ├── desktop
│ │ └── etc
│ │ ├── profile.d
│ │ └── sigmet
│ ├── maps_lib
│ │ └── overlay_icons
│ ├── misc
│ ├── misc_lib
│ │ └── tests
│ ├── nexrad
│ ├── rscan_lib
│ ├── rtdisp
│ ├── rtq_lib
│ ├── setup
│ ├── sounds
│ ├── suncal
│ ├──
tvsubs_lib
│ ├── user_lib
│ ├── uxsig_lib
│ ├── vtv_lib
│ ├── xsig_lib
│ └── zauto7
10
Chapter 2 – Introduction to IRIS Programming
Config Subdirectory
├── config_template
│ └── init
11
IRIS Programming Guide M211318EN-G
IRIS Subdirectory
└── iris
├── adids_pipe
├── archive
├── archive2_pipe
├── asterix_pipe
├── bufr_pipe
├── convert_lib
│ └── tests
├── custom
├── dmrl
├── dwr2_pipe
├── ewis_pipe
├── examiners
├── examples
├── grib1_pipe
├── hdf5_pipe
├── include
├── ingest
├── ingfio
├── input
├── mcidas_pipe
├── misc
├── network
├── ngpipes
│ ├── grib
│ ├── hdf5
│ └── metar
├── nordrad
├── nordrad1_lib
├── nordrad2
├── nordrad2_lib
├── out_lib
│ └── sws_icons
├── output
├── pipes_in
├── pipes_out
├── pipesup_lib
├── prodsup_lib
├── product
├── rainbow_pipe
├── reingest
12
Chapter 2 – Introduction to IRIS Programming
├── ribbon_lib
├── ribbuild
├── share_lib
│ ├── menu
│ └── tests
├── siris
├── sserver
├── sws_lib
├── tdwr
├── ualf_pipe
├── uf_pipe
├── watchdog
├── window
├── wrdata_lib
└── xuif
1. Copy the files you need and the release config.mk file.
13
IRIS Programming Guide M211318EN-G
2. In the operator account, set up your developer tree with the following commands:
$ cd
$ mkdir src
$ cd src
$ cp -r /usr/sigmet/src ./sigmet
You can execute sudo make install in any directory, including root of the tree.
However, if you make changes in the base sub-tree, you must execute make and
sudo make install before building any binaries in the iris sub-tree.
3. To compile and install the base or iris sub-tree, at the base of the sub-tree type:
a. make
b. sudo make install
14
Chapter 2 – Introduction to IRIS Programming
15
IRIS Programming Guide M211318EN-G
16
Chapter 3 – Custom Input and Output
The information passed back to the calling program is the 8-bit exit status.
Note that:
• Pipes must explicitly open the input and output files.
• The pipe program must write diagnostic information to a log file. Vaisala recommends
writing to the ${IRIS_LOG} directory.
Message Description
EXIT_FAILURE (1) IRIS sends the messages: Error running pipe, check log.
EXIT_RERUN (2) The pipe has produced a normal output, and needs to produce a second output
file but is unable to do so.
The pipe must store information about the second output on disk. Vaisala
recommends writing this in the ${IRIS_TEMP} directory.
IRIS processes the first output, then reinvokes the pipe with the following
command line:
When the pipe is called, it can retrieve the stored information and write the
second output to the specified pathname.
EXIT_NOTHING (3) The pipe ran without error, but no output was produced.
Useful for a pipe that must read several input files before producing an output
file.
IRIS ignores and deletes the output file.
For example, the Rainbow input pipe RainbowToIris, in the $
{IRIS_ROOT}/utils/rainbow directory.
17
IRIS Programming Guide M211318EN-G
Polling
In polling, the product is passed from the user program using IRIS input and output
mechanisms with no handshaking.
For example, you can place the product file in a known directory that IRIS checks every few
seconds. When IRIS finds a file, it reads it. You can also place IRIS output files in a known
directory that is polled by the other program.
When using a polling scheme, first copy the file to the directory with a "." prefix. When the
file is fully there, rename it without the ".". This prevents the recipient from seeing a partial
file.
Program Description
upi_rcv Receives a file from IRIS, prints out the file name, then deletes it. It can be
customized to your requirements.
18
Chapter 3 – Custom Input and Output
4. To rename the program, copy it elsewhere and make a script file to compile it.
Take the compile and link commands from the Makefile file.
19
IRIS Programming Guide M211318EN-G
Product Types
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:
Vertical These products can have a range/height overlay grid. Cross Section
20
Chapter 3 – Custom Input and Output
Data Types
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, for example, WARN,
SLINE, TRACK, and VVP are displayed as graphs.
21
IRIS Programming Guide M211318EN-G
SCALE A 32-bit word is grabbed from the first byte of the product header
product_specific_infofield 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.
Neither 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.
For example:
# File: output_legend.dat
# Format:
# Valid flags are: SCALE, REF, <anything else>
# R=resolution, L=line, O=offset
#ptype productname R L O scale flag format
USER DEFAULT 11 1 4 0.00001 SCALE "Hght:%3.1f"
USER Z_010_120 11 1 4 0.00001 SCALE "Hght:%3.1f"
USER DEFAULT 11 2 8 1 - "Flag:%d"
USER Z_010_120 11 2 8 1 - " "
VUSER DEFAULT 11 1 4 1 - " "
USER DEFAULT 17 1 4 0.00001 SCALE "Height:%3.1f"
USER Z_010_120 17 1 4 0.00001 SCALE "Height:%3.1f"
USER DEFAULT 17 2 8 1 - "Flag:%d"
USER Z_010_120 17 2 8 1 - " "
VUSER DEFAULT 17 1 4 1 - " "
22
Chapter 4 – Data Formats
4. Data Formats
4.1 Data Format Overview
The archived data formats used by IRIS include data storage on disk files, and output tape
formats.
The data formats also include antenna, signal processor, and general-purpose constants.
All data format sizes and addresses are given in bytes.
4.2 Scalar Definitions
The file ${IRIS_ROOT}/include/sigtypes.h defines some scalar data typedefs
that can be used across platforms. The data types are used by the IRIS library routines for
defining return values and routine arguments.
A binary angle is an efficient way to store an angle into an integer. In this format the MSB
has weight 180°, the next bit means 90°, the next 45°, and so on.
You can convert an N-bit binary angle to degrees with:
23
IRIS Programming Guide M211318EN-G
4.3 Structure Definitions
The structure definitions are provided in tables with the following information about each
structure:
• Source — The name of the include file containing the C structure definition. The source
files can be found in the ${IRIS_ROOT}/include directories.
• Byte — The byte offset of the structure element.
• Size — The data type of the element.
For structures and spare space, the size in bytes is displayed here. Arrays are
designated by a data type followed by a number in square brackets.
• Contents — A brief description of the structure element.
Structure elements are identified with angle brackets such as <ymds_time>.
<spare> indicates reserved space.
4.3.1 beam_psi_struct Structure
Source: headers.h
4.3.2 cappi_psi_struct Structure
Source: headers.h
24
Chapter 4 – Data Formats
8 UINT2 Flags:
Bit 0= make pseudo CAPPI
Bit 1= Velocity is horizontal winds
4.3.3 catch_psi_struct Structure
Source: headers.h
4.3.4 catch_results Structure
Source: product.h
25
IRIS Programming Guide M211318EN-G
40 UINT4 Flags
Bit 0: Warning enabled for this catchment
Bit 1: Warning triggered for this catchment
48 52 <spare>
4.3.5 color_scale_def Structure
Source: headers.h
0 UINT4 iflags:
Bit 8=COLOR_SCALE_VARIABLE
Bit 10=COLOR_SCALE_TOP_SAT
Bit 11=COLOR_SCALE_BOT_SAT
Bit 12=ENUMERATED DATA
14 UINT2 iset_and_scale: Color set number in low byte, color scale number in high
byte.
26
Chapter 4 – Data Formats
Vaisala may remove this structure in future because IRIS can override this at display time.
This is only used 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.
To specify the color scale, use one of the following:
• Fixed scale has uniformly spaced numbers fully specified by a start and step value
• Variable scale is specified by a set of 16 individually controlled data seams
• Enumerated data in which each value has an discrete meaning, defined by the string
data in enumeration_def structures, which can represent enumeration data as multiples
of 14 classes
The iflags bits COLOR_SCALE_VARIABLE, overruled by ENUMERATED_DATA (relates to
products using DB_HCLASS) indicate which mode is in effect.
In the first two cases, the number of colors can be 2 ... 16, and optionally zoomed or split to
give up to 32 colors. True color representation is possible in IRIS. Bits 10 and 11 in iflags
specify what to do with data off the end of the scale. The choices are:
• saturate at the end (use the last color)
• threshold (do not display)
A typical treatment of reflectivity is 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, and so on appear on the right side of the IRIS legend. Note that:
• Width assumes that the starting value is 0.
• Velocity assumes that the middle of the scale is at 0.
If the velocity step is set to 0 it means, the spacing automatically scales 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.
Enumerated data (bit 12 ON) can be treated as other data types, that is either with fixed
spacing or variable spacing.
4.3.6 cross_psi_struct Structure
Source: headers.h
27
IRIS Programming Guide M211318EN-G
2 10 <spare>
4.3.7 dsp_data_mask Structure
Source: sigtypes.h
4 UINT4 Extended
header type
8 UINT4 Mask word 1 Contains bits set for all recorded data.
12 UINT4 Mask word 2 See the DB_* parameter in Table 18 (page 100) for bit
specification.
16 UINT4 Mask word 3
4.3.8 extended_header_v0 Structure
Source: ingest.h
6 14 <spare>
4.3.9 extended_header_v1 Structure
Source: ingest.h
28
Chapter 4 – Data Formats
4.3.10 extended_header_v2 Structure
Source: none
6 2 <spare>
29
IRIS Programming Guide M211318EN-G
4.3.11 fcast_psi_struct Structure
Source: headers.h
24 UINT4 Flags
4.3.12 gage_psi_struct Structure
Source: headers.h
4 UINT4 Flag bits: 0 = File has distrometers 1 = File does not have gages
4.3.13 gage_results Structure
Source: product.h
30
Chapter 4 – Data Formats
29 uint8_t Flag bits: 0 = Skip this gage for correction calculation1 = Gage has Z/R
numbers2 = Gage does not have rainrate3 = Radar rainrate filled in
36 4 <spare>
4.3.14 ingest_configuration Structure
Source: ingest.h
88 12 <ymds_time> Time that volume scan was started, TZ spec in bytes 166 &
224
114 SINT2 Number of bytes in extended ray headers (includes normal ray header)
120 4 <spare>
148 SINT2 Time zone of local standard time, minutes west of GMT
166 SINT2 Time zone of recorded standard time, minutes west of GMT
168 BIN4 Latitude of radar (binary angle: 20000000 hex is 45º North)
172 BIN4 Longitude of radar (binary angle: 20000000 hex is 45º East)
31
IRIS Programming Guide M211318EN-G
204 SINT4[3] Antenna offset from INU (cm) (starboard, bow, up)
216 UINT4 Fault status at the time the task was started, bits:
0:Normal BITE
1:Critical BITE
2:Normal RCP
3:Critical RCP
4:Critical system
5:Product gen.
6:Output
7:Normal system
220 SINT2 Height of melting layer (meters above sea level) MSB is complemented,
0=Unknown
222 2 <spare>
4.3.15 ingest_data_header Structure
Source: ingest.h
0 12 <structure_header>
The size stored here is the total size of the file:
76 + 4*Irtotl + Iwritn*raysize
12 12 <ymds_time>
Date and time the sweep started TZ specified in
ingest_configuration
See 4.3.77 ymds_time Structure (page 70).
32
Chapter 4 – Data Formats
40 36 <spare>
4.3.16 ingest_header Structure
A file containing the ingest_header structure is written for each volume scan.
This file is updated each time a sweep finishes. This allows product generators to get data
from the ingest files as soon as a sweep is completed.
Source: ingest.h
<structure_header> 12 Bytes
4.3.17 max_psi_struct Structure
Source: headers.h
0 4 <spare>
33
IRIS Programming Guide M211318EN-G
4.3.18 mlhgt_psi_struct Structure
Source: headers.h
4 int16_t Momentary ML altitude averaged through the product area [m] (MSL)
4.3.19 ndop_input Structure
Source: headers.h
15 UINT1 Flags
34
Chapter 4 – Data Formats
4.3.20 ndop_psi_struct Structure
Source: headers.h
0 3*16 <ndop_input>
68 char[4] Output site code, added in 8.09.6, use first input if zeroed
72 8 <spare>
4.3.21 ndop_results Structure
Used for both the NDOP and FCAST products. The change rate is always zero in NDOP
products. The Signal Quality Index (SQI) is unused in FCAST products. The SQI is a function
of the variance of the calculated velocity normalized such that random vectors at half the
Nyquist velocity would produce an SQI of zero.
������������ + ������������ℎ
��� = 1 − /�����
2
Source: product.h
7 5 <spare>
4.3.22 one_protected_region Structure
Source: setup.h
35
IRIS Programming Guide M211318EN-G
18 2 <spare>
4.3.23 ppi_psi_struct Structure
Source: headers.h
4.3.24 product_configuration Structure
Source: product.h
0 12 <Structure_Header>
36
Chapter 4 – Data Formats
37
IRIS Programming Guide M211318EN-G
20 12 <ymds_time>
Time product was generated (UTC).
See 4.3.77 ymds_time Structure (page 70).
32 12 <ymds_time>
Time of input ingest sweep (TZ flex).
See 4.3.77 ymds_time Structure (page 70).
44 12 <ymds_time>
Time of input ingest file (TZ flexible)
See 4.3.77 ymds_time Structure (page 70).
56 6 <spare>
124 SINT4 Maximum range in cm (used only in version 2.0, raw products)
128 2 <spare>
38
Chapter 4 – Data Formats
130 UINT2 Data type generated. See 4.9 Constants (page 99).
144 UINT2 Data type used as input. See 4.9 Constants (page 99).
147 1 <spare>
164 80 <product_specific_info>
260 12 <spare>
272 48 <color_scale_def>
Color scale definition. May be removed in the future.
See 4.3.5 color_scale_def Structure (page 26).
4.3.25 product_end Structure
Source: product.h
32 12 <ymds_time>
Time of oldest input ingest file (only RAIN1 and RAINN, TZ flexible)
44 28 <spare>
74 char[16] Hardware name where ingest data came from (space padded)
90 char[16] Site name where ingest data came from (space padded)
39
IRIS Programming Guide M211318EN-G
146 UINT2 Number of linear based filter for the first bin
168 UINT2 Flag wordBit0: Disdrometer failed. Used setup for Z/R source instead
170 SINT2 Number of ingest or product files used to make this product (only on
RAIN1 and RAINN)
190 uint16_t TCF Cal flags, see struct task_calib_info (added in 8.12.3)
192 uint16_t TCF Cal flags2, see struct task_calib_info (added in 8.12.3)
194 uint8_t if enumerated data (DB_HCLASS) the identifier of classifier in the first bit
segment else <spare>
40
Chapter 4 – Data Formats
195 uint8_t if enumerated data (DB_HCLASS) the identifier of classifier in the 2nd bit
segment else <spare>
196 uint8_t if enumerated data (DB_HCLASS) the identifier of classifier in the 3rd bit
segment else <spare>
197 uint8_t if enumerated data (DB_HCLASS2) the identifier of the 4th classifier else
<spare>
198 uint8_t if enumerated data (DB_HCLASS2) the identifier of the 5th classifier else
<spare>
199 uint8_t if enumerated data (DB_HCLASS2) the identifier of the 6th classifier else
<spare>
200 12 <spare>
228 UINT4 Fault status of task, see 4.3.14 ingest_configuration Structure (page 31).
236 UINT2 Number of log based filter for the first bin
290 2 <spare>
300 UINT4 Offset to extended product header from file (added in 8.13.0)
304 4 <spare>
1) Note on Latitude and longitudes: Interpretation varies with product type. They are as documented for CAPPI, FCAST, MAX,
NDOP, PPI, RAIN1, RAINN, SHEAR, SLINE, TOPS, TRACK, VIL, USER and WARN. For all other products, the Center location is
the radar location, and the reference location is 0.
41
IRIS Programming Guide M211318EN-G
4.3.26 product_hdr Structure
Source: product.h
IRIS allows data to be recorded in UTC on computers with a timezone set to local time. IRIS
also records timezone information about the local computer to support optional displaying
of different times at output time.
42
Chapter 4 – Data Formats
Do not record
summer time.
4.3.27 product_header_extensions
If the hdr.end.iExtendedHeaderOffset is non-zero, then there is a product header
extension. This number is the byte offset from the beginning of the file to the extension.
The product header extension is an ASCII format, containing meta-data in name=value pairs.
The name value pairs are separated by newline characters.
The ASCII meta-data section is terminated by an ASCII zero.
This null may be followed by more null, and ends with a 0xff. This allows a parser to find
the end by looking for a final 0x00 followed by a 0xff, and allows the sized to be padded
to make the next section aligned, if desired.
Following the product header extension, there may be a binary data section. This binary
data section is aligned based on the size of the data elements, which is specified in the
meta-data. This is a general design intended to handle many needs for extending headers,
such as listing sites in a composite, or listing algorithm attributes used to generate a data
moment. In some cases, there may be multiple product header extension sections.
For example, the echo thickness product stores 2 binary data arrays, first the thickness, and
second the average reflectivity over that interval. See, for example, the following name value
pairs:
4.3.28 product_specific_info Structure
Source: headers.h
43
IRIS Programming Guide M211318EN-G
0 10 <cappi_psi_struct> CAPPI
0 44 <catch_psi_struct> CATCH
0 80 <comp_psi_struct> COMP
0 68 <dwell_psi_struct> DWELL
0 48 <fcast_psi_struct> FCAST
0 8 <gage_psi_struct> GAGE
0 20 <maximum_psi_struct> MAX
0 28 <mlhgt_psi_struct> MLGHT
0 72 <ndop_psi_struct> NDOP
0 2 <ppi_psi_struct> PPI
0 20 <raw_psi_struct> RAW
0 2 <rhi_psi_struct> RHI
0 20 <rti_psi_struct> RTI
0 80 <sat_psi_struct> SATELLITE
0 28 <shear_psi_struct> SHEAR
0 60 <sline_psi_struct> SLINE
0 34 <sri_psi_struct> SRI
0 8 <sws_psi_struct> SWS
0 14 <tdwr_psi_struct> TDWR
0 52 <track_psi_struct> TRACK
0 80 <user_psi_struct> USER
0 16 <vad_psi_struct> VAD
0 4 <vil_psi_struct> VIL
0 28 <vvp_psi_struct> VVP
0 80 <warn_psi_struct> WARN
0 40 <wind_psi_struct> WIND
44
Chapter 4 – Data Formats
4.3.29 protect_setup Structure
Source: setup.h
4.3.30 rain_psi_struct Structure
Source: headers.h
4.3.31 raw_prod_bhdr Structure
Source: product.h
4 SINT2 Byte offset of first full ray in this record (-1 if none)
8 UINT2 Flags
10 2 <spare>
45
IRIS Programming Guide M211318EN-G
4.3.32 raw_psi_struct Structure
Source: headers.h
4.3.33 ray_header Structure
Source: ingest.h
0 BIN2 Azimuth at beginning of ray (binary angle)If dual-PRF: bit 0=ray's PRF was
high
2 BIN2 Elevation at beginning of ray (binary angle)If trigger blanking on: bit
0=Trigger was not blanked
46
Chapter 4 – Data Formats
4.3.34 rhi_psi_struct Structure
Source: headers.h
4.3.35 rti_psi_struct Structure
Source: headers.h
4.3.36 shear_psi_struct Structure
Source: headers.h
6 2 <spare>
47
IRIS Programming Guide M211318EN-G
4.3.37 sline_psi_struct Structure
Source: headers.h
4.3.38 sline_results Structure
Source: product.h
8 BIN4 Rotation angle to X-Y coordinates of curve fit polynomial Span is -90 ...
+90°.
48
Chapter 4 – Data Formats
49
IRIS Programming Guide M211318EN-G
2. Shift and scale the coordinate system to keep the polynomial coefficients from
becoming too large. The equations for the transformation are:
� − ��
�′ =
� � − ��
or
Y' = P[X']
The standard deviation is computed as follows: Let [X'i,Y'i] represent the ith point
in the data set in the rotated and scaled coordinate system, and N the total number of
points, then the standard deviation is:
1
�������� ��������� =
� ∑
2
�′� − � �′�
� = 1, �
The center point is computed as follows: Let [Easti,Northi] represent the ith point
in the data set in the original coordinate system, and N the total number of points:
1
���� ������ =
� ∑
�����
� = 1, �
1
����ℎ ������ =
� ∑
����ℎ�
� = 1, �
4.3.39 sri_psi_struct Structure
Source: headers.h
50
Chapter 4 – Data Formats
0 UINT4 Flags
Bit 0=Do profile correction
Bit 3 and 4: Melt src:
• 0=Ingest
• 1=Setup
• 2=TypeIn
Bit 5=Check for convection
4.3.40 status_antenna_info Structure
Source: product.h
51
IRIS Programming Guide M211318EN-G
68 32 <spare>
4.3.41 status_device_info Structure
Source: product.h
0 40 <status_one_device> dsp
40 40 <status_one_device> antenna
4.3.42 status_message_info Structure
Source: product.h
164 36 <spare>
4.3.43 status_misc_info Structure
Source: product.h
52
Chapter 4 – Data Formats
108 4 <spare>
136 64 <spare>
4.3.44 status_one_device Structure
Source: product.h
8 UINT4 Status
12 4 <spare>
36 4 <spare>
53
IRIS Programming Guide M211318EN-G
4.3.45 status_one_process Structure
Source: product.h
0 UINT4 Command
4 UINT4 Mode
8 12 <spare>
4.3.46 status_process_info Structure
Source: product.h
40 20 <spare>
4.3.47 status_results Structure
Source: product.h
54
Chapter 4 – Data Formats
4.3.48 structure_header Structure
Source: headers.h
8 SINT2 Reserved
4.3.49 tape_header_record Structure
Source: output.h
0 12 <structure_header>
56 4 <spare>
68 252 <spare>
55
IRIS Programming Guide M211318EN-G
4.3.50 task_calib_info Structure
Source: iris_task.h
10 8 <spare>
30 6 <spare>
36 UINT2 Flags:
Bit 0: Speckle remover for log channel
Bit 3: Speckle remover for linear channel
Bit 4: Flag to indicate data is range normalized
Bit 5: Flag to indicate pulse at beginning of ray
Bit 6: Flag to indicate pulse at end of ray
Bit 7: Vary number of pulses in dual PRF
Bit 8: Use 3 lag processing in PP0 2
Bit 9: Apply velocity correction for ship motion
Bit 10: Vc is unfolded
Bit 11: Vc has fallspeed correction
Bit 12: Zc has beam blockage correction
Bit 13: Zc has Z-based attenuation correction
Bit 14: Zc has target detection
Bit 15: Vc has storm relative velocity correction
38 2 <spare>
56
Chapter 4 – Data Formats
62 uint16_t Flags2:
Bit 0: Zc and ZDRc has DP attenuation correction
Bit 1: Z and ZDR has DP attenuation correction
64 256 <spare>
4.3.51 task_configuration Structure
Source: iris_task.h
4.3.52 task_dsp_info Structure
Source: iris_task.h
4 24 <dsp_data_mask>
Current Data type mask1)
57
IRIS Programming Guide M211318EN-G
28 24 <dsp_data_mask>
Current Data type mask1)
52 32 <task_dsp_mode_batch>
Else:
52 32 <task_dsp_mode_other>
84 52 <spare>
170 UINT2 Gas attenuation in 1/100000 dB/km for first 10000, then stepping in
1/10000 dB/km
182 2 <spare>
58
Chapter 4 – Data Formats
4.3.53 task_dsp_mode_batch Structure
Source: iris_task.h
14 18 <spare>
4.3.54 task_end_info Structure
Source: iris_task.h
102 2 <spare>
116 UINT1[6] Identifiers of the echo classifiers in the HCLASS bit segments
59
IRIS Programming Guide M211318EN-G
4.3.55 task_file_scan_info Structure
Source: iris_task.h
16 184 <spare>
4.3.56 task_manual_scan_info Structure
Source: iris_task.h
2 198 <spare>
4.3.57 task_misc_info Structure
Source: iris_task.h
24 UINT2 Flags:
Bit 0: Digital signal simulator in use
Bit 1: Polarization in use
Bit 4: Keep bit
50 12 <spare>
60
Chapter 4 – Data Formats
4.3.58 task_ppi_scan_info Structure
Source: iris_task.h
84 115 <spare>
4.3.59 task_range_info Structure
Source: iris_task.h
24 136 <spare>
4.3.60 task_rhi_scan_info Structure
Source: iris_task.h
61
IRIS Programming Guide M211318EN-G
84 115 <spare>
4.3.61 task_scan_info Structure
Source: iris_task.h
4 2 <spare>
If RHI scan:
8 200 <task_rhi_scan_info>
8 200 <task_ppi_scan_info>
If File scan:
8 200 <task_file_scan_info>
8 200 <task_manual_scan_info>
In all cases:
62
Chapter 4 – Data Formats
4.3.62 task_sched_info Structure
Source: iris_task.h
12 SINT4 Time last run (seconds within a day) (0 for passive ingest)
16 SINT4 Time used on last run (seconds) (in file time to writeout)
24 UINT2 Flag:
Bit 0 = ASAP
Bit 1 = Mandatory
Bit 2 = Late skip
Bit 3 = Time used has been measured
Bit 4 = Stop after running
26 94 <spare>
4.3.63 tdwr_psi_struct Structure
Source: headers.h
0 UINT4 Flags:
bit0=LLWAS
bit1=WARN
bit2=SLINE
8 char[4] Source ID
15 UINT1 <spare>
63
IRIS Programming Guide M211318EN-G
4.3.64 tdwr_results Structure
Source: product.h
27 1 <spare>
31 1 <spare>
34 2 <spare>
48 52 <spare>
4.3.65 text_results Structure
Source: product.h
4.3.66 top_psi_struct Structure
Source: headers.h
0 uint32_t Flags:
Bit 0: For THICK product only, make pseudo thickness
64
Chapter 4 – Data Formats
4.3.67 track_psi_struct Structure
Source: headers.h
4.3.68 track_results Structure
Source: product.h
4 BIN4 Longitude
12 UINT4 Flags:
bit0=forecast
bit1=manual
bit2=text
bit3=icon
65
IRIS Programming Guide M211318EN-G
40 8 <spare>
52 8 <spare>
68 char[32] Text
112 SINT4[32] ETA in seconds for each protected area (0 if in area, -1 if not expected)
244 8 <spare>
268 32 <spare>
4.3.69 vad_psi_struct Structure
Source: headers.h
8 uint32_t Flags:
Bit 0: Unfold based on VVP product
4.3.70 vad_results Structure
Source: headers.h
66
Chapter 4 – Data Formats
12 8 <spare>
4.3.71 vvp_psi_struct Structure
Source: headers.h
18 uint16_t Minimum velocity (cm/sec) (version 8.13 and later, previously 0.02 times
nyquist)
4.3.72 vvp_results Structure
Source: product.h
12 8 <spare>
Bit Description
67
IRIS Programming Guide M211318EN-G
54 30 <spare>
4.3.73 warn_psi_struct Structure
Source: headers.h
22 2 <spare>
75 char[1] <spare>
4.3.74 warning_results Structure
Source: product.h
68
Chapter 4 – Data Formats
4 BIN4 Longitude
36 SINT4[3] Maximum value of data within the area (1/100 of user units)
48 SINT4[3] Average value of data within the area (1/100 of user units)
64 4 <spare>
84 156 <spare>
260 40 <spare>
4.3.75 wind_psi_struct Structure
Source: headers.h
69
IRIS Programming Guide M211318EN-G
4.3.76 wind_results Structure
Source: product.h
22 10 <spare>
4.3.77 ymds_time Structure
Source: sigtypes.h
6 SINT2 Year
8 SINT2 Month
10 SINT2 Day
70
Chapter 4 – Data Formats
4.4 Data Types
For ingest data (stored in the raw product) and other products, the data formats for
reflectivity, velocity, width, and ZDR differ slightly. When these data types are converted to
a Cartesian product, the data values of 255 are replaced with 254, and 255 takes on the
meaning of area not scanned.
For polar data, the name in parenthesis after each section title is the data type name used
by IRIS to identify the data. Parameters for these numbers are defined in the sigtypes.h
file.
Ah, Av Integral attenuation for horizontal (H) and vertical (V) channels.
71
IRIS Programming Guide M211318EN-G
RHOHV, RHOH, RHOV Correlation coefficient between HH and VV (or HH & HV / VV & VH) channels )
Higher (>0.95) values indicate uniform precipitation areas and lower values
more mixed hydrometeor types, such as melting snow, wet snowflakes, or
airborne debris.
T Total Reflectivity
Total power returned to the radar in reflectivity units. It typically represents
the horizontal reflectivity without ground clutter correction.
V Velocity
Average radial velocity (towards or away from the radar) of detected
hydrometeor areas.
VC Corrected Velocity
Same as Velocity, but corrected for effects of range folding and velocity
folding.
W Spectral Width
Variability of Doppler velocity values within the measurement area.
XCOR Polar cross-correlation, uncorrected rhohv. Because this value is not noise
corrected, it is a direct indicator of the PHIDP uncertainty
Z Reflectivity
Usually referred to as dBZ, this is the common data type that measures radar
signal reflectivity, and is used to estimate precipitation intensity from that.
All Z measurements are corrected for ground clutter.
ZC Corrected Reflectivity
Same as Z, but corrected for attenuation and beam blockage effects.
72
Chapter 4 – Data Formats
�
angle =
10
-1800 -180.0°
0 0.0°
10 1.0°
73
IRIS Programming Guide M211318EN-G
0 0 deformation
0 0 divergence
74
Chapter 4 – Data Formats
1 0.0 km
128 12.7 km
129 12.8 km
0 —> 0 0.000 mm
1 —> 1 0.001 mm
75
IRIS Programming Guide M211318EN-G
-1800 -180.0°
0 0.0°
10 1.0°
Each segment can be associated with an identification method (echo classifier). For a list of
the available classification methods listed as enumerated logical names, see the public
IRIS/RDA header sig_data_types.h.
The bytes Enums of the task_dsp_info structure (see 4.3.52 task_dsp_info Structure
(page 57)) contain the list of classification methods allocated to each bit segment of the
HClass data. The information is associated to each IRIS RAW data file header, and can be
inspected with the productx utility.
The bits in each segment are interpreted as an unsigned integer value belonging to an
enumerated class type (the class base), specific to each classifier. The enumerated class
types are defined in sig_data_types.h with unambiguous logical names that are
meteorologically explicit.
The default configuration of IRIS/RDA delivers the echo classification results shown in the
following tables. You can modify the configuration using settings in dpolapp_*.conf).
76
Chapter 4 – Data Formats
The methods METEO and PRECIPCLASSIFIER are available both in RDA real-time ray
level processing, as well as in IRIS reprocessing (reingest).
CELLCLASSIFIER is available in IRIS post-processing only. Its outcomes can be
interpreted in the context of ray level classifications.
Further classification information can be appended to 2-byte HydroClass data. See 4.4.15
2-byte HydroClass Format (DB_HCLASS2) (page 78).
MET_CLASS_RAIN =2 Rain
MET_CLASS_SNOW =4 Snow
MET_CLASS_GRAUPEL =5 Graupel
MET_CLASS_HAIL =6 Hail
=7 Unused
PRE_CLASS_PRECIP =3 Precipitation
PRE_CLASS_HEAVY_PRECIP =7 Unused
For PRECIPCLASSIFIER, the interpretations into classes from Large Drops to Heavy
precipitation are available if HClass PrecipClassifier is ON.
Without HClass PrecipClassifier, all precipitation are classified as
Precipitation.
CELL_CLASS_STRATIFORM =0 Stratiform
77
IRIS Programming Guide M211318EN-G
CELL_CLASS_CONVECTION =1 Convection
=2 Unused
=3 Forbidden
78
Chapter 4 – Data Formats
N − 129
minimum 126
KDP × � = minimum ×
maximum
Here is the conversion equation for positive values (stored value above 128):
N − 129
KDP × � = 0.25 × 600
126
Here is the conversion equation for negative values (stored value below 128):
127 − �
KDP × � = 0.25 × 600
126
0 No data available
� − 32768
KDP =
100
The overall range is -327.67 ... +327.66 in 1/100 of a degree/kilometer steps as follows.
0 No data available
1 -327.67 deg/km
79
IRIS Programming Guide M211318EN-G
N−1
��� �� = − 45.0
5
The overall range (in dB) is -45 ...+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
80
Chapter 4 – Data Formats
N−1
���mod 180 = 180 ×
254
0 No data available
1 0.00 deg
2 0.71 deg
N−1
���mod 360 = 360 ×
65534
81
IRIS Programming Guide M211318EN-G
The overall range is 0 ... 360° degrees in steps of 0.0055 as follows. In cases where the
transmitter was alternating polarization, or the data was converted from 1–byte format, the
values only cover 0 ... 180°.
0 No data available
1 0.0000 deg
2 0.0055 deg
82
Chapter 4 – Data Formats
N − 64
��� =
2
The overall range is from -31.5 ... +95.5 dBZ in 0.5 dB steps as follows. In data product files,
the value of 255 indicates areas not scanned.
N − 32768
��� =
100
0 No data available
83
IRIS Programming Guide M211318EN-G
1 -327.67 dBZ
N−1
�ℎ��� =
253
1 0.0000
2 0.0629
128 0.7085
253 0.9980
254 1.0000
84
Chapter 4 – Data Formats
N−1
��� =
253
1 0.0000
2 0.0629
128 0.7085
253 0.9980
254 1.0000
�−1
��� =
65533
1 0.00000
2 0.00002
128 0.00194
85
IRIS Programming Guide M211318EN-G
65533 0.99998
65534 1.00000
� − 32768
���� =
60
1 - 9:06:07:
32768 00:00:00
32828 00:01:00
2 -74.4 m/s
� − 32768
�������� =
100
86
Chapter 4 – Data Formats
The overall range is -327.67 ... +327.66 m/s in 1/100 of a meter per second steps as follows.
0 No data available
� − 128
�������� = × �������
127
� − 32768
�������� =
100
The overall range is -327.67 ... +327.66 m/s in 1/100 of a meter per second steps as follows.
0 No data available
87
IRIS Programming Guide M211318EN-G
0 0 motion
1 0.000 mm
128 0.127 mm
129 0.128 mm
255 0.254 mm
�
�=
256
88
Chapter 4 – Data Formats
To convert the width to m/s, 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.
�
����ℎ =
100
The overall range is 0.01 ... 655.34 in 1/100 of a meter per second steps as follows.
0 No data available
1 0.01 m/s
89
IRIS Programming Guide M211318EN-G
� − 128
�� ��� =
16
The overall range is -7.94 dBZ ... +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.
1 -7.94 dB
128 0.00 dB
129 +0.06 dB
255 +7.94 dB
� − 32768
�� ��� =
100
90
Chapter 4 – Data Formats
0 No data available
1 -327.67 dB
32768 0.00 dB
32769 0.01 dB
65534 327.66 dB
<ingest_data_header> 76 Bytes
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, the 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.
91
IRIS Programming Guide M211318EN-G
Format Example
SSSYYMMDDHHMMSS.##DD SIG010620141921.01dBZ
Where:
<product_hdr>
640 Bytes
Optional <protect_setup>
1024 Bytes
92
Chapter 4 – Data Formats
The 2 digit year used is the year modulo 100. Since the product file names are never parsed
to generate a full date, there is no need to ever reconstruct the correct century.
SSSYYMMDDHHMMSS.PPPXXXX SIG940620141921.TRAE090
Where:
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. For more information, see SETUP/
OUTPUT in IRIS Utilities Manual.
93
IRIS Programming Guide M211318EN-G
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 (See 4.3.26
product_hdr Structure (page 42)) structure.
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 (see 4.3.16 ingest_header Structure (page 33))
structure for the volume scan that supplied the data. 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. See 4.4.44 1-byte Velocity Format (DB_VEL) (page 87).
Records hold data from one sweep. The sweep number is 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 (See 4.3.15 ingest_data_header Structure (page 32)) 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 in the
task_configuration in the ingest_header. The rays of data are immediately after
the headers.
94
Chapter 4 – Data Formats
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. The number of compressed rays in the file is equal to the
product of the number of data types recorded and the number of angles sampled. This is
true even if data were not 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. See 4.3.52 task_dsp_info Structure (page 57).
Data Compression
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 2 records begin with the raw_prod_bhdr 12-byte structure.
For information on the algorithm used to compress data rays, see 4.6.6.1 Data Compression
Algorithm (page 95).
0 0 <unused>
95
IRIS Programming Guide M211318EN-G
0 1 End of ray
0 2 <unused>
1 0 <unused>
0 12 <raw_prod_bhdr>
12 76 <ingest_data_header>
112
96
Chapter 4 – Data Formats
This is followed by an array of sline_results structures one for each shearline found.
The Number of elements in product results array element of the
product_end structure in the product_hdr indicates the number of points in the array.
Generally there is at most 1 shearline found.
97
IRIS Programming Guide M211318EN-G
4.7 Tape Format
Tapes made by IRIS hold exact images of corresponding disk-based product files. The tapes
are always written using fixed-length 6144-byte records, where the last tape record is
padded with zeros, if necessary, to the full 6144-byte length.
Products are separated on tape by end-of-file (EOF) marks.
Because disk product files begin with a product_hdr structure, this is also the structure
initially encountered in the first record of each product on tape. By examining the headers,
you can determine what kinds of product files have been stored on the tape.
98
Chapter 4 – Data Formats
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.
SamplesPerPixel 277 1
4.9 Constants
Extended Header (DB_XHDR) is included here though it is not generated by the DSP. In
general, types 0 ... 31 can be produced by the DSP.
99
IRIS Programming Guide M211318EN-G
...
100
Chapter 4 – Data Formats
...
101
IRIS Programming Guide M211318EN-G
102
Chapter 5 – Information Utilities
5. Information Utilities
5.1 Productx
The productx product examiner utility displays the information contained in a specified
product file.
For all product types, productx displays:
1. 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.
2. Product-specific meta-data from the header for many product types.
3. Data values from the file.
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,
specify a very large terminal width, say 10000.
5.1.1 Invoking Productx
To invoke productx, issue the command: productx [options] filename
filename is the name of a product file stored in /usr/iris_data/product.
Raw products are stored in a separate directory: /usr/iris_data/product_raw.
Parameter Description
Each product file has a unique name based on the site ID, date, and a randomized algorithm.
The first 3 letters of the file extension show the product type.
BAS BASE
BEA BEAM
CAP CAPPI
103
IRIS Programming Guide M211318EN-G
FCA FCAST
CAT CATCH
DWE DWELL
HMX HMAX
IMG IMAGE
LAY LAYER
MAX MAX
NDP NDOP
OTH OTHER
PPI PPI
RAW RAW
RN1 RAIN1
RNN RAINN
RHI RHI
RTI RTI
SHE SHEAR
SLI SLINE
STA STAT
TDW TDWR
THK THICK
TOP TOPS
TRA TRACK
TXT TEXT
USE USER
VAD VAD
VUS VUSER
VIL VIL
VVP VVP
WND WIND
WRN WARN
XSE XSECT
104
Chapter 5 – Information Utilities
5.1.2 Productx Examples
PPI Example
A PPI product shows useful header information:
105
IRIS Programming Guide M211318EN-G
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
Status Example
A Status product shows the status of IRIS processes at a particular site.
$ 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
Projection Reference Point: 42_33.0'N, 71_25.8'W
Radar position is: 0.0, 0.0 pixels
Scale is: 0.000 x 0.000 x 0.000 km/pixel
Product data type is Xhdr (0)
Maximum range: 0.0 km
Ingest time: 15:21:22 2 JUN 2000 UTC (0 minutes west) DST:0/1
Volume scan time: 15:21:22 2 JUN 2000 (LT: EDT 300 minutes)
Oldest Ing time: 15:21:22 2 JUN 2000
Product Gen time: 15:21:22 2 JUN 2000
Input count: 1
Product is not composited
Site style is: RADAR
106
Chapter 5 – Information Utilities
Active task: ’’
Active product: ’’
Antenna Position, azimuth: 20.00, elevation: –0.99
Bite fault summary shows 2
Low Airflow: OK
Interlock: OK
Waveguide: OK
Top message #9, Repeats: 1
Problem starting scan at EL=6 (AZ velocity out of range)
Process: IRIS_INGEST, Name: F:202 M:3
Time: 16:34:36 30 MAY 2000
Message list contains 0 messages:
5.2 Rays Utility
The rays utility gives information about ingest files. You can choose to display information
about various parameters of the ingest data.
5.2.1 Invoking Rays
To invoke rays, issue the command: rays [options] filename
107
IRIS Programming Guide M211318EN-G
filename is the name of an ingest header file stored in the directory /usr/iris_data/
ingest.
Ingest files are named with a timestamp for when the data were gathered. For example,
ingest data gathered at 10:17:30 on December 2, 1994 is stored in a file named
941202101730.
-inter Run in interactive mode. This is the old style, rays then prompts for
some of the 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 *.). Select the name of a file
with the mouse and paste it into the command line.
108
Chapter 5 – Information Utilities
5.2.3 Velocity Example
You can choose any of the data parameters — V in this example — and rays then displays the
header, followed by range bins starting from the specified bin.
Where no data is available for a ray, it displays Missing. When no data is available for a
range bin within the ray, it displays a series of dashes (--.- --).
109
IRIS Programming Guide M211318EN-G
110
Chapter 5 – Information Utilities
The extended header shows the antenna azimuth and elevation, the platform pitch, roll, and
heading, and the derivatives of these values in degrees/second:
Az: 350.95 El: 0.40 Pitch: -0.13 Roll: -1.10 Head: 346.79
Vel: 18.72 deg/s 0.04 0.70 359.82 359.82
The extended header information is recorded from a serial data stream transmitted from
RCP. Typically this is configured to transmit updates at a maximum speed of about 20 times
per second. Because rays can be recorded at up to 40 rays per second, and because of
pipeline delays in the serial data, the extended header azimuth can lag the actual azimuth by
up to several degrees. Normally, the platform motion period is slower.
Tr
Training angle, which is the pedestal relative azimuth of the pedestal.
El_or
Pedestal relative elevation angle.
Cor
Velocity correction (meters/second). Applied to velocity data to correct for platform
motion.
Age
Time in milliseconds since this update arrived from RCP.
Vel
Platform position and motion. Altitude is in meters, and motions are in meters/second.
More Information
‣ extended_header_v1 Structure (page 28)
111
IRIS Programming Guide M211318EN-G
112
Appendix A – Radar Control Protocol
113
IRIS Programming Guide M211318EN-G
Angles
The latitude and longitude are transmitted as 21-bit binary angles. The following angles are
transmitted as 14-bit binary angles:
• azimuth and elevation
• train order
• pitch, roll, and heading
In the XMT01 format, the angular speed is a signed number in units of 0.55º/sec. In all other
formats, the angular rates are in signed 14-bit binary angles per second. The largest possible
value is 180º/sec (30 rpm) and the step is 0.022º/sec. All velocities are in signed cm/sec with
the altitude in signed meters. If some of the information is unavailable at the full resolution
of the data format, the low bits are filled with zeros.
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: 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
must 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 is 0.
Char Function
114
Appendix A – Radar Control Protocol
Char Function
6 Status #1
D6 = Low air flow
D5 = Low Waveguide pressure
D4 = Servo power
D3 = Antenna Local mode
D2 = Interlock
D1 = Standby
D0 = Radiate On
7 Status #2
D6 = RCP02 is shutdown
D5 = LSB pulse width
D4 = T/R power On
D3 = T/R Local mode
D2 = Encoders calibrated
D1 = MSB pulse width
D0 = Magnetron current normal
Char Function
6 Control Word #1
D6 = MSB of Pulse Width
D5 = Leave Pulse width unchanged
D4 = Spare
D3 = Signal Generator On
D2 = Signal Generator CW
D1 = EL (1 = Scan, 0 = Position)
D0 = AZ (1 = Scan, 0 = Position)
115
IRIS Programming Guide M211318EN-G
Char Function
7 Control Word #2
D6 = Reset RCP02 on edge
D5 = Noise Source On
D4 = LSB of Pulse width
D3 = Radiate On complemented
D2 = Radiate On
D1 = Servo Power On
D0 = T/R Power On
Char Function
10 Status #1
D6 = Low air flow
D5 = Low Waveguide pressure
D4 = Servo Power
D3 = Antenna Local mode
D2 = Interlock Open
D1 = Standby
D0 = Radiate On
116
Appendix A – Radar Control Protocol
Char Function
11 Status #2
D6 = RCP02 is shutdown
D5 = LSB pulse width
D4 = T/R Power On
D3 = T/R Local mode
D2 = Azimuth encoder calibrated
D1 = MSB pulse width
D0 = Magnetron current normal
12 Status #3
D6 = IRIS Mode 2
D5 = IRIS Mode 1
D4 = IRIS Mode 0
D3 = Elevation encoder calibrated
D2 = Signal Generator fault
D1 = Signal Generator On
D0 = Signal Generator CW
Char Function
117
IRIS Programming Guide M211318EN-G
Char Function
6 Control Word #1
D6 = MSB of Pulse Width
D5 = Leave Pulse Width unchanged
D4 = Spare
D3 = Signal Generator On
D2 = Signal Generator CW
D1 = EL (1 = Scan 0 = Position)
D0 = AZ (1 = Scan 0 = Position)
If EL in position mode, maximum positive velocity is sent in the velocity field, if EL in scan
mode, maximum or minimum elevation position is sent in the position field. If AZ in position
mode, maximum positive velocity is sent in the velocity field, if AZ in scan mode, 0 is sent in
the position field.
7 Control Word #2
D6 = Reset RCP02 on rising edge
D5 = Noise Source On
D4 = LSB of Pulse width
D3 = Radiate On complemented
D2 = Radiate On
D1 = Servo Power On
D0 = T/R Power On
8 Control Word #3
D6 = IRIS Mode 2
D5 = IRIS Mode 1
D4 = IRIS Mode 0
D3 = Radar Workstation A okay
D2 = Radar Workstation B okay
D1 = Data Processor A okay
D0 = Data Processor B okay
Char Function
2 Identification byte
118
Appendix A – Radar Control Protocol
Char Function
27 Status #1
D6 = Low air flow
D5 = Low Waveguide pressure
D4 = Servo power
D3 = Antenna Local mode
D2 = Interlock open
D1 = Standby
D0 = Radiate ON
119
IRIS Programming Guide M211318EN-G
Char Function
28 Status #2
D6 = RCP02 is shutdown
D5 = LSB pulse width
D4 = T/R Power on
D3 = T/R Local mode
D2 = Azimuth encoder calibrated
D1 = MSB pulse width
D0 = Magnetron current normal
29 Status #3
D6 = Reserved
D5 = Reserved
D4 = Reserved
D3 = Elevation encoder calibrated
D2 = Signal Generator fault
D1 = Signal Generator On
D0 = Signal Generator CW
120
Appendix A – Radar Control Protocol
Char Function
16 Dual-System Status
D6 = RCP02 is configured as a Dual-System
D5 = Dual-System Mode MSB
D4 = Dual-System Mode LSB
D3 = This packet was sent from Unit "A"D2 = Information is known about the "Other" unit
D1 = Unit "A" is the preferred system
D0 = Unit "B" is disabled
Note: The 2-bit Dual-System Mode codes are:
• 00 : Unknown mode
• 01 : System "A"
• 10: System "B"
• 11 : Auto Switch
17 Dual-System Status
D6 = Unit "B" is okay
D5 = Unit "B" Activity Code MSB
D4 = Unit "B" Activity Code LSB
D3 = Unit "A" is disabled
D2 = Unit "A" is okay
D1 = Unit "A" Activity Code MSB
D0 = Unit "A" Activity Code LSB
Note: The 2-bit Dual-System Activity codes are:
• 00 : Inactive
• 01 : Warmup
• 10: Active Now
• 11 : Reserved
18 Dual-System Status
D6 = RCP02 is configured for voluntary flipping
D5 = Unit "B" is offering to give up control
D4 = Unit "A" is offering to give up control
D3 = Unit "B" would be used if it were available
D2 = Unit "A" would be used if it were available
20 Spare
21 Spare
22 Spare
121
IRIS Programming Guide M211318EN-G
Char Function
23 Spare
Char Function
14 Control Word #4
D6 = Dual-System: Mode MSB
D5 = Dual-System: Mode LSB
D4 = Dual-System: Offer to relinquish control
D3 = Dual-System: Unit would be used if available
D2 = SpareD1 = Spare
D0 = Spare
Note: The 2-bit Dual-System Mode codes are:
• 00 : No mode
• 01 : System "A"
• 10: System "B"
• 11 : Auto Switch
15 D0:
2 = Requested Polarization XMT control
0=Horizontal
1=Vertical
2=Alternating
3=Simultaneous
7=Unchanged
16 Spare
17 Spare
Char Function
4 Month
5 Day
122
Appendix A – Radar Control Protocol
Char Function
6 Hour
7 Minute
8 Second
9 1/100 of Second
10 Status
Char Function
3 Status byte #1
4 Status byte #2
Char Function
123
IRIS Programming Guide M211318EN-G
Char Function
Char Function
3 Control/Status Bits 6 5 4 3 2 1 0
4 Control/Status Bits 13 12 11 10 9 8 7
5 Control/Status Bits 20 19 18 17 16 15 14
6 Control/Status Bits 27 26 25 24 23 22 21
7 Control/Status Bits 34 33 32 31 30 29 28
8 Control/Status Bits 41 40 39 38 37 36 35
9 Control/Status Bits 48 47 46 45 44 43 42
10 Control/Status Bits 55 54 53 52 51 50 49
11 Control/Status Bits 62 61 60 59 58 57 56
12 Control/Status Bit 63
Q-BITE Status
The Q-BITE (quantitative byte) status packets consists of 3 ... 128 bytes.
The first 2 and last bytes are for identification.
The middle bytes must have the MSB set to 0 and can contain an arbitrary value in the lower
7 bits. Typically this is used to report back voltage/power levels. Do not send this report by
the BITE every time the status changes. Send this report in response to the Q-bite
interrogate command. IRIS sends the interrogate command every 60 seconds.
124
Appendix A – Radar Control Protocol
The Q-BITE data stream consists of a series of integer values. Each value is packed into a
series of 7-bit characters, using 1 ... 5 depending on the desired resolution. The low bits come
first, and IRIS supports up to 32 bits per value. IRIS can be configured to display any such
values with appropriate units and scaling.
Char Function
3 Status byte #1
4 Status byte #2
Char Function
Char Function
125
IRIS Programming Guide M211318EN-G
Char Function
Chat Mode
These packets are sent in both directions to convey serial TTY communication. Up to 6 7-bit
characters can be sent in each packet with two characters of overhead for SYNC and END.
This allows up to 75% of the available serial bandwidth to be used for chatting. If a chat
mode packet contains fewer than 6 characters, then a NULL (0 byte) is inserted after the last
packet.
Char Function
126
Appendix B – Link Transmission Formats
Here, hexadecimal notation is denoted with the -h suffix. For example, 12h means 12 base
16, or 18 base 10. Also for this discussion, all line and pixel numbers are origin 1. The upper
left pixel is line 1, pixel 1.
127
IRIS Programming Guide M211318EN-G
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.
Here, hexadecimal notation is denoted with the -h suffix. For example, 12h means 12 base
16, or 18 base 10. Also for this discussion, all line and pixel numbers are origin 1. The upper
left pixel is line 1, pixel 1.
128
Appendix B – Link Transmission Formats
The data section consists of a series of line number codes, each followed by compressed
data. Data for a line ends when the next line number code is encountered. All unfilled pixels
are assumed to be of the value 1. If a line is repeated in the data stream, any new data
overwrites old data. If a line number code is never transmitted, the line is assumed to be
filled with ones.
The only use of a 0 byte is to immediately proceed on the following commands. This make it
easy to sync with the data stream.
00h 01h — Picture type follows in the next byte
1 All PPIs
129
IRIS Programming Guide M211318EN-G
130
Appendix C – UF Format
<uf_mandatory_header2> 45 Words
<uf_optional_header> 0 or 12 Words
<uf_data_header2> 3 + 2N Words
<uf_field_header2> #1 19 or 21 or 25 Words
<uf_field_header2> #2 19 or 21 or 25 Words
131
IRIS Programming Guide M211318EN-G
C.3 uf_data_header2 Structure
Source: uf.h
...
C.4 uf_field_header2 Structure
Source: uf.h
20 int16_t Polarization:
1:horz
2:vert
3:circular
4:elliptical
132
Appendix C – UF Format
30 int16_t Scale
32 char[2] EditCode
38 12 <uf_fsi2>
C.5 uf_fsi2 Structure
Source: uf.h
If velocity data:
2 int16_t <spare>
If DM data:
If other data:
nothing
C.6 uf_mandatory_header2 Structure
Source: uf.h
133
IRIS Programming Guide M211318EN-G
0 char[2] Text UF
52 int16_t Month
54 int16_t Day
56 int16_t Hour
58 int16_t Minute
60 int16_t Second
0:Cal
1:PPI
2:Coplane
3:RHI
134
Appendix C – UF Format
4:Vertical
5:Target
6:Manual
7:Idle
76 int16_t Month
78 int16_t Day
C.7 uf_optional_header Structure
Source: uf.h
0 char[8] sProjectName[8]
8 int16_t iBaselineAzimuth
10 int16_t iBaselineelevation
14 int16_t iVolumeScanMinute
18 char[8] sFieldTapeName[8]
24 int16_t iFlag
135
IRIS Programming Guide M211318EN-G
136
Appendix D – RTD Format
Dependency Description
Number of bins per radial The total number of bins, combined for all moments, is approximately 1400
per radial.
There is an overhead of about 100 bytes per ray.
Scan rate of the antenna Each bin requires one byte of data. A scan rate of 5 RPM (30 radials per
second), requires about 1500 * 30 = 45000 bytes per second.
Real time display bandwidth must be added to any other IRIS and other
bandwidth being occupied on your network.
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 IRIS and RDA
Utilities Guide.
137
IRIS Programming Guide M211318EN-G
Normally, gateways such as multi-homed hosts, bridges and routers do NOT pass IRIS real
time display data. This is because such devices are built to filter broadcast data. This keeps
the real time display data on a single network. However, it is usually possible to configure
such devices to pass broadcast data that occurs on a specific port (like the real time display
port).
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_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.
The config file rtd_nids3_xmt.conf controls some details.
D.3 Rtd_v1_xmt
Three messages are transmitted as part of the real time display data stream. The messages
are distinguished by the first 2 bytes (SHORT) in the message summarized in the list table
(see sig_rtdisp.h):
• RTRAY_TYPE_HEADER
• RTRAY_TYPE_RAY
• RTRAY_TYPE_RAY
The message RTRAY_TYPE_HEADER consists of the 2-byte ID followed by a struct
rtd_v1_vol_header. This message is sent either at the beginning of a new elevation
sweep, or periodically if a new sweep has not started recently.
The message RTRAY_TYPE_RAY begins with the 2-byte ID. What follows depends on the
type of data being transmitted by the real time display sender. This is chosen in the sender's
setup utility and can consist of 1, 2, or 3 data types being Z, V, or W. The volume header
indicates which data types are currently transmitted and in which order the data types are
presented.
For example, if only Z and V are transmitted, the RTRAY_TYPE_RAY message consists of its
2-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.
For example, if the volume header indicates that 200 bins of each type are transmitted, then
the Z elements (and the V elements) are each 200 bytes long, with each byte representing 1
range bin. The spacing between the range bins is also defined by the volume header.
For information on element scaling, see 4.4 Data Types (page 71).
138
Appendix D – RTD Format
D.4 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.
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.
139
IRIS Programming Guide M211318EN-G
140
Appendix E – Supported IRIS Input Pipes
Source code is provided for most input pipes to allow users to modify them for format
changes or to create pipes for new input data.
For information on each pipe, see the corresponding configuration file.
KnmiHDF5ToIris Pathnames
141
IRIS Programming Guide M211318EN-G
142
Appendix F – Supplied IRIS Output Pipes
143
IRIS Programming Guide M211318EN-G
144
Warranty
For standard warranty terms and conditions, see www.vaisala.com/warranty.
Please observe that any such warranty may not be valid in case of damage due to normal
wear and tear, exceptional operating conditions, negligent handling or installation, or
unauthorized modifications. Please see the applicable supply contract or Conditions of Sale
for details of the warranty for each product.
Technical Support
Contact Vaisala technical support at [email protected]. Provide at least the following
supporting information:
• Product name, model, and serial number
• Name and location of the installation site
• Name and contact information of a technical person who can provide further
information on the problem
For more information, see www.vaisala.com/support.
Recycling
Recycle all applicable material.
Follow the statutory regulations for disposing of the product and packaging.
145
IRIS Programming Guide M211318EN-G
146
www.vaisala.com