MEMORANDUM FOR: Distribution
FROM: John J. Kelly, Jr.
SUBJECT: Policy on Use of Encoding/Decoding Software
Last March, I formed an Integrated Work Team (IWT) for Data Encoder/Decoder Development and Maintenance. The purpose was to devise a way for development and maintenance of encoder/decoder software to be shared among NWS components to minimize overall development and maintenance resources.
The IWT recommended a number of existing decoders and encoders become the NWS "official" set. The Team also obtained agreement from NCEP and the Offices of Hydrology, Systems Operations, and Systems Development to maintain portions of this software. The attached document "Responsibilities for Hydrometeorological Data Encoder/Decoder Software" details organizational responsibilities necessary to implement the Team's recommendations.
This policy has two aspects:
(1) Assignment of software maintenance responsibility.
(2) Requirement to use the official encoders and decoders.
As noted, this policy is aimed at reducing our overall effort in developing and maintaining encoders and decoders. All existing software need not be immediately modified to incorporate the official encoders and decoders; rather, official encoders and decoders should be used as you develop new or extensively revise existing software. In this way, we will migrate gradually to a standard set.
The IWT will now serve to coordinate software changes, maintain the web page through which the software is made available, and assist in the implementation of this policy. Members' names and addresses can be found on the following Internet site:
If you believe it is not practical to use the official decoders or encoders, contact the IWT. The Team will determine whether a waiver is appropriate.
Kindly direct questions about this policy to Bob Glahn, 301-713-1768.
Attachment
DISTRIBUTION:
Wx1 - J. Jones
W/CFO - T. David
W/SP - E. Johnson
W/OM - G. Mandt
W/OH - G. Smith
W/OSO - W. Telesetsky
W/OSD - H. Glahn
W/APO - P. Nipko
W/NCEP - L. Uccellini
W/ER - J. Forsing
W/CR - J. May
W/SR - W. Proenza
W/WR - V. Nadolski
W/AR - R. Przywarty
W/PR - R. Hagemeyer
W/TC - J. Vogel
W/DB - D. Yeager
NWSEO - R. Sierra.
1. Introduction
In an effort to reduce cost, the National Weather Service (NWS) has adopted an official set of hydrometeorological data encoders and decoders.
2. Definition of Encoder and Decoder
The definition of an encoder is the Application Programming Interface (API) and
implementing software to accept data through the API and to put them into the code
form. The definition of a decoder is the API and implementing software to take data
from the code form and furnish it to the user through the API. All other data
manipulation is the responsibility of the user.
3. IWT Responsibilities
The IWT responsibilities are to:
a. Coordinate cross-organizational activities concerning encoders and decoders as appropriate, including securing agreement to changes in responsibilities.
b. Maintain a Master Web Page linked to encoder and decoder source code and documentation.
c. Make known to organizations within and outside the NWS, including Unidata and the WMO, the existence and availability of NWS software.
d. Consult with potential users and maintenance organizations and determine whether a waiver to using a standard decoder or encoder is appropriate.
The IWT has secured agreement to the assignments indicated in Table 1; responsibilities can be changed from time to time as agreed to by the IWT and the affected organizations.
4. Organizational Responsibilities
The responsibilities of the organizations indicated in Table 1 for a particular encoder or decoder are to:
a. Engage all appropriate elements of the NWS to ensure that requirements have been discovered and coordinated.
b. Design, develop, maintain, and document software for the assigned encoder or decoder.
c. Develop in a language and for a platform that is one of the NWS-approved languages and platforms.
d. Provide an API that enables its use in a broad variety of circumstances.
e. Maintain a web page that is consistent with, and can be linked to, the Master Web Page maintained by the IWT and to provide points of contact for the software and documentation.
5. Requirements of the Software
The software shall be capable of:
a. Decoding all elements of a particular code form required for NWS needs.
b. Parsing the code into an interface form defined by the API (decoder).
c. Encoding information presented through the API into a valid form of the code (encoder).
d. Handling errors in a graceful fashion and passing back responsibility for exception handling through the API.
Software documentation shall include a description of:
a. The API and how it can be used.
b. Exception handling.
c. How the software does or does not handle all possible instances of the code standard.
d. Known bugs.
e. Integration tips.
6. Code Forms Supported
Table 1 and the Master Web Page indicate the code forms supported.
7. Method of Disseminating Software Information
The Master Web Page 'www.nws.noaa.gov/tdl/iwt' maintained by the IWT provides introductory information, identifies encoders and decoders to which the policy applies, identifies relevant code form standards, and links to individual web pages where encoder/decoder software and documentation reside. Names and phone numbers are provided for questions and feedback.
8. Funding
Each organization responsible for a decoder or encoder shall carry out its responsibilities within its budget..
Table 1. Organizational responsibilities for encoders and decoders.
A "*" under "D" indicates an organization responsible
for a decoder for the listed code form; similarly, a "*"
under "E" indicates an organization responsible for an
encoder.
______________________________________________________________
Organization
Code Form NCEP TDL OH OSO
D E D E D E D E
_________________________________________________________________
METAR *
Drifting buoys *
Ships *
C-MAN *
U.S. Coast Guard (?) *
Synoptic *
Aircraft (PIREP, etc.) *
Bathemetric *
VAD winds *
RAOB (TEMP/PILOT) *
PAOB (from Australia) *
Supplemental Climate *
GRIB * *
BUFR * *
REDBOOK * *
Run-length radar * *
TAF * *
GRIB2 * *
SHEF * *
DCP *
DCP (CPACC) *
_________________________________________________________________