AO Logo

The Wideband Arecibo Pulsar Processor - File Format Page

Wapp - Signal Processing Page


Button Home

WAPP File Format

WAPP files have three sections that appear sequentially in this order: an ASCII header description, the binary header, and finally the actual binary data. The first section is a raw copy of the C-language include file (wapp_header.h), terminated with a single null character. This is included for reference only and does not include any information specific to the observation. After the ASCII header comes the actual header values that describe the observation.

. The WAPP realtime observation engine does not produce files larger that 2 Gbytes. At one time this represented a fundamental limit to Linux files. However, the reason behind this limit is to avoid difficult to manage megafiles. As a consequence, most observations produce a sequence of data files. Each file will have it's own header, even when the files are simply continuations of a single observation. The only difference in header values in this case will be the timeoff parameter, which indicates the time offset from the start of the observation.

The most recent version of this structure is maintained in the ~wapp/include/wapp_header.h subdirectory. Although the include file is available, it is recommended that the user extract the ASCII header from the WAPP data files. This approach will avoid problems with header versions. To view the header file embedded in each data file, type the following:

more wapp.nnn[ret]

WAPP files are written by a i386 Linux machine and use the native byte ordering of that machine: little endian. Thus in memory a 16 bit integer will have it's most-signficant byte appear first. For example, decimal integer 4600 (1234 hex) would appear in memory as follows:

Little Endian

The final portion of the WAPP data file is the actual correlation values. It is written as raw unsigned integers value of 16 or 32 bits (see lagformat). It is written such that lag 0 appears first, then lag 1, etc. If there are multiple IFs, they appear as A, then B, then ?x?(AxB or BxA) and finally ?x?.

WAPP Header Parameter Description

The following table describes the various parameters in the WAPP Header file. The details of this header may evolve, so it is always useful

Variable Type Bytes Description
header_version long int 4 Header revision, presently 1
header_size long int 4 Number of bytes in header (binary portion only) (nom.=2048)
src_ra double 8 Requested RA J2000 (10000*hr+100*min+sec)
src_dec double 8 requested dec J2000 (10000*deg+100*min+sec)
start_az double 8 telescope azimuth at start of scan (deg)
start_za double 8 telescope zenith angle at start of scan (deg)
  double 8 AST at start of scan (sec)
  double 8 local siderial time at start of scan (sec)
cent_freq double 8 Center Frequency of Observation (on Sky) in MHz, example 1500.0
obs_time double 8 User requested period of observation on this source in seconds.
samp_time double 8 user-requested sample time (us)
wapp_time double 8 actual sample time (us) i.e. requested+dead time
bandwidth double 8 total bandwidth (MHz) for this observation (50 or 100)
num_lags long int 4 User-requested number of lags per dump per spectrum
scan_number long int 4 An integer built by WAPP from year+daynumber+3-digit-number
src_name string 12 Source Name (usually Pulsar name) example: B2110+27
obs_date char 12 built by WAPP from yyyymmdd
start_time char 8 UT seconds after midnight (start on 1-sec tick)
project_id string 8 user-supplied AO proposal Number (XYYYY)
observers string 24 user-supplied observer(s) name
nifs int 4 Number of IFs to be recorded (1,2 or 4 for full stokes)
level int 4 Sample Quantization 3 level (level=1) or 9 level (level=2)
sum int 4 Is the correlation a summation of two IFs, 1 = Yes, 0 = No.
freqinversion int 4 Is the band inverted (due to a high-side conversion) 1=Yes
timeoff long long int 8 Time offset from the start of the observation, important for muliple file processing and SNAP processing. Integer value which indicates the number of records (multiply by wapp_time to give elapse time)
lagformat int 4 0=16 bit unsigned integers, 1=32 bit unsigned integers
lagtrunc int 4 (future) if we truncate data -> bits truncated (0 no trunc)
power_analog[2] double 16 (future) This pair of values that will hold the total power meauserd by a diode detector. The two values are for each IF.
psr_dm double 8 pulsar's dispersion measure (cm-3 pc)
rphase[9] double 72 reference phase of pulse (0-1)
psr_f0[9] double 72 pulse frequency at reference epoch (Hz)
poly_tmid[9] double 72 mid point of polyco in (MJD) modified Julian date
coeff[144] double 1152 polynomial coefficients calculated by TEMPO effectively [9][16]
num_coeffs[9] int 36 number of coefficients
filler char 420 Extra space to make header = 2048 bytes
    2048 Total size of header (bytes)

WAPP Home | AO Home | AO Technical

This document maintained by
Material Copyright © 2000 Arecibo Observatory - Cornell University