WXP Y2K Compliance Statement

for Version 5.0

March 11, 1999

There are three potential problems in using time in WXP. First is the use of the system clock and system routines/functions to derive current time. The second is interpreting 2 digit years in file names, labels, etc. The third is the date stored in incoming weather data.

WXP version 5 Date Setup

WXP version 5 was modified to use a single date/time model in order to unify the use and creation of date/time information. Previous versions of WXP use several methods of handling dates, which can result in some inconsistent results. WXP version 5 adopts the following practices:

if year < 50, add 2000
else if year < 200, add 1900 (this handles situation where some data files store year as years from 1900)
else year is not changed.

This handles situations such as years from 1900 and use of century 20, year 100 for 2000 and century 21, year 1 for 2001.

Even though WXP keeps internal data structures with year, month, day, hour and minute, it uses integer seconds for all computations using time.

Y2K Testing

The Y2K testing and data below was done as part of the Northwest POC contract in March of 1998. In that work, the WXP ingestor, decoders and display programs were run for the following dates:

  1. Dec 31, 1999 to Jan 1, 2000
  2. Feb 28, 2000 to Mar 1, 2000 (leap year test)
  3. Dec 31, 2000 to Jan 1, 2001

These tests were run on a Sun Solaris 2.6 workstation and in all three cases, WXP ran fine. Some of the documentation is provided below. Many of the same programs were run on Linux (Red Hat 5.1) and Windows 98 with the same results.

WXP Access to Weather Data (Y2K Problem)

The only thing WXP cannot control is what NWS or other might put in their data files. For example, NIDS, GRIB and NOAAPORT satellite data include encoded dates that could be impacted by the year 2000. WXP cannot control if the encoding of these times are incorrectly sent from NWS. To reduce the effect of this problem, WXP allows the data to be saved on arrival time rather than the time encoded in the data file itself. WXP will display the internal time to date/time labels on plots, products and images but the processing of the data is based more on arrival time.

NWS is providing software developers with test Y2K products and as those are available, WXP version 5 will be tested on those products.

Older Versions of WXP (Unix and DOS)

WXP versions 4.8.3 and earlier use 2 digit year in many applications. Even though there is code to convert all 2 digit years less than 50 to 2000+ years, this is not consistently done throughout WXP. In other words, WXP 4.8 might reference the year 200 correctly in some cases and not correctly in others. These versions are not Y2K compliant.

WXP Y2K Test Results

(poc) d:/usr/wxp/data (unisys-66) ls 00*
00010100_pirep.hdr  00010100_sfc.wmo   00010100_term.wmo   00031498.syn
00010100_pirep.wmo  00010100_sum.hdr   00010111_sao.wmo
00010100_sao.wmo    00010100_sum.wmo   00010111_term.hdr
00010100_sfc.hdr    00010100_term.hdr  00010111_term.wmo
(poc) b:/usr/wxp/src (unisys-68) sacvt -cu
     SURFACE METAR/SA DATA CONVERSION PROGRAM (Ver 5.0-Solaris-X11)

Current filename: /usr/wxp/data/00010111_sao.wmo
Creating output file: /usr/wxp/convert/00010111_sao.wxp
DATE: 1100Z 1 JAN 00
Converting data...
Processing file: /usr/wxp/data/00010111_sao.wmo
(poc) b:/usr/wxp/src (unisys-75) wxpfile -cu -nh=-24 -if=sfc_cvt
/usr/wxp/convert/99123111_sao.wxp 
/usr/wxp/convert/99123112_sao.wxp 
/usr/wxp/convert/99123113_sao.wxp 
/usr/wxp/convert/99123114_sao.wxp 
/usr/wxp/convert/99123115_sao.wxp 
/usr/wxp/convert/99123116_sao.wxp 
/usr/wxp/convert/99123117_sao.wxp 
/usr/wxp/convert/99123118_sao.wxp 
/usr/wxp/convert/99123119_sao.wxp 
/usr/wxp/convert/99123120_sao.wxp 
/usr/wxp/convert/99123121_sao.wxp 
/usr/wxp/convert/99123122_sao.wxp 
/usr/wxp/convert/99123123_sao.wxp 
/usr/wxp/convert/00010100_sao.wxp 
/usr/wxp/convert/00010101_sao.wxp 
/usr/wxp/convert/00010102_sao.wxp 
/usr/wxp/convert/00010103_sao.wxp 
/usr/wxp/convert/00010104_sao.wxp 
/usr/wxp/convert/00010105_sao.wxp 
/usr/wxp/convert/00010106_sao.wxp 
/usr/wxp/convert/00010107_sao.wxp 
/usr/wxp/convert/00010108_sao.wxp 
/usr/wxp/convert/00010109_sao.wxp 
/usr/wxp/convert/00010110_sao.wxp 
/usr/wxp/convert/00010111_sao.wxp 
(poc) b:/usr/wxp/src (unisys-76) wxpfile -cu -nh=-24 -if=sfc_cvt -ou=date
11Z 31 DEC 99 
12Z 31 DEC 99 
13Z 31 DEC 99 
14Z 31 DEC 99 
15Z 31 DEC 99 
16Z 31 DEC 99 
17Z 31 DEC 99 
18Z 31 DEC 99 
19Z 31 DEC 99 
20Z 31 DEC 99 
21Z 31 DEC 99 
22Z 31 DEC 99 
23Z 31 DEC 99 
00Z 1 JAN 00 
01Z 1 JAN 00 
02Z 1 JAN 00 
03Z 1 JAN 00 
04Z 1 JAN 00 
05Z 1 JAN 00 
06Z 1 JAN 00 
07Z 1 JAN 00 
08Z 1 JAN 00 
09Z 1 JAN 00 
10Z 1 JAN 00 
11Z 1 JAN 00 

Test 10: Date Output for 2001

(poc) b:/usr/wxp/src (unisys-99) wxpfile 01010112 -if=sfc_cvt -nh=-24
/usr/wxp/convert/00123112_sao.wxp
/usr/wxp/convert/00123113_sao.wxp
/usr/wxp/convert/00123114_sao.wxp
/usr/wxp/convert/00123115_sao.wxp
/usr/wxp/convert/00123116_sao.wxp
/usr/wxp/convert/00123117_sao.wxp
/usr/wxp/convert/00123118_sao.wxp
/usr/wxp/convert/00123119_sao.wxp
/usr/wxp/convert/00123120_sao.wxp
/usr/wxp/convert/00123121_sao.wxp
/usr/wxp/convert/00123122_sao.wxp
/usr/wxp/convert/00123123_sao.wxp
/usr/wxp/convert/01010100_sao.wxp
/usr/wxp/convert/01010101_sao.wxp
/usr/wxp/convert/01010102_sao.wxp
/usr/wxp/convert/01010103_sao.wxp
/usr/wxp/convert/01010104_sao.wxp
/usr/wxp/convert/01010105_sao.wxp
/usr/wxp/convert/01010106_sao.wxp
/usr/wxp/convert/01010107_sao.wxp
/usr/wxp/convert/01010108_sao.wxp
/usr/wxp/convert/01010109_sao.wxp
/usr/wxp/convert/01010110_sao.wxp
/usr/wxp/convert/01010111_sao.wxp
/usr/wxp/convert/01010112_sao.wxp
(poc) b:/usr/wxp/src (unisys-101) wxpfile 01010112 -if=sfc_cvt -nh=-24 -ou=seq
200012311200
200012311300
200012311400
200012311500
200012311600
200012311700
200012311800
200012311900
200012312000
200012312100
200012312200
200012312300
200101010000
200101010100
200101010200
200101010300
200101010400
200101010500
200101010600
200101010700
200101010800
200101010900
200101011000
200101011100
200101011200