Enter a zip code or city name to get forecast:
Setup Location

WRN Logo

New Features in WXP 5.0

Latest Version 5.58
  February 2012

New in version 5.58 (February 2012)

Dual pole radar support

Added support for dual pole radar products

New in version 5.57 (August 2011)

New hurricane changes

Added shorthand directories to hurricane. These are "atl", "epa", "cpa", "wpa", "nio", "spa", "sio". Turn this on with -pa=path3
Added CSV output of storm information to hurricane (storm.csv)

Bug Fixes:

  • Fixed a bug in region where the default batch region wasn't set properly
  • Fixed a bug in mapplt where it wouldn't read raw files from stdin
  • Fixed a bug in rad where product 211 wouldn't label properly
  • Fixed a bug in rad where level 2 radar data causing core dump. This was the result of a buffer overflow caused by the new higher res data
  • Fixed how level2 data reader dealt with bad data
  • Fixed a bug in rad where memcpy bombs on decompressing, GINI satellite and level2 and level3 (NIDS) radar data. Had to replace with memmove
  • Fixed a bug in rad where product 138 was giving bad start times for precip
  • Fixed hurricane where it wasn't decoding newer Pacific hurricane discussion forecast positions
  • Fixed a bug in xsat where reading a bad image file could caused a core dump. This results from reading an indirect WXP IMG file where the filename listed in the file is blank or corrupted

New in version 5.56 (March 2011)

NSSL radar mosaic support

Added support for the NSSL radar mosaics

Bug Fixes:

  • Fixed a bug which caused a core dump if the symbol file was missing
  • Fixed a bug in the METAR decoder where extra visibility groups were not handled correctly for international METARs

New in version 5.55 (September 2010) 

Bug Fixes:

  • Fixed a small bug in how WMO ids for old Yugoslavia are handled
  • Fixed a bug in the GFS MOS reading where it only read 15 time values rather than 21.  This cut off everything after 48 hours.
  • Fixed a bug in the NLDN plotting where bad times were displayed when there was no valid data

New in version 5.54 (April 2010) 

New NIDS products

Added support for new NIDS products 134 (Digital VIL) and 135 (Enhanced Echo Tops).

New in version 5.53 (December 2009)

Upgraded 64 bit support for MacOS X

Changed more code to handle 64 bit processing. 

New NIDS products

Added support for NIDS products 94 and 99 (high res bref and vel) which will replace products 19 and 27.

Bug Fixes:

  • Fixed a couple of bugs in grdmath functions
  • Fixed a bug in GRIB reader where some values might be undefined before use
  • Fixed a bug in NIDS reader where bad data in BZip2 compressed files could result in infinite loop
  • Added default domain size in NIDS so that bad products don't produce strange domains
  • Fixed an issue in RAW_write where 64 bit pointers and 32 bit ints didn't work well.  This resulted in bad raw file output on 64 big machines

New in version 5.52 (September 2009)

Upgraded 64 bit support for MacOS X

Compiling for Snow Leopard exposed a couple of buffer overruns and small bugs

Bug Fixes:

  • Fixed bug where fill patterns decoded improperly
  • Fixed a buffer overrun in contouring when too many contour levels are specified
  • Fixed a bug in city database reading where WMO id variable not large enough to hold buoy names
  • Changed city database reading to fix possible 64 bit issues
  • Fixed a couple of bugs in image processing code that were introduced in 5.51
  • Fixed a bug in grid reader of WXP grid files where variable too small to handle some information strings
  • Fixed a bug where units weren't applied to GRIB data read in with header files.  This only affected griblook output.
  • Fixed a bug in hurricane where data read into a buffer was too small
  • Fixed issue with displaying WXP 6 RCM mosaics in WXP 5.  This eliminates the winter masking that WXP 5 can't handle.
  • Fixed a bug in coded WMO ids where id was improperly computed for Netherland Antilles

New in version 5.51 (August 2009)

Upgraded 64 bit support

Performed testing on 64 bit version of WXP to make sure each program worked properly

Bug Fixes:

  • Freed up pixmaps which might lead to memory leak on X server
  • Fixed bug in AREA reader for 64 bit OS
  • Fixed bug in enhancement file reader.  Incorrect processing of @label parameter
  • Fixed bug in plot domain decoding where missing parameters weren't handled correctly
  • Removed debug pring line from upper air calculations
  • Fixed bug in variable processing where "strm" plot type doesn't properly set up grids and thus results in no grids to plot

Additional Functionality:

  • Raised GRIB size limit to 2MB
  • Added Mercator projection for GRIB2 data
  • Added code to read in special WRF model GRIB parameters
  • Added code to swap levels in layers so that lowest level is first

New in version 5.50 (June 2009)

Updated ingest program

Changed com processing to handle end of line better.  The end of line is now CR/CR/LF rather than just LF. 

Added a test for just ETX.  All products are terminated with a sole ETX character but this is hard to test for since it not at the end of a line but at the beginning.   But packets are terminated with ETX so reworking the processing to go packet by packet allows for this test.   This then allows product's output files to be closed when the product is terminated rather than waiting for the start of the next product (i.e. when the next line comes across).

Fixed several bugs in wrap testing the end of line.  This fixed some issues with products getting truncated if the right combination of characters were present.

Fixed a bug which could cause a core dump on some run-on lines.

Fixed a bug for GRIB header processing.   The parameter array was too small to handle possible parameters and thus the output header files were not getting the right parameters.   In other words, the header files would be wrong.

Added new logging for potential issue relating to partial headers and possible truncated products.

Bug Fixes:

  • Fixed bug in the processing of TDWR data (bzlib compressed files only) where bad data could result in an infinite loop.
  • Fixed a bug in rad where plotting of MESO data (composite reflectivity attributes) didn't accound for new MDA data (numeric rather than YES/NO).
  • Fixed a bug in light that resulted in extended format NAPLN/USPLN data not getting parsed properly.   The date was expecting integral seconds and the extended format using a floating point value.
  • Fixed the labeling of NAPLN/USPLN and NLDN data in light.
  • Fixed the domain specification for MDR and RCM plotting and decoding (rad and radcvt).
  • Fixed a bug in sacvt that wouldn't properly recognize some NIL Canadian METAR reports (where NIL is in the RMK section) and resulted in the next line being appended to the current METAR line.   This would result in some reports being lost.

New in version 5.49 (March 2009)

Added support for TEMP MOBIL upper air reports

WXP uacvt will now decode TEMP MOBIL products.  This includes IIA, IIBB, IICC, IIDD, EEBB and EEDD products.

Added more support for NAM MOS data

Even though Eta MOS had been supported, it wasn't fully supported in programs like fo_parse and statlog.  In converting Eta to NAM some parameters were not fully decoded.  Now all the parameters are decoded adding SNW, CIG, VIS and OBV.   Several bug in the decoder were fixed.

Additional Functionality:

  • Added processing to allow NAM UA products to go to 60 hours.
  • Added demo licensing.

Bug Fixes:

  • Fixed bug in color fill where a missing value would return a bad color.
  • Fixed NAM UA identifier search in city database (added leading K to id).
  • Fixed bug in model sounding plot where values were missing.
  • Fixed bug in NAM UA decoder where second and third reports in a product cuold be skipped.
  • Fixed several bugs related to TDWR decompression.
  • Fixed bug in vector plotting where programs core dumped if color fill with values used.

New in version 5.48.3 (January 2009)

Added support for TDWR

The rad program will now process and display TDWR (Terminal Doppler Radar) data files.

Bug Fixes:

  • Fixed some small bugs in the NIDS decoder.
  • Fixed bug in license decoder.

New in version 5.48.2 (November 2008)

Additional Functionality:

  • Increased variable parameter in grbcalc to 200 characters
  • Added WXP6 cutoff value reading in image files (values ignored)
  • Modified some constants to match WXP6

Bug Fixes:

  • Fixed bug in Coriolis grid math function where improper latitude was being used.
  • Fixed bug in variable processing in rad for Level 2 radar plotting
  • Fixed a bug specification of wind chill temperature in sfcwx.

New in version 5.48.1 (October 2008)

Bug Fixes:

  • Fixed bug in gifcat related to exapnsion of color table.
  • Fixed bug in griblook where grid_type was ignored if you wanted to extract a grid from a file.
  • Fixed issue in hurricane where month was improperly computed for forecasts

New in version 5.48 (August 2008)

Ported WXP6 Level 2 decoder for MSG 31 to WXP 5

The WXP 5 decoder for Level 2 radar data was replaced with a backported version of the WXP 6 Level 2 decoder in order to handle the high res. MSG 31 format.

Added "unit" function to grdmath

This adds the ability to change units in grdmath

grdmath filename unit new_units = new_filename

Additional Functionality:

  • Increased buffering in ingest to 10K.
  • Modified sacvt to treat "NCD" and "NSC" as clear skies.

Bug Fixes:

  • Fixed bug in ingest relative to BUFR processing that would possibly read in next product and append it to current product.
  • Fixed bug in the grd_read module that didn't properly read in the units of a grid that was saved as a WXP grid file.  This meant changing units in grdmath couldn't be done on WXP grids.
  • Fixed bug in processing of ETA and GFS MOS data that involved improper conversion of some cloud height/ceiling parameters. 

New in version 5.47 (May 2008)

Converted code to ANSI C with full function prototyping

Completed work to move the WXP 5 code to ANSI compliance and prototype each function.   The -Wall parameter was added to compilation to extract an issues.   This flagged about 20 small problems which were resolved.

New in version 5.46 (January 2008)

Added use of generic resources

WXP 6 was designed to use generic resources.   Any resource specified in the resource file (*generic_resource: xxx) or the command line (-generic_resource=xxx) will be read into the resource database.  Before, only a set list of resources specified by the program could be used.

Added generic paths to name convention file

WXP 6 has the ability to define generic resources in the command line and in some database files.  The use of generic paths in the name convention file was backported to WXP 5.   This means you can specify a generic path resource in the naming convention:

nids  %{nids_path}/%i/%y%m%d%h%n_%e.nid

The resource path can be specified in the resource file (wxp.cfg) or the command line (-nids_path=xxx).

Support for Digital Hybrid Reflectivity (DHR) and Digital Storm Precipitation (DSP) 8 bit NIDS products

The rad program can now display these products.  These are high resolution 8 bit products as opposed to the 4 bit (16 value) N0R and NTP products. 

Additional Functionality:

  • Added code to handle forecast time labels in days and months.
  • Reworked processing of probabilities in the GRIB decoder.   Before, a probability was assumed to be from an ensemble grid.  Now it distinguishes between ensemble probability and regular probability.
  • Added code to handle forecast time increments in GRIB2 in 3, 6 and 12 hour increments.  This affect labeling of plots.
  • Added visibility string data to MOS decoder.   This creates a visibility string varying on visibility value (10, 2.5, .12).   This was available for plotting in surface data but not MOS data.
  • The MOS decoder not checks the header file for valid data.  Before, the whole file would be searched whether it was needed or not.  This improves plotting performance and cuts plotting time in half.
  • Added check to see if license file could be opened.  This was done for license file debugging problems.
  • Increased the number of significant levels handled by the upper air decoder from 100 to 200 levels.  The new high resolution soundings often have more than 100 significant levels.

Bug Fixes:

  • Fixed bug in climat that didn't properly handle max/min data in the 444 group.
  • Fixed bug in objective analysis code that didn't use the last piece of data in the array. 
  • Reworked the lat/lon parsing in the front decoder to eliminate issues with spurious lines.  The code was backported from WXP 6 that didn't have this problem.
  • Fixed bug in GRIB2 decoder that didn't index grids properly.  Referencing grids in contour by grid number would be off because multi-grids (U/V) would be counted as one and the second grid became inaccessible.
  • Fixed bug in GRIB2 4.8 template where missing statistical type was not handled.  Now it distinguishes between missing end forecast time and one where it is specified. 
  • Added code to initialize all gridpoints in the GRIB decoder to MISS.  In some cases where the grid wasn't fully defined, the gridpoint values could be random.
  • Fixed bug in GRIB2 decoder that didn't handle allocation of bit map block correctly. 
  • Fixed bug where bit map block not used for some grid types.  
  • Added code to handle reuse of bit map block from prior grids.
  • Fixed bug in GRIB2 decoder where complex spatial differencing wasn't being done properly.  Added code to handle 1 byte differencing (only handled 2 byte before).  Fixed segment length (glen) computation by adding segment offset (inc_glen). 
  • Fixed bug in METAR decoder that interpreted ///// (5 slashes) as missing visibility rather than missing wind.
  • Fixed bug in sfcwx where wind direction was being reset when plotted.   The wind directory was corrected to plot the winds relative to north on the projection but this could affect wind direction if requested by an Alt-v on the display or being saved to a raw file.

New in version 5.45 (July 2007)

Reworked the hurricane program to handle subtropical and extratropical storms

The hurricane program in the past ignored the subtropical and extratropical designators because it often happened after a storm was tropical.  But now that these storms are being named from the beginning, hurricane now has to deal with a storm like Andrea that was never tropical in nature.  So the hurricane program now has a storm type designator so that it can properly label each storm.

In addition, the hurricane program has an additional check to make sure eastern Pacific storms don't end up in the western Pacific directory.  Finally, for simplicity, the northern Indian Ocean storms now go into a "n_indian" directory to match the other directory paths (such as e_pacific, s_pacific, s_indian).

Eventually, this program will be replaced with a WXP 6 equivalent.

Added support for EuMetSat LRIT data

The compression scheme the LRIT uses is a non-standard version of JPG.  Thus to get the JPG API to read the files in correctly, a modified library must be used.  This has now be incorporated into WXP and these compressed LRIT files can now be displayed.  WXP has supported uncompressed LRIT files for several versions and support for GOES LRIT data is being considered (issues with proprietary compression scheme need to be resolved).

Additional Functionality:

  • Added scaling for marker plotting in light.  Now markers can be specified for lightning plotting and that can be properly scaled.
  • Added test in licensing program to search for license file in "/usr/local/wxp/etc" as well as "/home/wxp/etc".  This is used if the "wxpdefault" environment variable is not set.  Similar testing was added for the location of the resource file in a prior version. 
  • Added a better warning message for missing license file.

Bug Fixes:

  • Fixed bug in DATE_time_date where it computed the wrong number of hours given seconds since midnight.
  • Fixed bug in GRIB2 decoder that limited grid size to 2000 gridpoints in either direction.  Some radar mosaics put in GRIB2 format are larger than that.
  • Fixed bug in GRIB decoder that didn't calculate forecast time when it was missing.  In some cases, its left missing and forecast time (say 24 hour forecast) must be derived from valid time.
  • Fixed bug in GRIB2 decoder for JMA template 50008 wher the forecast time and level were left unset.
  • Fixed bug in ingest that put the wrong level in header files for products using the "hybrid" level designator.  This is for the base reflectivity products coming from the NAM model.
  • Fixed bug in LRIT decoder that used the wrong offset value for locating images.  It had been hard coded that the images would be split into 10 slices.  This test code had been left in WXP and should have been replaced.  Now, the LRIT decoder uses the offset values in the image file to correctly locate the image.
  • Fixed problem in parse that prevented multiline zone and county designators (PAZ029-031...) from being interpretted.  Now parse will decode all available designator lines.
  • Changed maxtop parameter in rad program to echotop.
  • Fixed bug in raw file reader that didn't offset the field number correctly.  If you specified "file-0", the wrong data field would display.  It should display the first field/column after the lat/lon.
  • Fixed bug where a program would go into an infinite loop is an invalid region was specified.  In other words, if a region was specified that wasn't in the "wxp.reg" file.
  • Fixed bug where forecast hour would be incorrect if something like "3day-24acc" was specified.  The "day" computation would be missed and 3 would be assumed as hours, not days.
  • Fixed bug in plotting programs where streamline and vector plotting wouldn't work properly if mixed in with standard data plots.  The streamline specification would be ignored and U and V component values would be plotted to screen, not drawn as streamlines.  This affected programs like sfcwx and upairwx.

New in version 5.44 (May 2007)

Updated the GRIB decoder

The GRIB1 and GRIB2 decoders were reworked to streamline reading of data.  The problems involved losing track of the current position in the file and in some cases core dumping.

Added in support for GRIB2 data templates that support ensemble data. The templates include 1, 2, 5, 9, 11 and 12.

Added differentiation for ensemble mean and stdev fields.  Use ensmean[]var for mean and ensdev[]var for stdev fields.  The variable number is 19000vvv for mean and 19001vvv for stdev fields.

Changed ensemble member specification.  Control is 19300vvv.  Positive is 1932##vvv.  Negative is 194##vvv (used to be 193).

Added support for thinned grids in GRIB2.

Additional Functionality:

  • Added support for hybrid levels (lev = 105) for radar model output.

Bug Fixes:

  • Fixed bug in grbsnd where some grids could be inadvertantly read in. This is case when 25 mb level data is available and the program wants 50 mb levels.  The 25 were read in anyway and sometimes overwrote the 50 mb data.
  • Fixed bug in GRIB reader that if a file contained two sizes of grids, that the data grid would be reallocated.  Otherwise, there was a core dump.
  • Reworked satellite transformation to fix mapping problem on non-sphere earth.  This threw some projections off by close to a half degree.

New in version 5.43 (April 2007)

Updated AREA file decoder

The AREA file decoder was updated to handle many new AREA file types and navigation schemes.  Specifically, support for RECT, MERC, LAMB and MSAT AREA file navigations have been added.  Also, the MOLL projection code has been updated to handle the two types of MOLL projections specified in the AREA file documentation.

With the addition of angle based satellite navigation and elliptical earth, xsat can use its native georeferencing and not have to rely on the GVAR code.  This simplifies the navigation interface and eliminates some estimation of pixel spacing done in prior versions.

Additional Functionality:

  • Modified reading in of NGM MOS POP12 data to handle Alaska off hour reports.
  • Added satellite projection code for non-spherical earth.
  • Added domain specification so that "e" can be specified for non-sphere/elliptical earth:
  • Comments can be added to wxp.reg file.
  • Corrected the line/elem for AREA files to use 0,0 as origin.
  • Added many new levels to GRIB specification such as boundary layer, cloud ceiling, wet bulb zero, equilibrium level, super cooled liquid water.

Bug Fixes:

  • Fixed bug in color_fill file that caused DOS formatted files to read in incorrectly.
  • Fixed bugs in GRIB2 decoder to handle embedded GRIB products.  In some cases, the wrong grid was read in.

New in version 5.42 (February 2007)

Added new gridpoint plotting capabilities

  • First, you can specify a skip factor so that not every grid value is plotted. 
  • Second, you can offset the plotted values. 
  • Third, you can scale the values.
In plot_param:   plt_skip=x:y (with y optional)  and plt_off=x:y
In variable:   sk=xy:xy=xy:sc=#  (mimic vector plotting)

Updated the GRIB2 decoder

Even though WXP 5 could read in simple GRIB2 products, it couldn't handle products with multiple grids.  Support was added to handle these multiple grid products.  Because of the way WXP 5 is designed, this addition break support for GRID products (WMO ASCII text version of GRIB).

Added limited support for LRIT data files

Even though WXP 6 has had this support for a while, it was added to the WXP 5 code base.  This is limited support for uncompressed products using the GOES navigation.  You can access these data using "-inp=lrit" from xsat.  This is primarily for support for JMA images and doesn't include GOES LRIT data since it uses a proprietary compression algorithm.

Additional Functionality:

  • Added hexadecimal color definitions to color table file.  Instead of using floating point R G B values, you can use #rrggbb in hex format (#c08427)
  • Added navigation support for satellite projections based on scan angle and not a projection plane.  Satellite projection information is: sat:plat:plon:sat_rad:flag,clat,clon,...  where the flag is 0 for projection plane space and 1 for angle space. Angle space is scaled by the sat_rad to make numbers reasonable.  For example, geostationary satellites have a sat_rad of 421.64.
  • Added support for Unisys 1km winter mosaics.
  • Added marker plotting to light.  Use the plot parameter mark with a standard marker type:  -pp=mark:circle 
  • Added IR temperature computations to Unisys satellite images so that they can be enhanced with temperature based enhancement schemes.

Bug Fixes:

  • Fixed problem with wrapping contours in Lambert Conformal projection.  On global grids, lines going across the back of the earth could cause spurious horizontal lines to display.
  • Fixed bug that would cause core dump on Jpeg2000 grids.
  • Fixed bug in reading in upper air data from WXP decoded files that limited the number of significant levels to 50.  Many sites today report more than 50 significant levels and this would cause the file reader to ignore the following station.  The total number of levels was raised from 120 to 200 to accommodate these newer stations.
  • Fixed bug in color fill file reader that read the last line of the file twice.  This resulted in double used colors and no color bar.
  • Fixed bug in suncalc where the Julian date didn't account accurately for non-leap years.  This meant sunrise, sunset times were two days off for the months of January and February 2007.

New in version 5.41 (September 2006)

Added processing for WXP v6 Grid and Image files

WXP v6 adds new functionality to grid and image files.  This update allows WXP 5 to read these files, not create them.

Added new mapplt plotting options

Added the ability to plot text, markers and range circles from the mapplt command line:

mapplt -pd=us mark:lat:lon:type  text:lat:lon:text  range:lat:lon:range

So from the command line, you can plot a marker at any lat,lon location.  The type is the standard types such as "+", "circle", "square", etc.  The text is plotted centered at the location.  The range circle is in nm.

Default resource file location

WXP will now look in default locations for the resource and license files.  If you put the resource file and license file in the "/home/wxp/etc" or "/usr/local/wxp/etc" directory (c:/wxp/etc for Windows), WXP will find them without having to set the wxpdefault environment variable.

Additional Functionality:

  • Added comment lines to color fill and enhancement files.  Precede them with a #.  Also added @value line for WXP v6 valued images.
  • Added "/c/" for Windows filenames.  You can use "/c/" instead of "c:/" in filename to eliminate some confusion with ":" being a delimiter for WXP options.
  • Added the parsing of some new JTWC tropical storm advisories to the hurricane program.
  • Added storm track plotting to raw files.  For example:
    Will plot a track marker with direction 216 and speed 36 knots. 
  • Added labels for special GOES products on NOAAPORT.  The satellite derived lifted index, precipitable water, surface temperature and cloud top height will now be properly labeled.

Bug Fixes:

  • Fixed a bug in the conventions that could code dump if lines in the name convention file were longer than 100 characters.  The line limit is now 160 characters.
  • Fixed a bug in grdmath that prevented the prepending of the grid_path path onto the first filename used in some math computations.
  • Fixed an issue with the determination of hurricane location.  The hurricane program now has some additional checks to make sure eastern Pacific storms don't make it into the western Pacific list of storms.
  • Fixed a bug in the MDR decoder that didn't account for a storm movement attribute after max tops.

New in version 5.40 (June 2006)

New GRIB header file format

This new format prefixes numbers with a single character: S - source, M - model number, G - grid number,  T - forecast time value, L - level type, H- level value, V - variable/parameter specification.

Added limited functionality for GeoTIFF GOES imagery

Even though a GeoTIFF decoder was added to WXP, it didn't handle many types of GeoTIFF imagery.  This version updates the GeoTIFF decoder to handle both big and little endian files as well as RLE compression of TIFF data.  Georeferencing support was extended to lat/lon projected TIFF imagery.  This will support GeoTIFF imagery produced by NESDIS.

Updates to NIDS storm attribute data

  • Rewrote NIDS bit reader and decoder. This was done so that the full storm attribute table could be decoded.  Prior to the rewrite, rad would stop decoding after the first 4 storms.
  • Fixed check for TVS and MESO.
  • Added drop shadowing to markers so that storm attribute plotting will stand out.
  • Added strong and numplt:# options to rad to filter storms.  With the additional storm attribute data, cluttering is an issue.  Using the strong option "-pp=strong", only storms with a TVS, MESO or severe hail > 50% will be plotted.  Using the numplt option "-pp=numplt:3", only a set number of storms will be plotted.  In general storm attribute tables are sorted with the strongest storms at the top.  Both options can be used so that at least # number of storms will plot even if they're not strong or that strong storms will plot even if it exceeds the numplt specification.

Additional Functionality:

  • Changed DATE_print output formatting
  • Added "uspln-t" and "uspln-b" format decoding for direct USPLN feed.
  • Added "lev2z" input format type for compressed Level 2 data files.  With changes to the Level 2 format, it was impossible to determine the file format directly from the contents.  Use "lev2" for uncompressed data only.
  • Added marker plotting to light.  To specify plotting a marker, use "-pp=mark:+".  The scale resource (-sc) can be used to scale the marker.
  • Added GRIB2 support for JMA radar imagery.  This adds the templates to the GRIB2 decoder for JMA radar data.
  • Added drop shadowing for markers.  So if shadowing is specified "-pp=shadow:3", markers in addition to text will have shadowing.
  • Added refresh option to the sfcwx program.
  • Fixed arrow size for storm track option "-va=track" in rad.

Bug Fixes:

  • Removed setting of file type and name convention in rad.  This eliminates a conflict when both are specified. 
  • Fixed a bug in the licensing code.
  • Fixed a bug in sacvt that caused random core dumps.
  • Fixed bug in SHEF comment parsing.  shefcvt would stop parsing at comments.  Problem introduced with parser rewrite.
  • Fixed raw file read issues.  Lines with a leading space were ignored.  Problem intorduced with parser rewrite.
  • Fixed bug in DATE_chk_range that led to bad checks for times in sacvt and uacvt
  • Fixed bug in sacvt the could miss from reports in METAR or SPECI not put in METAR code line.
  • Fixed a bug in the RCM plotter that didn't plot storm tops properly.
  • Fixed bug in storm track arrow "-va=track" on the rad program.  The bug enhanced arrow size for fast moving storms.
  • Fixed offset in GRIB2 decoder.  This was causing some GRIB products to be skipped because the offset between products was not properly calculated.  This cause some GRIB files such as ones downloaded from NWS FTP servers to not be parsed properly and as a result every other GRIB product was skipped.
  • Fixed GRIB2 decoding of level specification.  This meant layer specifications were wrong.

New in version 5.39 (January 2006)

New variable specification for ensemble probability grids

The ensemble grids use a different numbering scheme for the variable.  There are two types of ensemble grids that require special attention.  The mean and spread fields can be run with existing commands. 
  • The individual ensemble grids will generally go into a single file but prior could would show 2-8 grids of the same parameter.  The new code will denote the perturbation run number:

    Reading from grid file:/mnt/noaaport/nwstg/model/06012512_gfse.grb
      0: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+1] Temperature (K)
      1: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+2] Temperature (K)
      2: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+4] Temperature (K)
      3: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+3] Temperature (K)
      4: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+5] Temperature (K)
      5: 6 hour GFSE valid 18Z WED 25 JAN 06-500 mb Ens[-1] Temperature (K)
      6: 6 hour GFSE valid 18Z WED 25 JAN 06-500 mb Ens[-2] Temperature (K)
      7: 6 hour GFSE valid 18Z WED 25 JAN 06-500 mb Ens[-4] Temperature (K)
      8: 6 hour GFSE valid 18Z WED 25 JAN 06-500 mb Ens[-5] Temperature (K)
      9: 6 hour GFSE valid 18Z WED 25 JAN 06-850 mb Ens[+1] Temperature (K)
     10: 6 hour GFSE valid 18Z WED 25 JAN 06-500 mb Ens[-3] Temperature (K)
     11: 6 hour GFSE valid 18Z WED 25 JAN 06-850 mb Ens[+2] Temperature (K)
     12: 6 hour GFSE valid 18Z WED 25 JAN 06-850 mb Ens[+5] Temperature (K)
     13: 6 hour GFSE valid 18Z WED 25 JAN 06-850 mb Ens[+3] Temperature (K)
     14: 6 hour GFSE valid 18Z WED 25 JAN 06-850 mb Ens[+4] Temperature (K)
     15: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[-1] Geopotential Height (m)
     16: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[-3] Geopotential Height (m)

    The purturbation will be shown as + or - and then the run number. 
    The header file will not specify ensemble information to it is important to specify "-pa=nohdr" when viewing the file contents.

    To specify this with contour use the ens[+1]temp variable specification with the parameter in the brackets being the purturbation number (i.e. +2 or -3).

    contour -if=grib_gfs_ens -cu=la -gn=+6:850:ens[+2]temp

    The variable number is encoded.  If you run griblook at message level 4, you will see the internal parameters.  
      0: 6 hour GFSE valid 18Z WED 25 JAN 06-250 mb Ens[+1] Temperature (K)
         Model: GFSE Time: 6hr          Level: 250mb        Variable:         Units: K
         Model: 80 Ltype: 100 Level: 250 Var: 19331011 Hour: 6 Grid: 39
         Proj: latlon:::::,45.000,-165.000,73,73,1.2500,1.2500

    The number 19331011 is a combination of "193" specifying ensemble data, "3" which is the ensemble type (positive perturbation), "1" the run number (of product ID) and "011" which is the old variable number (11 = Temperature).

  • Probability grids offer a different problem.  There are three types of probability grids: probability the value is greater than a number, probability the value is less than a number and probability the value is between two numbers. 

    Reading from grid file:../GRIB/sref.t09z.pgrb212.prob
      0: Eta analysis for 0900Z 12 DEC 05-Surface Ens prob (%) CAPE above 500.00 J/kg
      1: Eta analysis for 0900Z 12 DEC 05-Surface Ens prob (%) CAPE above 1000.00 J/kg
      2: Eta analysis for 0900Z 12 DEC 05-Surface Ens prob (%) CAPE above 2000.00 J/kg
      3: Eta analysis for 0900Z 12 DEC 05-Surface Ens prob (%) CAPE above 3000.00 J/kg
      4: Eta analysis for 0900Z 12 DEC 05-Surface Ens prob (%) CAPE above 4000.00 J/kg
      5: Eta analysis for 0900Z 12 DEC 05-0-3000 m AG Ens prob (%) Helicity above 100.00 m^2/s^2
      6: Eta analysis for 0900Z 12 DEC 05-0-3000 m AG Ens prob (%) Helicity above 150.00 m^2/s^2
      7: Eta analysis for 0900Z 12 DEC 05-0-3000 m AG Ens prob (%) Helicity above 200.00 m^2/s^2
      8: Eta analysis for 0900Z 12 DEC 05-0-3000 m AG Ens prob (%) Helicity above 250.00 m^2/s^2
      9: Eta analysis for 0900Z 12 DEC 05-0-3000 m AG Ens prob (%) Helicity above 300.00 m^2/s^2

    The number is encoded into a 3 digit number.  The first digit is the exponent which runs from 0-5 for numbers greater than 1 (0=1, 1-10, 2=100, etc) and 6-9 for numbers between 0 and 1 (9 = .1, 8 = .01, etc).  The next two numbers are the first two significant digits.  For example, 500 is 250, 3000 is 330, 2.54 is 025.  The lead number is 191 for probability, the next 3 digits are the variable number, the next digit is the probability type (1 is below a number, 2 is above a number, 3 is between numbers where only the first number gets used) and the last 3 digits is the encoded number.  If the number is negative, 5 is added to the probability type.  For example: 1911566240 is ensemble probability of convective inhibition (var=156) below (type=6) -400 (encoded as 240 and 5 is added to type.  Another example is 1910612950, which is ensemble probability of precipitation (var=061) above (type=2) .25 (encoded as 950).

    To access these with contour, use a similar variable specification:

    contour ../GRIB/sref.t09z.pgrb212.prob "-gn=+3hr-3acc:sfc:ensprob[>1.27]prec"
    contour ../GRIB/sref.t09z.pgrb212.prob "-gn=+6hr:850:ensprob[<273]temp"

    Make sure you use the quotes to prevent redirection.

    NOTE: In this release, there is no support for the variable specification in grbcalc.  But you can specify the encoded variable number such as "19331011".  Also, you need to turn off header file processing (-pp=nohdr).

    grbcalc -mo=gfs_ens -cu=la -ft=6 -le=250 -va=19331011 -pp=nohdr

USPLN lightning data decoding

The "uspln" format has been added to the light program.  Specify "-inp=uspln".

Additional functionality:

  • Added grdfmt option to parameters resource for specifying the output format for ASCII grid files.  Use "-pa=grdfmt=%.1f".  For graphics programs, this is under "-pp".
  • Added support for displaying PNG files with an alpha channel.

Bug Fixes:

  • Fixed several decoding problems in sacvt.  This includes newer METAR tags used internationally.  This includes better support for missing visibility, cloud and wind data.
  • Fixed some decoding problems in hurricane.
  • Fixed a problem in ingest that prevented it from saving data in raw format.  The WMO header was being saved in the WXP format with the asterisks.  The WMO header was being cleaned so trailing CR/CR/LF was removed and not saved to file.
  • Fixed the interface specification in ingest that caused an invalid argument on the multicast setup.  This should allow ingest to directly ingest NOAAPORT data directly from the multicast stream.
  • Fixed X color mask for extracting images from non-24 bit displays. 

New in version 5.38a (August 2005)

Mapplt additions

Added the xy: plotting of data from the command line.  You can specify "xy:3:-50:Text" to the command line to plot text in a specific location in projection coordinate (not lat lon).

GeoTIFF input into xsat

xsat can now read and display some GeoTIFF images.  Specify "tiff" for the input parameter.

Additional functionality:

  • Added hwind variable to plot winds greater than 25 knots in fouswx and sfcwx.
  • Added WARP mosaic plotting to rad.
  • Added "slabel" to rad to plot a simpler watch box labels such as "TORNADO WATCH to 8 PM" and "SEV TSTORM WATCH 9 AM".

Bug Fixes:

  • Fixed date processing in hurricane.  Fixed some glitches for dissipating storms. Fixed processing of some eastern Pacific storms as western Pacific storms.
  • Fixed some processing errors in ingest that resulted in core dumps
  • Fixed a plot scaling issue in mapplt.
  • Fixed a vector plotting bug in vector, grbcalc.

New in version 5.37a (March 2005)

Ingest additions

Added parameter "pan_id" so that the PAN ID number, before only stated in the ingest.bul file could be specified on the command line.  Also, fixed bug in PAN transmission that would cause PAN message to drop if a client somehow disconnected.

Bug Fixes:

Removed "SCALE: x y" debug message from GRIB decoder.

New in version 5.37 (February 2005)

GRIB2 additions

Added support for DRS templates 1,2 and 3 to handle NDFD grids.  Added support for DRS template 40 (same as 40000 for Jpeg2000 compression).  Changed the grid type specification for lat-lon grids to be more representative of the actual values.  Added support for "max" and "min" time ranges in GRIB2.

Bug Fixes:

  • Fixed bug in resetting file pointer location in GRIB1.  This also fixes a problem with reading in GRIB size in GRIB2.
  • Fixed bug in reading some GRIB2 files (primarily NDFD) that would cause a core dump when reading past the first grid in a multigrid file.
  • Fixed GDS lat-lon domain problems for GRIB2.  This allows the use of CONDUIT grids.
  • Fixed bug in GRIB2 level determination.
  • Fixed bug in header file date/time initialization for GRIB2 header files.
  • Fixed header file parameter determination in ingest.

New in version 5.36 (February 2005)

Updated ingest for DVB

The ingest program has been updated to accept packets directly from a DVB receiver.  Since this is not buffered, packet loss can occur but ingest is possible.

ingest msock:port=1201:host=

This initializes a multicast socket connection on port 1201, reading packets from host off NIC interface 10.0.02.  The last parameter is used if the multicast packets are coming from a second NIC card (interface is that card's IP address).

Updated ingest for GRIB2

The ingest program now can create header files for a subset of the GRIB2 products coming across NOAAPORT.  The program maps data from the product header to old GRIB1 parameter sets.  This is done with the aid of 3 files (new versions of these files must be downloaded):
  • grib_var.lup - this file maps GRIB 0 and 1 parameters to strings.  For example, parameter 17 maps to "dewp".  This file also specifies the units and allows for parameter sets not from NWS. 
  • grib2_var.lup - this file maps GRIB2 parameters to strings.  This is similar to the previous file but also uses the discipline and category parameters as well.  For example, discipline 0, category 0, parameter 6 is "dewp".
  • variable.lup - this maps the parameter string back to a number.  For example, "dewp" maps to 17.  This will be the parameter number in the header file.
The determination of a grid number is done through a formula that includes the projection, start lat, lon, horizontal number of gridpoints and horizontal grid size.  This replaces the grid number that was imbedded in the GRIB 1 products.  For example, 301226112 is the representation of the 218 grid.  30 is the projection (Lambert), 1 is the starting latitude (~10N), 22 is the starting longitude (~220E or 140W), 61 is the number of gridpoints in X (~610), 12 is the grid size in km.

Limited support for GRIB version 2

Support has been added for the GRIB version 2 products that are on NOAAPORT as of the start of 2005.  GRIB 2 is a complicated code which will require decoding on a case by case basis.  The parameter determination is done through the "grib2_var.lup" and "variable.lup" files. 

griblook will produce header files although there are still some bugs in the output.

Hurricane support for extended forecasts

Support is available in the hurricane program to decode forecasts out to 120 hours.

Support for NAM MOS data

The MOS decoders can now handle MOS data from the NAM (formerly ETA) model.  The model resource is "NAM" and "NAM_UA".

Bug Fixes:

Fixed a bug in the RCM decoder that faulted on reading in of the /SC parameter with no number attached.

Beta 6.0 programs

NOW the the C++ WXP library is nearing maturity, its time to start making some of the programs available.
  • nids2image - a program to take NIDS data and convert it into a WXP image file.  This is a simple radar mosaic program with support for winter mosaics.  The winter mosaics are done through applying a grid file as a mask (0=rain, 1=mixed, 2=snow)
  • redbook - a program to display redbook graphics images
  • upxplot and upxcont - programs to display upper air cross sections using rawinsonde data
The 6.0 library will have an API available along with a Perl module. 

New in version 5.32 (March 2004)

Added Level II Nexrad data display

The Level II data can be accessed using the "-inp=lev2" option.  To select which scan and parameter in the file, use the "variable" resource: 
  • -va=ref1 is the first scan reflectivity
  • -va=vel4 is the fourth scan velocity
  • -va=spect8 is the eighth scan spectrum width
The Level II decoder will handle uncompressed Level II archive data and the new bzip2 compressed files sent through the LDM.   The rad program will automatically sense which file type.

Added support for NCEP ensemble data (GRIB v1)

The GRIB decoder now reads the extended PDB to create a label for the ensemble grids. 
  0: Eta analysis for 0900Z 23 FEB 04-Surface Ens prob (%) CAPE above 500.00 J/kg
  1: Eta analysis for 0900Z 23 FEB 04-Surface Ens prob (%) CAPE above 1000.00 J/kg
  2: Eta analysis for 0900Z 23 FEB 04-Surface Ens prob (%) CAPE above 2000.00 J/kg
  3: Eta analysis for 0900Z 23 FEB 04-Surface Ens prob (%) CAPE above 3000.00 J/kg
  4: Eta analysis for 0900Z 23 FEB 04-Surface Ens prob (%) CAPE above 4000.00 J/kg
  5: Eta analysis for 0900Z 23 FEB 04-0-3000 m AG Ens prob (%) Helicity above 100.00 m^2/s^2
  6: Eta analysis for 0900Z 23 FEB 04-0-3000 m AG Ens prob (%) Helicity above 150.00 m^2/s^2
  0: Eta analysis for 0900Z 23 FEB 04-Surface Ens mean CAPE (J/kg)
1: Eta analysis for 0900Z 23 FEB 04-0-3000 m AG Ens mean Helicity (m^2/s^2)
2: Eta analysis for 0900Z 23 FEB 04-0-30 mb AG Ens mean Parcel lifted index (dK)
3: Eta analysis for 0900Z 23 FEB 04-Surface Ens mean Convective inhibition (J/kg)
4: Eta analysis for 0900Z 23 FEB 04-Sea level Ens mean Pressure (Pa)

Additional functionality:

  • Added compressed GINI file resampling to awipsat_sample.
  • Added display of GIF images from NOAAPORT with leading WMO header.
  • Added level type 117 (potential vorticity), 206, 207, 248, 249, 251 and 252 to GRIB decoding.  Added variables 191 an 192.
  • Added Lambert Azimuthal projection "-pd=lambaz,40,-90,2.3"

Bug Fixes:

  • Fixed a bug in contour, vector and grbcalc that confused the -in and -inp command line resources.
  • Fixed bug in MOS decoder for wind speed on GFSX/MRF data.
  • Corrected problem with NIL reports being added into the sacvt internal database.  This resulted in some METAR reports not being saved.  This only occurs when the first observation for a station for a particular hour is listed as NIL. 

New in version 5.31 (December 2003)

Added GFS MOS support

The AVN and MRF MOS data have been replaced with GFS equivalents.  This changes how the MOS data is extraced from the file.  This corrects that problem.  To access the old AVN MOS, use "-mo=gfs".  To access to old MRF MOS, use "-mo=gfsx".  The 24 hour snowfall values are also available under the variable "snwfl24".

Pixel value cutoff support for XSAT

This allows image files for winter mosaics to be displayed using pixel averaging.  For example, the winter mosaic has cutoff values at 15 and 25.  Values below 15 are for rain.  Values below 25 are for mixed and values at or above 25 are for snow.  If this is not specified, a gradient will appear.  Say you are going from 20 Dbz rain to 20 Dbz mixed.  The values will be averaged between 5 and 19 giving all the colors inbetween.  The cutoff eliminates this by suspending averaging around cutoff values.  

Also, there is the concept of a cutoff base value.  This is the 0 value for the mosaic.  For most mosaics, this is the 0 pixel value.  But for some, 0 is used for no data and 0 Dbz is actually 1.  Specifying the cutoff base allows pixel averaging for mixed and snow to act like rain where the edges gradually diminish to 0.  To use this, specify "-pp=cutoff:1:15:25".  
Sample cutoff image

GRIB support for raw files

To handle raw GRIB files like those from the NOGAPS model, a grib option has been added to contour, griblook, grbcalc. This forces the interpretation of the file to be a GRIB file.  The NOGAPS GRIB files can be confused as WXP grid files by these programs.  To implement this, add "-inp=grib" to the command line.

Added option for loop title

In newer versions of the gnome window manager, there is a memory leak surrounding the title of a window.  The loop mode for WXP graphics program will change the window title reflecting which frame it is showing.  This invokes the memory leak and can with time exhaust the system of memory.   To display the loop frame titling, use "-pp=nolooptitle".

Additional functionality:

  • Added support for Unisys mosaic product 180.
  • Added SAPQ to list of WMO headers sacvt will decode.

Bug Fixes:

  • Fixed a bug in the grid reader where file type might be unset.
  • Fixed a bug in the MOS decoder for setting qpf values.
  • Fixed a bug in displaying clutter radius
  • Fixed a bug that prevented proper image redraws in "refresh" mode.  If a radar or satellite loop is in refresh mode, it won't properly redraw after a certain amount of time.  This is because the program did not keep track of the latest file date and once the aged out of available data, it would freeze on redraw.

New in version 5.30 (July 2003) 

Support for compressed NOAAPORT satellite imagery

Xsat has been updated to support the new compressed satellite imagery on NOAAPORT.  NOAAPORT is using a simple zlib compression scheme similar to that used in the NIDS data.  Since binary data is difficult to inquire format from, xsat has added a awipz data type specification:

    xsat -inp=awipz

This can be added to the wxp.cfg file as a default type "xsat.input: awipz".  Xsat will decompress the images on the fly.

Added transparency to GIF output

The WXP graphics programs can create GIF images with the transparent color index set.  This is done by specifying "-pp=gif_trans".  This will set the transparent color to whatever you set the background color to be in the image.  

Added track plot to NIDS output

The rad program can display estimated tracks for storms using the storm attribute table in the composite reflectivity data.  This is an arrow with hash marks representing estimated location of storm at 30, 60, 90 and 120 minutes.  Select "-va=track" on the rad program.

Additional Functionality:

  • Added "corners2proj" option to domtran.  This will print out the projection coordinates of the 4 corners of the domain.
  • The watch plotting now uses the "sao.cty" file for ID lookup.  It searches for IDs removing the leading "K" from the identifier.

Bug Fixes:

  • Fixed a bug in the front plotting that misinterprets fronts at high latitudes and can cause a line across the display.
  • Fixed a bug in the divergence computation in grdmath/grbcalc.
  • Fixed date output in fo_parse so that it is one string (12/06Z).  If hour was less than 10, it was two strings (12/ 6Z with a space).
  • Fixed problem in shefcvt where parsing continued past a "$$" designator.

New in version 5.29 (May 2003)

NOTE: Linux version compiled on RedHat 7.0

As of this version, the Linux version will be compiled using the 2.1 glibc libraries available with RedHat 7.0.  In previous versions, WXP was compiled on RedHat 6.0.

Support for cygwin

There are new binaries for cygwin.  cygwin is a Unix emulator for Window and uses gcc and XFree86 for its interface.   cygwin does resolve many of the Windows issues with WXP like overlays with wxploop, transparent dithers, background processing, etc.  It in essence behaves just like the Unix version.  There are some outstanding issues.  
  • Interactive drag zoom doesn't always work.  If you drag fast it seems to work, otherwise not.  
  • wxploop doesn't die in background mode:
    wxploop -wn=1 -ba
    loopset -wn=1 open
    loopset -wn=1 cr pix
    loopset -wn=1 kill

    The kill doesn't close the window.  But strangely by just issuing another loopset command (any command) will cause the window to close.

MacOSX version using Apple X11 distribution

The Mac version of WXP is now compiled against the Apple X11 (even though beta) distribution.  This may not work with the Darwin X11 distribution.

New model source in header files

In order to separate the model definitions and differences in parameter definitions, the ingest program will generate header files with a source designator.  For example, ECMWF model data will have "98:203" as the grid type.  This will also appear in the PAN messages.  griblook will also generate header files with this designator.  To disable this, use the "-pa=nosrc" parameter.  

XML decoder output

sacvt, smcvt anduacvt both output XML files.  Use "-ou=xml" to specify XML output.   The append option won't work at this time. The DTDs are available at http://wxp.unisys.com/wxp/xml.  The XML files can't be read by WXP but that should be available in the next version.

Additional Functionality:

  • Added "corners2earth" option to domtran.  This will print out the lat/lon coordinates of the 4 corners of the domain.
  • Added new grid debug output for grbcalc. This will help in determining what grids are being used and which have valid data.
  • Added additional grid parameters from ECMWF.  This is for those who use direct ECMWF output, not the data available from NWS.
  • Added WND plotting to MOS programs for MRF data.
  • Added tephigram sensing to region definition.
  • Added new GOES 12 parameters (13um labels).
  • Added "-pa=dst" parameter to suncalc to force DST time.  Previously, it was only possible through the DST environment variable.

Bug Fixes:

  • Fixed lat/lon decode problem in the front display.  sfcwx had troubles with latitudes less than 10.
  • Increased the fore_time string for grbcalc so that long time sequences for loops can be entered.  Now, up the string can be up to 199 characters.
  • Fixed malloc error in contour.
  • Fixed projection problem with GRIB data.  This prevented southern hemisphere grids from being displayed properly.
  • Fixed bug in socket processing in loopset/wxploop.  This prevented long output like help from being printed.
  • Fixed bug in xsat that prevented proper zooming on McIDAS area files.
  • Fixed bug in Solaris scour program.
  • Fixed bug in sacvt that interpreted sub-zero dewpoint as visibility (11/M02).
  • Changed smcvt default time range from +-90 minutes to +-45 minutes.  Some stations in Europe (and elsewhere) are reporting hourly.
  • Fixed a bug in uacalplt that caused the sounding line to have an erroneous starting pressure.  This occurred if the LCL was within 25 mb of the starting position.
  • Changed grdmath to put multiple values on separate lines.

New in version 5.28 (Mar 2003)

Added Eta MOS plotting

Decoding and plotting of Eta MOS was added to "fouswx", "focalc", "fo_parse" and "statlog".  The model specification is "-mo=eta".

Updated AVN and MRF MOS plotting

The MRF MOS (-mo=mrf) was updated to plotting mean temp and temperature deviation.  The variables are "nmaxt", "dmaxt", "nmint" and "dmint".  Additional AVN parameters were added.  POP12 can be accessed for intermediate hours.

MOS plotting uses 4 letter site names

The default is now to use 4 letter site names for MOS plotting.  It is required to update the "mos.cty" database to the 4 letter IDs before using the new version of "fouswx" and "focalc".  The new file is available at:  http://wxp.unisys.com/etc/mos.cty.

Additional Functionality:

  • WXP uses "wxp.cfg" for the resource file in addition to ".wxpdef".   "wxp.cfg" is checked first, then ".wxpdef".
  • Added decoding of RVRNO in METAR reports.  
  • Made new wind chill formula default for "wchill" program.  It is still "wchill2" for variable specifications in other programs.
  • Xsat now checks to make sure WXP image files are complete before displaying them.  It will wait up to 10 seconds for the file to completely write to disk before displaying it.  This functionality will be added to other files in the next few versions.
  • For raw file plotting, all underscores are changed to spaces.
  • Added "no_pixave" to plot parameters for xsat.  This was available in earlier versions but removed for some reason.  With this set, xsat does not interpolate for pixel values on remap and instead takes value of nearest image value.'
  • Cleaned up loop delay, especially in refresh mode.

Bug Fixes:

  • Correct bug in polar stereographic projection that caused the true latitude for southern hemisphere plots to be +60 rather than -60. This meant that scaling for southern hemishpere plots were wrong and it appeared that you were still looking at the northern hemisphere.
  • Fixed memory leak in zlib decompression for rad and xsat.
  • Fixed bug in Eta and sigma level decoding for GRIB data.  This allows the use of 1.0eta and 0.78sig for level designations.
  • Corrected problem in valid date where year was "3" instead of "03".

New in version 5.27 (Jan 2003)

Added new compressed image file format

Xsat can now create image files where the image is zlib compressed.   It can also read them.  This functionality will be added to the radar mosaic program as well.  To save the output as compressed, specify "-ou=imgz".

Added PNG image support to xsat

Xsat can now read GINI formatted files that have imbedded data encoded in PNG format.  This is for the radar mosaics from Gempak.

Added rotated Tephigram

Some use a Tephigram where the theta and temperature lines are horizontal and vertical.  This is essentially a Tephigram rotated 45 degrees.  The plot type is "-pl=rteph".

Additional Functionality:

  • Added netCDF support to Windows. The Windows version of WXP can now read and write netCDF files.
  • Added new icons and cursors to Windows.  The icons and cursors used in the Windows version now resembles that used in the Unix version.
  • Added geometry to Metafile output. There was no way to specify a geometry or size of plot in the metafile output.  This now supports the same geometry as the display option.
  • Added new GRIB parameters to grbcalc.  Grbcalc can now plot Eta levels.  It did do sigma levels but not Eta.
  • Added support for NIDS product 67 (Composite Reflectivity APR removed).
  • Added precip type contouring to sfcccalc.  Now you can contour precip type (Rain=1, Freezing=2, Snow=3).  

Bug Fixes

  • Fixed cursor problem in wxploop
  • Fixed a problem in griblook that caused problems with creating header files.  On Solaris, the read/write access for append (a+ mode) doesn't work for appending large amounts of data (limited to 1KB).  I now read the file, close it and open the same file for append to get around that limitation.
  • Fixed a problem in ingest where directories and files could be created with garbage characters.  This was a problem when the output file was from the WMO header or second line.  Now only printable characters can exist in file names.   
  • Fixed a problem in rad in displaying Kavouras MNG files.   The MNG file always seems to have a "truncate to end of line" code whether it needs it or not.  I assumed that if the line is fully specified, that code would not be needed.  This resulted in the next line being skip. The truncate resulted in a blank line and resulting echoes were displaced too far south.
  • Fixed a problem in wxploop with sockets not reconnecting after a disconnect.  This is only a problem with the Windows version of wxploop where the error codes are different than in Unix.
  • Fixed another problem in rad involving NIDS zlib decompression.
  • Fixed a problem in sacvt that caused a core dump when writing long remarks sections to a netCDF file.

Added in version 5.26 (Sept 2002)

Tephigram added to uacalplt

To use tephigram, specify "-pl=teph".  There are some functions not yet available including specifying a domain for the tephigram and zooming.

Full PNG support

WXP can now read and write PNG files.  Before it could only output PNG files.  PNG support is now part of Windows programs.  There is a fix in the PNG support for Solaris.

Added "lower" to prfplt

This allows prfplt to plot lower atmosphere (below 8000m) with data plotted at 250m increments (data resolution) rather than 500m.  Specify "-pp=lower" with prfplt.

Bug Fixes

  • Mollweide AREA files fixed.  These images were offset due to improper determination of header size.
  • Mollweide domain output for grbcalc fixed. Edge wrapping did not work so grid boxes that wrapped from one side of the plot to the other would cause strange results.
  • Problem with grbsnd and NCEP Avn grids.  Grbsnd improperly used grids above 100mb overwriting surface information.
  • Fixed bugs in specification of postscript page size.  The page size parameter "sz=wxh" works.  It used to core dump.  Width and height are now the full page size (11x8.5).  The postscript code reduces the size by a half inch in each direction automatically.
  • Fixed scour for windows.
  • Fixed bug in NIDS decompression. 
  • Eliminated need for UCB library in Solaris and statically linked PNG/Zlib library.
  • Added gettimeofday to MacOSX version to allow fractional second loop delay.

Added in recent versions (5.23-5.25)

Socket support added to wxploop/loopset

For operating systems that don't support SysV message queues, wxploop and loopset can communicate via TCP sockets.  To enable this, use "-pa=qtype=sock" on both wxploop and loopset.  This is the default on MacOSX and Windows.

Full Mac OS-X support

WXP now runs on OS-X using an X server package like XDarwin.  The wxploop and loopset programs work using socket messaging rather than message queues.

Added loopset to Windows (win32) programs

Wxploop is now interactive using socket messaging.  This will allow windows users to take advantage of more of wxploop's features.

Added standard output to Windows graphics programs

NOTE: Some Windows scripts may not work!!

Prior to 5.025, Windows graphics program would not display output to stdout, thus requiring all the parameters to the program to be specified via the command line.  There was no text output for calculations such as with uacalplt.    Additionally, the programs were forced into batch mode.  Now, the menus will appear and text output is available.  This means some Windows scripts will fail since they assume the program is in batch mode and left out some parameters on the command line.  Before, you could do:

sfcwx -re=at -va=all

But now, this will leave prompts for filename and device and your scripts won't work.   You will have to add the extra parameters to the command line:

sfcwx -cu=la -re=at -va=all -de=d

Added support for TANC projected AREA files

This enables xsat to read AREA files from the ADDE server that have been converted from NOAAPORT GINI format.

Added transparent images to Windows

This enables the use of overlay images as maps on Windows.

mapplt -re=at -de=d -pp=gif:./at_map.gif
rad -inp=rcm -cu=la -re=at -mf=+im:./at_map.gif -va=all -de=d

Reenabled WXP ASCII metafile output

Output to ASCII metafile is the default rather than CGM.   I had not confirmed the CGM output worked so its now only available with "-de=m,file.meta,cgm".

sfcwx -cu=la -re=at -va=all -de=m,../meta/test.meta
mapplt ../meta/test.meta -re=at -dr=data -de=d

Added true latitude to Stereographic projection

You can specify the true latitude for a PS projection as: -pd=ps:90:-95:60,46,-92,1.4with the third parameter (60) being the true latitude.

Added metafile plotting to wxploop

You can specify the command "mf filename.meta" within loopset to plot a metafile with wxploop.  This is handy for Windows systems that don't have wxploop overlay capabilities.

Bugs Fixed

  • sfcwx (fronts) - Plotting of troughs in the tropics cause spurious lines.  Program didn't account for single digit latitude.  
  • NIDS - Fixed bug that prevented rad from recognizing compressed NIDS files.
  • prfplt  - Fixed several bugs that caused prfplt to core dump on bad data and not plot level data properly.
  • grbsnd - Fixed bugs that prevented it from reading files from NWS/NCEP servers.
  • sa_parse - Fixed bugs that prevented it from outputting "M" for missing data in some parameters.

Other Additions since WXP 5.0

AVN and MRF MOS plotting

Support has been added for these MOS data types.  The model parameters are "-mo=avn" for the AVN data and "-mo=mrf" for the new MRF format.  This is supported in fouswx, focalc and statlog .  

NOTE: for NOAAPORT, the AVN MOS data comes in every 6 hours.  The ingest.bul file should be updated to:
FO               P>>    %D/data/%py%pm%pd%ph_mod.wmo %D/data/%py%pm%pd%ph_mod.hdr
FEUS5 P>> %D/data/%py%pm%pd%ph_mod.wmo %D/data/%py%pm%pd%ph_mod.hdr
FEUS2 P>> %D/data/%py%pm%pd%ph_mod.wmo %D/data/%py%pm%pd%ph_mod.hdr
FEX P>> %D/data/%py%pm%pd%ph_mod.wmo %D/data/%py%pm%pd%ph_mod.hdr
FE(PA|AK|CN) P>> %D/data/%py%pm%pd%ph_mod.wmo %D/data/%py%pm%pd%ph_mod.hdr

New Wind Chill Formula

The new wind chill formula is accessible with the "wchill2" variable.   This has been added to programs: sfcwx, sfccalc, statlog , fouswx, focalc, grdmath, statlog, and sa_parse .  Some examples:
sfcwx -cu=la -re=mw -va=wchill2 -de=d

sa_parse -cu=la -if=cvt -pa=pvar,city -va=id,temp:F,wchill2:F -id=st:PA
NOTE: For use with programs like grbcalc, it is recommended to download the new .var files from the web site: http://weather.unisys.com/wxp/etc.  This will give you access to the new wind chill with the proper units:
wchill2 Wind_chill2          0 wchill2(:2m_ag:+temp,:10m_ag:wspd) [F]
In order to get the proper label, the wchill2 parameters needs to be added to the variable.lup file:
367 wchill2 Wind Chill2 Temperature
For the wchill program, the option is "-pa=wctemp2".

Profiler Plotting from NOAAPORT

Data: There are some changes you need to make on the NOAAPORT system, you need to change the prf line in the ingest.bul file:
IUPT0          P>>       %D/data/%y%m%d%h_prf.bfr
It says IU right now. This keeps non-profiler data from getting into the file otherwise, the program faults. Once this is done, go to /usr/prodman/bin and run "ing-noaa nwstg refresh" to update the ingestor.

prfplt Program:
To run this on Windows or Unix:
prfplt -cu=la -id=xxxxx -va=wbrb
The xxxxx is the station ID. Available stations are:
74433 74551 74731 74648 74753 74466 74533 74445 74357 74541 74546 74662 74752
74735 74431 74341 74440 74530 74647 74649 74629 74550 74437 74449 74556 74630
74640 74542 74750 74769

New Smoothed Front Plotting with Barbs

The new front plotting will smooth the fronts and add barbs:
sfcwx -if=front -re=us -de=d -cu=la -pp=barb

Forecast Front Plotting

You can plot forecasted fronts (FSUS2).  The additional line to the ingest.bul file is:
FSUS2_           P>>    %D/data/%y%m%d%3h_frf.wmo
and the "name_conv" file:
frf_dat       %D/%y%m%d%12h_frf.wmo
and to run the program:
sfcwx -inp=forfront -cu=la -ft=24 -re=us -de=d

PNG Graphic File output (Unix Only)

You can save output to PNG files (-pp=png:output.png).  At this time, there is no PNG input into WXP.  For wxploop the command is " set out png" and then the output will be a PNG file.

Drop Shadowing for Text

You can add shadowing to the text with "-pp=shadow:4".  The parameter is the depth of the shadow.  At this time, the shadow is always black.

Automatic Refresh Plots

There is limited refresh support for radar (NIDS/Mosaic) and satellite plotting "-pp=refresh".  This will tell the program to update the image when new data has arrived.  

Miscellaneous Changes

  • Added support for numeric as well as hex colors: #rrggbb is hex, #rrrgggbbb is numeric (0-255)
  • Added socket support to ingest.
  • Added rotate label to contouring (-pp=rlab) where some labels are vertical depending on where they're labelled.
  • Added new timezone spec (-pp=tz:-EDT:-4).  This will produce a label "4PM [2100Z] ...".
  • Fixed fill pattern problems in Windows version
  • Added new current spec for decoding "cu-#-#+#" with the parameters being initial time before current, minutes before and minutes after.
  • Added pressure interval to grbsnd, "-pp=dpres:25".
  • Added cutoff option to grdmath
    grdmath cutoff gridfile lower val nval = newgridfile
    grdmath gridfile cutoff higher val nval = newgridfile

    This will cutoff all values lower than val and replace them with nval.  The higher option will replace all values higher than val with nval.
  • Added smooth option to grdmath
    grdmath smooth gridfile 2 = newgridfile

    with the second parameter being a smoothing factor.
  • Added wind functions to grdmath
    grdmath wdir ugridfile vgrdfile = dirgridfile
    grdmath ewdir ugridfile vgridfile = dirgridfile
    grdmath uwnd dirgridfile spdgridfile = ugridfile
    grdmath vwnd dirgridfile spdgridfile = vgridfile

  • Added Indian Ocean and south Pacific decoding to hurricane
  • Added satellite distance to map transformation
  • Added Unisys NIDS processing for mosaic data
  • Added gridpoint output to NIDS data (for DPA data)
    rad -inp=nids nidsfile -of=wxp:dpa.grd
  • Added Unisys, NOAAPORT and direct GAI support to light lightning display program
  • Added label overlay "-la=ul2:New_Label".  The "2" is the overlay number.
  • Added full labelling.  This offsets the text labels into the plot for full plots rather than placing text outside the plotting area.  " -pp=fullab".
  • Added min size parameter.  This only allows files that have a minimum size to be selected with a "-cu=la" parameter.
  • Added support for Kavouras radar mosaics.
  • Added clear air filtering in rad "-pp=noclar".
  • Added text_path, model_path and sat_path resources .  They can be accessed by -tp, -mp, and -spon the command line and by %T, %M and %S in the name convention file.
  • Added Unisys and NOAAPORT(GINI) satellite image support.  To access these, use -inp=unisat and -inp=awip.
  • Added sequence number output to xsat "-ou=seq".
  • Increased surface data comment length from 35 to 70 characters.
  • Added various precip parameters to surface plotting and text output: prec3, prec6, prec12 and prec24.  Added extreme temp parameters: maxt6, maxt24, mint6andmint24 .  Added input resource for front determination "-inp=front".  
  • Added dash output for missing fields to sa_parse "-pa=prdash ".
  • Added pressure unit output for parcel data such as LFC and EL.
  • Added positive delta for level parameter "-le=trop+30mb".
  • Added create to loopset.  This creates the message queue in loopset so that there is less possibilities for a queue/window number to be allocated twice.  
    loopset alloc_create
    The output queue/window number starts with a "+" to tell wxploop not to allocate the queue.
  • Added support for "PL" for ice pellets.
  • Added image support for 15 and 32 bit displays.