NATIONAL OCEANIC AND ATMOSHPERIC
ADMINSTISTRATION
NATIONAL WEATHER SERVICE
OFFICE OF SCIENCE AND TECHNOLOGY
METEROLOGICAL
DEVELOPMENT LABORATORY
Digital
Weather Markup Language
Specification
(Version 1.0)
7 May 2009
Table of
Contents
2. DWML
Data Element Nomenclature:
4.1.3. operational-mode Attribute
4.1.7. <creation-date> Element
4.2.1. <more-information> Element
4.2.2. <production-center> Element
5.2. <moreWeatherInformation> Element
5.2.1. applicable-location Attribute
5.3.1. time-coordinate Attribute
5.3.3. <start-valid-time> Element
5.3.4. <end-valid-time> Element
5.4.1. applicable-location Attribute
5.4.3. <precipitation> Element
5.4.4. <probability-of-precipitation> Element
5.4.5. <convective-hazard> Element
5.4.11. <conditions-icons>
Element
5.4.12. <wordedForecast>
Element
5.5. <categorical-definitions> Element
5.5.1. <categorical-table> Element
5.6. <conversion-definitions> Element
5.6.1. <conversion-table> Element
6. Latitude
and Longitude Lists
7. Common
Element and Attribute Definitions.
7.2. vertical-coordinate Attribute
Appendix B:
Requirements Correlation Matrix
Sample Digital Tabular Forecast Product
Sample Digital Zone Forecast Product
Model Output Statistics Bulletin
Sample Model Output Statistics Product
Figure
1. Example Forecast at a Glance Product
Figure
2. Example Digital/Tabular Forecast
Product
Figure
3. Example Digital Zone Forecast Product
Figure
4. Forecast at a Glance
Figure
5. Digital/Tabular Forecast
Figure
6. Digital Zone Forecast
Figure
7: Sample Model Output Statistics
Bulletin.
Table
1. DWML Content by Product
Table
2: Sky Cover to Text Conversion
(Source: NWSI 10-503).
Table
3: Valid Values for Weather Coverage
Attribute.
Table
4: Valid Values for Weather Intensity.
Table
5: Valid Weather Values.
Table
6: Valid Weather Attributes.
Table
7: Valid Visibility Values.
Table
8: NDFDgen Night Time Icon Algorithm
(priority in ascending order).
Table
9: NDFDgen Day Time Icon Algorithm
(priority in ascending order).
Table
13: NDFDgenByDay Weather Summary Phrases
(format = ’12 hourly’) (priority in ascending order).
This document defines the Digital Weather Markup Language (DWML). DWML is a new XML language which is being developed to initially support the exchange of the National Weather Service’s (NWS) National Digital Forecast Database (NDFD) data. However, the specification is being written with enough flexibility to accommodate other environmental science applications. Appendix E provides a definition of DWML types based on restrictions appropriate to NDFD data. Other sets of restrictions similar to those in Appendix E need to be established for other specific implementations.
This specification attempts to include requirements in the MDL NDFD XML Requirements document (Appendix A). The matrix in Appendix B indicates which design feature satisfies which requirement.
The tree diagrams in Appendix C provide a graphical representation of how DWML elements and attributes relate to each other. These relationships in concert with the DWML type definitions in Appendix E form the basis for language validation.
In addition to providing a definition of the elements and their attributes, this specification provides sample DWML documents in Appendix D for the three products proposed in the NDFD XML Requirements document. Appendix D also includes the application of DWML elements to a Model Output Statistics (MOS) bulletin. The MOS bulletin example is a non-NDFD example and so it does not conform to the NDFD type definitions. The MOS bulletin example is provided merely to illustrate the flexibility of DWLM to handle other data sources.
2. DWML Data Element Nomenclature:
This specification uses the following approach to describing elements:
1) Element and attribute names are all lower case.
2) Element and attribute names use a hyphen (“-“) to separate multiple word names so as to improve readability (ex. <creation-date>). Attribute and element names avoid the use of abbreviations to enhance readability.
3) Within this document, child elements are nested in a sub-paragraph under their parents.
4) Attributes are also nested but do not have the angle brackets (“<>”) and are italicized.
5) The element’s and attribute’s type is provided in braces (“{}”). For more information on each type refer to Appendix E.
6) If the element can occur zero or more times, an asterisk (“*”) is placed after its name. See specification 5.2.1.5 for an example.
7) If the element occurs zero or one times, a question mark (“?”) follows its name. See specification 4.1.3 for an example.
8) If the element must appear at least once, a plus sign (“+”) trails its name. See specification 5.2.1 for an example.
9) Element names without a special trailing character must occur exactly once. Specification 3.1 provides an example of an element that is required exactly once.
10) Each DWML specification references the requirement that it is designed to meet. The requirement is positioned at the end of the specification and contained in parentheses. For example, specification 3.1 satisfies requirement 4.2.
11) The order of element descriptions in the paragraphs below is not significant. Any required ordering of elements is specified in the tree diagrams found in Appendix C and type definitions in Appendix E.
The <dwml> element {dw:dwmlType}: The root element for DWML (R4.2).
The version attribute {xsd:string} indicates which version of DWML the instance contains (R2.1.3).
The <head> element {dw:headType} contains the metadata for the DWML instance. See section 4 for elements found in the <head> element (R4.2).
The <data> element {dw:dataType} contains the environmental data. See section 5 for child elements of the <data> element (R4.2 and R2.2).
DWML metadata provides information about the DWML product and the data it contains. These elements are children of the <head> element.
The <product> element {dw:productType} holds meta information about the product.
The concise-name attribute {dw:concise-nameType} represents a name or code that describes this product. The concise-nameType will have a list of names that is extensible to support secondary developer additions. Sample values include “glance”, “digital-tabular”, “digital-zone” (Derived From R2.1.1).
The srsName attribute {dw:srsNameType} communicates the spatial reference system used by NDFD. The NDFD spatial reference system is the “WGS 1984”.
4.1.3. operational-mode Attribute
The operational-mode attribute {dw:operational-modeType} defines the status of the product. Applications can review the content of this element to determine if they should perform further processing. Sample values include “test”, “developmental”, “experimental”, and “official” product. (R2.1.4)
4.1.3.1. Test Product
The “test” product indicates that this is an instance of an existing DWML product that contains some change being evaluated by a DWML development team. Users will typically not process this product (R2.1.4.1).
4.1.3.2. Developmental Product
The “developmental” product represents a new product that is not yet ready for public evaluation or use (R2.1.4.2).
4.1.3.3. Experimental Product
This product is available for testing and evaluation for a specified, limited time period for the explicit purpose of obtaining customer feedback. (R2.1.4.3).
4.1.3.4. Official Product
The “official” product identifies an instance of an established DWML product. This DWML instance is part of the approved product suite available from the NWS (R2.1.4.4).
The <title> element {xsd:string} [?] provides a concise summarization of what this DWML product contains (R2.1.1).
The <field> Element {dw:fieldType} specifies the general area within the environmental sciences that the data contained in the DWML instance is from. Example values include “meteorological”, “hydrological”, “oceanographical”, “land surface”, and “space” (R2.1.5).
The <category> Element {dw:categoryType} [?] defines the specific category that the product belongs to. Example values include “observation”, “forecast”, “analysis”, and “statistic” (R2.1.6).
4.1.7. <creation-date> Element
The <creation-date> Element {xsd:creation-dateType} contains the date and time that the product was prepared (R2.1.2).
4.1.7.1. refresh-frequency Attribute
The refresh-frequency attribute {xsd:duration} is used by the production center to help users know how often to return for updated data. In the case of the NDFD, the data is updated on an as needed basis. As a result the frequency provided may not always ensure users update as soon as new data is available. The frequency will also not guarantee that that when updates are done that the retrieved data is new. Still, the suggested refresh frequency will help well mannered users know what the provider believes is a reasonable time between repeated accesses of the system (R2.1.14).
The <source> Element {dw:sourceType} [?] holds information about the product’s source and links to credit and disclaimer information.
4.2.1. <more-information> Element
The <more-information> element {xsd:anyURI} is a link to the web page of the forecast’s source or a more complete forecast (R2.1.13).
4.2.2. <production-center> Element
The <production-center> element {xsd:production-centerType} [?] identifies which organization creates the product (R2.1.7).
4.2.2.1. <sub-center> Element
The <sub-center> element {xsd:string} [?] is the part of the production center that prepared the product (R2.1.8).
The <disclaimer> element {xsd:anyURI} [?] is the URL containing a disclaimer regarding the data (R2.1.9).
The <credit> Element {xsd:anyURI} [?] is the URL used to credit the source of the data (R2.1.10).
The <credit-logo> element {xsd:anyURI} [?] is the image link used with the credit URL to acknowledge the data source (R.2.11).
The <feedback> Element {xsd:anyURI} [?] is a URL to a web page used to provide the production center comments on the product (R2.1.12).
These elements hold the environmental data. They are children of the <data> element.(R2.2).
The <location> element {dw:locationType} [+]: Defines the location for the data contained in the element <data>. The element must contain exactly one of its child elements (R2.2.2).
The <location-key> element {dw:location-keyType} [?] is used to relate the location to its corresponding parameters (R2.2.2).
For information on the <point> element see Section 7.1
5.1.2.1. summarization Attribute
For information on the summarization attribute see Section 7.3.
The <city> element {dw:cityType} [?] contains the city name for which the data is valid (R2.2.2).
5.1.3.1. state Attribute
The state attribute {dw:stateType} holds the two digit abbreviation for the state that the city resides in (R2.2.2).
5.1.3.2. summarization Attribute
For information on the summarization attribute see Section 7.3.
The <nws-zone> element {dw:nws-zoneType} [?] contains the National Weather Service forecast zone name for which the data is valid (R2.2.2).
5.1.4.1. state Attribute
The state attribute {dw:stateType} holds the two digit abbreviation for the state that the city resides in (R2.2.2).
5.1.4.2. summarization Attribute
For information on the summarization attribute see Section 7.3.
The <area> element {dw:areaType} [?] is a geometrical shape may be used to define which grid points the data represents. The element must contain exactly one of its child elements (Derived from R2.2.1.5).
5.1.5.1. area-type Attribute
The area-type attribute {dw:area-typeType} defines the aerial shape being used. Permissible values include “circle” and “rectangle” (Derived from R2.2.1.5).
5.1.5.2. <circle> Element
The <circle> element {dw:circleType} [?] is a circular area about a grid point. The area can contain any number of grid points which are summarized.
For information on the <point> element see Section 7.1
5.1.6.1.1. <radius> Element
The <radius> element {dw:radiusType} is the distance from the center point of the circle to edge of the circular area (Derived from R2.2.1.5).
5.1.6.1.1.1. radius-units Attribute
The radius-units attribute {dw:radius-unitsType) is the units of the radius measurement. Example values include “statute miles” and “kilometers” (Derived from R2.2.1.5).
5.1.6.2. summarization Attribute
For information on the summarization attribute see Section 7.3.
5.1.6.3. <rectangle> Element
The <rectangle> element {dw:rectangleType} [?] is a rectangular area which is defined by four latitude and longitude pairs. The area can contain any number of grid points which are summarized.
For information on the <point> element see Section 7.1
For information on the <point> element see Section 7.1
For information on the <point> element see Section 7.1
For information on the <point> element see Section 7.1
5.1.10.1. summarization Attribute
For information on the summarization attribute see Section 7.3.
The <height> element {dw:heightType} [?] is the data point’s distance above/below some datum. If this element is not present, it is assumed that the data values are surface based (R2.2.2.3.1).
5.1.11.1. datum Attribute
The datum attribute {dw:datumType} is the reference for the height measurement. Example values include “surface” and “mean sea level” (R2.2.2.3.1.1).
5.1.11.2. height-units Attribute
The height-units attribute {dw:unitsType}represents the units of measure used for the height value. Example values include “feet” and “meters” (R2.2.2.3.1.2).
The <level> element {dw:levelType} [?] allows the data to be valid at some specific level. For example, within model data, a value may apply to a sigma level (R2.2.2.3.2).
5.1.12.1. vertical-coordinate Attribute
For information on the vertical-coordinate attribute see Section 7.2.
The <layer> element {dw:layerType} [?] allows the data to be valid for some specific layer. For example, within model data, a value may be valid through a sigma layer (R2.2.2.3.3).
5.1.13.1. vertical-coordinate Attribute
For information on the vertical-coordinate attribute see Section 7.2.
5.2.
<moreWeatherInformation>
Element
The <moreWeatherInformation> element {xsd:anyURI} contains a link to the NDFD point-and-click forecast page for each set of user requested lat/lon pairs.
5.2.1.
applicable-location Attribute
The applicable-location attribute {dw:applicable-locationType} [?] is used to relate the location to a particular list of parameters (R2.2.1). In this case it is the user requested point number.
The <time-layout> element {dw:time-layoutType } [+] contains the start and stop valid times and any associated period names for the data. Since different environmental parameters have different time schemes (valid at different interval and available for different lengths of time into the future), there will be one <time-layout> element for each of these unique temporal configurations. Each data parameter will reference exactly one of these time layouts (R2.2.3).
5.3.1. time-coordinate Attribute
The time-coordinate attribute {dw:time-coordinateType} defines the time coordinate as either “local time” or “UTC” (R2.2.3.3).
5.3.1.1. summarization Attribute
For information on the summarization attribute see Section 7.3.
The <layout-key> element {dw:layout-keyType} contains the key (k-p24h-n7-1) used to associated this time layout with a particular parameter element (R2.2.3). The key is derived using the following convention:
1) “k” stands for key.
2) “p24h” implies a data period length of 24 hours.
3) “n7” means that the number of data times is 7.
4) “1” is a sequential number used to keep the layout keys unique.
The key should not be parsed to derive the period. This is because, the period length changes for some data type after day 3 and so period length implied by the key name only applies to the early times.
5.3.3. <start-valid-time> Element
The <start-valid-time> element {dw:start-valid-timeType} [+] is the start time of the period of time for which the data is valid (R2.2.3.1).
5.3.3.1.1. period-name Attribute
The period-name attribute {xsd:string} [?] contains the name associated with this time interval (ex. TODAY) (R2.2.3.4).
5.3.4. <end-valid-time> Element
The <end-valid-time> element {xsd:dateTime} [*]: The end time of the period of time for which the data is valid. The absence of this attribute indicates that the element is valid at a specific time (R2.2.3.2).
The <parameters> element {dw:parametersType} [+] holds the environmental data (R2.2.1).
5.4.1. applicable-location Attribute
The applicable-location attribute {dw:applicable-locationType} [?] is used to relate the location to a particular list of parameters (R2.2.1).
The <temperature> Element {dw:temperatureType} [*] is a container for temperature data (R2.2.1).
5.4.2.1. type Attribute
The type Attribute {dw:typeType} specifies the type of temperature. Example values include “maximum”, “minimum”, “temperature”, “dew point”, “heat index”, “wind chill” (R2.2.1.1).
5.4.2.2. units Attribute
The units attribute {dw:unitsType} defines the units of the temperature value. Example values include “F”, “C”, and “K”. The default value is “F” (R2.2.1.3).
5.4.2.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.2.4. <value> Element
The <value> element {dw:valueType} [+]: The temperature value reported to the nearest whole degree. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.2.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a temperature range (R2.2.1).
5.4.2.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a temperature range (R2.2.1).
5.4.2.5. <valueWithUncertainty> Element
The <valueWithUncertainty> element {dw: valueWithUncertaintyType} [+]: Element containing a <value> element and an <uncertainty> element. Represents a value like 75°F + or minus 1.5°F. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.2.5.1. <value> Element
The <value> element {dw:valueType} [+]: The temperature value reported to the nearest whole degree. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.2.5.1.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a temperature range (R2.2.1).
5.4.2.5.1.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a temperature range (R2.2.1).
5.4.2.5.2. <uncertainty> Element
Specifies the uncertainty {dw: uncertaintyType} [+] associated with the accompanying value.
5.4.2.5.2.1. type Attribute
The type Attribute {dw:uncertaintyTypeType} specifies the type of uncertainty. Example values include “analysis error” (R2.2.1.1).
5.4.2.5.2.2.
<error>
Element
The <error> element {errorType} [?] holds an uncertainty value characterized as an error.
5.4.2.5.2.2.1.
qualifier Attribute
The qualifier attribute {dw:qualifierType} [?] is use to indicate how the error is applied. For example, a qualifier set to a value of “+/-“, indicating the error is to be added and subtracted from the base value to determine the range of values.
5.4.2.6. <name> Element
The <name> element {xsd:string} [?]: The name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.2.7. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.2.8. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.3. <precipitation> Element
The <precipitation> element {dw:precipitationType} [*] is a container for the precipitation values (R2.2.1).
5.4.3.1. type Attribute
The type Attribute {dw:typeType} specifies the type of precipitation parameter. Example values include “liquid” and “snow” (R2.2.1.1).
5.4.3.2. units Attribute
The units attribute {dw:unitsType} defines the units of the precipitation value. Example values include “inches” and “millimeters”. The default value is “inches” (R2.2.1.3).
5.4.3.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.3.4. <value> Element
The <value> element {dw:valueType} [+]: The precipitation type parameter’s value to the nearest integer value. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.3.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a precipitation range (R2.2.1).
5.4.3.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a precipitation range (R2.2.1).
5.4.3.5. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.3.6. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.3.7. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.4. <probability-of-precipitation> Element
The <probability-of-precipitation> element {dw:probability-of-precipitationType} [*] is a container for the probability of precipitation (POP) values (R2.2.1).
5.4.4.1. type Attribute
The type Attribute {dw:typeType} specifies the type of POP parameter. Example values include “12 hour” and “floating”. Default value is “12 hour” (R2.2.1.1).
5.4.4.2. units Attribute
The units attribute {dw:unitsType} defines the units of the POP value. Example values include “percent” (R2.2.1.3).
5.4.4.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.4.4. <value> Element
The <value> element {dw:valueType} [+]: The POP value to the nearest integer value. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.4.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a probability of POP range (R2.2.1).
5.4.4.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a POP range (R2.2.1).
5.4.4.5. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.4.6. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.4.7. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.5. <convective-hazard> Element
The <convective-hazard> element {dw:convective-hazardType} [*] is a container for the convective hazard values like hazard outlook, tornadoes, hail, severe thunderstorms from the Storm Prediction Center (R2.2.1).
5.4.5.1. type Attribute
The type Attribute {dw:typeType} specifies the type of convective hazard parameter. Example values include “outlook”, “tornadoes”, “hail”, “damaging thunderstorm wind” “extreme tornadoes”, “extreme hail”, “extreme thunderstorm winds”, “severe thunderstorms” and “extreme severe thunderstorms”. (R2.2.1.1).
5.4.5.2. units Attribute
The units attribute {dw:unitsType} defines the units of the convective hazard value. Example values include “percent” (R2.2.1.3).
5.4.5.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.5.4. <value> Element
The <value> element {dw:valueType} [+]: The convective hazard value to the nearest integer value. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.5.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a probability of convective hazard range (R2.2.1).
5.4.5.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a convective hazard range (R2.2.1).
5.4.5.5. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.5.6. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.5.7. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
The <wind-speed> element {dw:wind-speedType} [*] is a container for the wind speed values (R2.2.1).
5.4.6.1. type Attribute
The type Attribute {dw:typeType} specifies the type of wind speed parameter. Example values include “sustained”, “cumulative34”, and “gust” (R2.2.1.1).
5.4.6.2. units Attribute
The units attribute {dw:unitsType} defines the units of the wind speed values. Example values include “knots”, “meters per second”, and “percent”. The default value is “knots”. NOTE: “percent” is used for probabilistic winds (R2.2.1.3).
5.4.6.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.6.4. <value> Element
The <value> element {dw:valueType} [+]: The wind speed value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.6.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a wind speed range (R2.2.1).
5.4.6.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a temperature range (R2.2.1).
5.4.6.5. <valueWithUncertainty> Element
The <valueWithUncertainty> element {dw: valueWithUncertaintyType} [+]: Element containing a <value> element and an <uncertainty> element. Represents a value like 10 kts + or minus 2.0 kts. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.6.5.1. <value> Element
The <value> element {dw:valueType} [+]: The temperature value reported to the nearest whole degree. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.6.5.1.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a temperature range (R2.2.1).
5.4.6.5.1.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a temperature range (R2.2.1).
5.4.6.5.2. <uncertainty> Element
Specifies the uncertainty {dw: uncertaintyType} [+] associated with the accompanying value.
5.4.6.5.2.1. type Attribute
The type Attribute {dw:uncertaintyTypeType} specifies the type of uncertainty. Example values include “analysis error” (R2.2.1.1).
5.4.6.5.2.2.
<error>
Element
The <error> element {errorType} [?] holds an uncertainty value characterized as an error.
5.4.6.5.2.2.1.
qualifier Attribute
5.4.6.5.3. The qualifier attribute {dw:qualifierType} [?] is use to indicate how the error is applied. For example, a qualifier set to a value of “+/-“, indicating the error is to be added and subtracted from the base value to determine the range of values.
5.4.6.6. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.6.7. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.6.8. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.7. <direction> Element
The <direction> element {dw:directionType} [?] is a container for the direction values (R2.2.1).
5.4.7.1. type Attribute
The type Attribute {dw:typeType} specifies the type of wind direction. Example values include “wind” and “swell”. The default value is “wind” (R2.2.1.1).
5.4.7.2. units Attribute
The units attribute {dw:unitsType} defines the units of the wind direction values. Example values include “degrees true” (R2.2.1.3).
5.4.7.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.7.4. <value> Element
The <value> element {dw:valueType} [+]: The wind direction value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.7.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a wind direction range (R2.2.1).
5.4.7.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a wind direction range (R2.2.1).
5.4.7.5. <valueWithUncertainty> Element
The <valueWithUncertainty> element {dw: valueWithUncertaintyType} [+]: Element containing a <value> element and an <uncertainty> element. Represents a value like 270° + or minus 5.0°. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.7.5.1. <value> Element
The <value> element {dw:valueType} [+]: The temperature value reported to the nearest whole degree. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.7.5.1.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a temperature range (R2.2.1).
5.4.7.5.1.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a temperature range (R2.2.1).
5.4.7.5.2. <uncertainty> Element
Specifies the uncertainty {dw:uncertaintyType} [+] associated with the accompanying value.
5.4.7.5.2.1. type Attribute
The type Attribute {dw:uncertaintyTypeType} specifies the type of uncertainty. Example values include “analysis error” (R2.2.1.1).
5.4.7.5.2.2.
<error>
Element
The <error> element {errorType} [?] holds an uncertainty value characterized as an error.
5.4.7.5.2.2.1.
qualifier Attribute
5.4.7.5.3. The qualifier attribute {dw:qualifierType} [?] is use to indicate how the error is applied. For example, a qualifier set to a value of “+/-“, indicating the error is to be added and subtracted from the base value to determine the range of values.
5.4.7.6. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.7.7. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.7.8. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
The <cloud-amount> element {dw:cloud-amountType} [*] is a container for the cloud amount values (R2.2.1).
5.4.8.1. type Attribute
The type Attribute {dw:typeType} specifies the type of cloud amount values. Example values include “total” and “layered” (R2.2.1.1).
5.4.8.2. units Attribute
The units attribute {dw:unitsType} defines the units of the cloud amount values. Example values include “percent” and “8ths”. The default value is “percent” (R2.2.1.3).
5.4.8.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.8.4. <value> Element
The <value> element {dw:valueType} [+]: The cloud cover value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.8.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a range of cloud amount (R2.2.1).
5.4.8.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a range of cloud amount (R2.2.1).
5.4.8.5. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.8.6. <cloud-layer> Element
The <cloud-layer> element {dw:layerType} [?] is the layer containing the cloud amount. Example values include “high”, “middle”, and “low”. This element is not present when the type attribute is set to “total” (Derived from R2.2.1).
5.4.8.7. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.8.8. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
The <weather> element {dw:weatherType} [?] is a container for the weather values (R2.2.1).
5.4.9.1. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.9.2. <weather-conditions> Element
The <weather-conditions> element {weather-conditionsType} [+] is a container for up to three weather values that are used to describe the weather conditions at a given time. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.9.3. <value> Element
The <value> element {dw:valueType} [* (max of 5)] hold the sensible weather information. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.9.3.1.1. coverage Attribute
The coverage attribute {dw:coverageType} [?] holds the weather coverage value. Valid values for the NDFD are contained in Appendix E, Table 3 (R2.2.1).
5.4.9.3.1.2. intensity Attribute
The intensity attribute {dw:intensityType} [?] holds the weather intensity. Valid values for the NDFD are contained in Appendix E, Table 4 (R2.2.1).
5.4.9.3.1.3. additive Attribute
The additive attribute {dw:additiveType} [?] dictates whether the following value element is combined using an “and” or an “or”. For example rain and snow vice rain or snow (R2.2.1).
5.4.9.3.1.4. qualifier Attribute
The qualifier attribute {dw:qualifierType} [?] is used to communicate a special aspect of the weather value. Valid values for the NDFD are contained in Appendix E, Table 6 (R2.2.1).
5.4.9.3.1.5. weather-type Attribute
The weather-type attribute {dw:weather-typeType} [?] captures the weather element being forecast. Valid values for the NDFD are contained in Appendix E, Table 5 (R2.2.1).
5.4.9.3.1.6. <visibility> Element
The <visibility> element {dw:visibilityType} [*] contains the weather visibility value (R2.2.1).
5.4.9.3.1.6.1. units Attribute
The units attribute {dw:unitsType} contains the units of the visibility value. Example values include “statute miles” and “meters” (R2.2.1).
5.4.9.4. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.9.5. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.9.6. weather-summary Attribute
The weather-summary Attribute {xsd:string} [?] is a short phrase (~2 words) used to summarize the weather conditions for that time. Example phrases include “partly cloudy” and “scattered thunderstorms” (R2.2.1).
The <humidity> Element {dw:humidityType} [?] is a container for humidity values (R2.2.1).
5.4.10.1. type Attribute
The type Attribute {dw:typeType} specifies the type of humidity. Example values include “relative” and “specific” (R2.2.1.1).
5.4.10.2. units Attribute
The units attribute {dw:unitsType} defines the units of the humidity values. Example values include “percent” and “kilogram/kilogram” (R2.2.1.3).
5.4.10.3. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.10.4. <value> Element
The <value> element {dw:valueType} [+]: The humidity value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.10.4.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a relative humidity range (R2.2.1).
5.4.10.4.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a relative humidity range (R2.2.1).
5.4.10.5. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.10.6. categorical-table Attribute
The categorical-table attribute {dw:categorical-tableType} [?] is the foreign key to a list of categories that define the meaning of the value (R2.2.1).
5.4.10.7. conversion-table Attribute
The conversion-table attribute {dw:conversion-tableType} [?] is the foreign key to a list of conversions tables that provide a equivalent value for the data (R2.2.1).
5.4.11. <conditions-icons> Element
The <conditions-icons> element {dw:conditions-iconsType} [?] holds a URL for a weather icon depicting the cloud and precipitation conditions. The icons will be consistent with other NWS forecast products (R5.1).
5.4.11.1. type Attribute
The type Attribute {dw:typeType} specifies the type of icons. Example values include “forecast-NWS” (R2.2.1.1).
5.4.11.2. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.11.3. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.11.4. <icon-link> Element
The <icon-link> element {xsd:anyURI} [+] contains the URL of the icon used to represent weather conditions (R5.1).
NOTE: The priority algorithm for icon determination can be found in Table 8–Table 11. In these tables, the nomenclature [20,30…90,100] indicates that one of the 2 digit values appear in the icon file name. For example, the rain icon could be ra20.jpg, ra30.jpg on up to ra100.jpg.
5.4.12.
<wordedForecast>
Element
The <wordedForecast>
element {dw:wordedForecastType} [?] holds a text representation of the forecast
for the indicated time period.
5.4.12.1. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.12.2. dataSource
Describes the data source used to create the worded forecast (examples include “NDFD Mosaic” or “Local NetCDF”, etc.).
5.4.12.3. wordGenerator
Specifies which algorithm was used to create the worded forecast (examples include “MarkMitchell”).
5.4.12.4. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.12.5. <text> Element
The <text> element {dw:textType} [+]: The worded forecast. Missing entries are represented by an empty element and xsi:nil=”true” (R2.2.1).
The <water-state> Element {dw:water-stateType} [?] is a container for sea and wave information. The seas element will not be present when the waves or swell elements are used. The wave and swell can both appear or they may appear separately (R2.2.1).
5.4.13.1. time-layout Attribute
For information on the time-layout attribute see Section 7.4.
5.4.13.2. <seas> Element
The <seas> element {dw:seasType} [?] holds the height of the seas which is a combination of both wind waves and swell (R2.2.1).
5.4.13.3. type Attribute
The type Attribute {dw:typeType} specifies the type of seas. An example value includes “combined” (R2.2.1.1).
5.4.13.4. units Attribute
The units attribute {dw:unitsType} defines the units of the seas values. Example values include “feet” and “meters” (R2.2.1.3).
5.4.13.5. <value> Element
The <value> element {dw:valueType} [+]: The seas value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.13.5.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a sea height range (R2.2.1).
5.4.13.5.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a sea height range (R2.2.1).
5.4.13.6. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.13.7. <waves> Element
The <waves> element {dw:wavesType} [?] holds the height of waves generated by the local wind blowing (R2.2.1).
5.4.13.8. type Attribute
The type Attribute {dw:typeType} specifies the type of waves. An example value includes “wind” or “significant” (R2.2.1.1).
5.4.13.9. units Attribute
The units attribute {dw:unitsType} defines the units of the wave values. Example values include “feet” and “meters” (R2.2.1.3).
5.4.13.10. <value> Element
The <value> element {dw:valueType} [+]: The wave value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.13.10.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a wave height range (R2.2.1).
5.4.13.10.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a wave height range (R2.2.1).
5.4.13.10.2.1. period Attribute
The period attribute {xsd:nonNegativeIntegers} [?] holds the time, in seconds for the passage of successive wave crests (R2.2.1).
5.4.13.10.2.2. steepness Attribute
The steepness attribute {xsd:nonNegativeIntegers} [?] holds the Ratio of wave height to wavelength. Theoretical wave steepness maximum is around 1/10, after which the wave becomes unstable and breaks (R2.2.1).
5.4.13.11. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.13.12. <swell> Element
The <swell> element {dw:swellType} [?] holds the height of wind waves which have traveled beyond the wave generation region (R2.2.1).
5.4.13.13. type Attribute
The type Attribute {dw:typeType} specifies the type of swell. An example value includes “significant” (R2.2.1.1).
5.4.13.14. units Attribute
The units attribute {dw:unitsType} defines the units of the swell values. Example values include “feet” and “meters” (R2.2.1.3).
5.4.13.15. <value> Element
The <value> element {dw:valueType} [+] contains the swell value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.13.15.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a swell height range (R2.2.1).
5.4.13.15.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a swell height range (R2.2.1).
5.4.13.15.2.1. period Attribute
The period attribute {xsd:nonNegativeIntegers} [?] holds the time, in seconds for the passage of successive wave crests (R2.2.1).
5.4.13.15.2.2. steepness Attribute
The steepness attribute {xsd:nonNegativeIntegers} [?] holds the Ratio of wave height to wavelength. Theoretical wave steepness maximum is around 1/10, after which the wave becomes unstable and breaks (R2.2.1).
5.4.13.16. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.13.16.1. <direction> Element
The <direction> element {dw:directionType} [+] is a container for the direction values (R2.2.1).
5.4.13.17. type Attribute
The type Attribute {dw:typeType} specifies the type of swell direction. Example values include “wind” and “swell”. The default value is “wind” (R2.2.1.1).
5.4.13.18. units Attribute
The units attribute {dw:unitsType} defines the units of the swell direction values. Example values include “degrees true” (R2.2.1.3).
5.4.13.19. <value> Element
The <value> element {dw:valueType} [+] holds the direction value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.13.19.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a swell direction range (R2.2.1).
5.4.13.19.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a swell direction range (R2.2.1).
5.4.13.20. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.4.13.21. ice-coverage Element
The ice-coverage element {dw:ice-coverageType} [?] holds the amount of ice on the water body (R2.2.1).
5.4.13.22. type Attribute
The type attribute {dw:typeType} specifies the type of ice coverage. An example value includes “total” (R2.2.1.1).
5.4.13.23. units Attribute
The units attribute {dw:unitsType} defines the units of the ice cverage values. Example values include “percent” (R2.2.1.3).
5.4.13.24. <value> Element
The <value> element {dw:valueType} [+]: The ice coverage value reported to the nearest integer. Missing values are represented by an empty element and xsi:nil=”true” (R2.2.1).
5.4.13.24.1. upper-range Attribute
The upper-range attribute {dw:upper-rangeType} [?] holds the value associated with the upper end of a ice coverage range (R2.2.1).
5.4.13.24.2. lower-range Attribute
The lower-range attribute {dw:lower-rangeType} [?] holds the value associated with the lower end of a ice coverage range (R2.2.1).
5.4.13.25. <name> Element
The <name> element {xsd:string} [?] is the name of this parameter. The name value can be used for display purposes (R2.2.1.2).
5.5. <categorical-definitions> Element
The <categorical-definitions> element {dw:categorical-definitionsType} [?] contains the definitions of categories found in parameter value elements (R2.2.1).
5.5.1. <categorical-table> Element
The <categorical-table> element {dw:categorical-table-elementType} [+] contains the categorical data (R2.2.1).
5.5.1.1. units Attribute
5.5.1.2. The units attribute {dw:unitsType} defines the units of the data in the categories (R2.2.1).
5.5.1.3. <categorical-key> Element
The <categorical-key> element {dw:categorical-keyType} is the primary key relating the data in the parameter element to a particular categorical table (R2.2.1).
5.5.1.4. <value> Element
The <value> element {dw:valueType} [+]: The value found in the data (R2.2.1).
5.5.1.4.1. category {xsd:string}: The category corresponding to the value (R2.2.1).
5.6. <conversion-definitions> Element
The <conversion-definitions> element {dw:conversion-definitionsType} [?] contains look-up tables used to relate numerical data to an equivalent value (R2.2.1).
5.6.1. <conversion-table> Element
The <conversion-table> element {dw:conversion-table-elementType} [+] holds the range of data associated with each equivalent value (R2.2.1).
5.6.1.1. <conversion-key> Element
The <conversion-key> element {dw:conversion-keyType} contains the primary key relating the data in the parameter element to a particular conversion table (R2.2.1).
5.6.1.2. <start-value> Element
The <start-value> element {dw:start-valueType} [+] is the starting value of the range of data for which the value is equivalent (R2.2.1).
5.6.1.3. <end-value> Element
The <end-value> element {dw:end-valueType} [+] is the ending value of the range of data for which the value is equivalent (R2.2.1).
5.6.1.4. <equivalent-value> Element
The <equivalent-value> element {xsd:string} [+] is the equivalent value of the data (R2.2.1).
6. Latitude and Longitude Lists
The <latLonList> element {dw:latLonListType} [?] holds a list of latitude and longitude pairs that are contained in a subgrid. A latitude and longitude pair is composed of a latitude value followed by a comma followed by a longitude value (i.e. 38.98,-77.07). Each latitude and longitude pair is separated by a space (i.e. 33.869922,-80.080906 33.914765,-80.074936).
7. Common Element and Attribute Definitions
The <point> element {dw:pointType} [?] is the element used to define the grid point for which the data is valid (R2.2.2).
The latitude attribute {xsd:decimal} defines the latitude of the point where the data is valid (R2.2.2.2).
The longitude attribute {xsd:decimal} defines the latitude of the point where the data is valid (R2.2.2.2).
7.2. vertical-coordinate Attribute
The vertical-coordinate attribute {xsd:string} defines the data’s vertical position (R2.2.2.3).
The summarization attribute {dw:summarizationType} [?] indicates how a collection of grid point values is summarized into a single value. Example summarization types include “none”, “mean”, “median”, “mode”, “maximum”, “minimum”, “12hourly”, or “24hourly”. A value of “none” indicates that the values are valid at a single grid point or time (R2.2.1.5).
The time-layout attribute {dw:time-layoutType} defines the key to the appropriate valid times and any relevant period name information (R2.2.3).
DWML will use the namespace http://www.nws.noaa.gov/mdl/ndfd/dwml.
DWML will use XML Schema to perform validity checking.
DWML will use UTF-8 encoding.
This document defines the requirements for a markup language of the National Oceanic and Atmospheric Administration’s National Weather Service’s (NWS) National Digital Forecast Database (NDFD). This document will refer to the new markup language as the Digital Weather Markup Language (DWML). DWML will serve as a vehicle for transferring portions of the NDFD to NOAA’s customers and partners. The piece of the database distributed in DWML will correspond to some subset of the available weather elements, times, and grid points. While DWML will initially focus on NDFD data, the intent is to make this new markup language flexible and scaleable enough to accommodate other meteorological data such as weather observations and guidance products.
1.1. Message: A collection of DWML elements in a valid arrangement.
1.2. Product: A collection of NWS information in a defined format.
1.3. Issuance: A particular product.
DWML contains both metadata as well as meteorological data. The two will be clearly separated within a message.
2.1. DWML Metadata: DWML metadata will provide information about the DWML message and the data it contains. The metadata will provide the following some of which may be optional for a given issuer.
2.1.1. Product Title: A concise summarization of what this DWML product contains.
2.1.2. Product Creation Date: The date and time that the product was prepared.
2.1.3. DWML Version: Indicates which version of DWML is being used.
2.1.4. Operational Mode: The operational mode tells the user if the message is produced as a developmental, experimental or official product, or a test. See National Weather Service Instruction 10-102 for additional details on changes in operational mode.
2.1.4.1. Test: Indicates that this is an instance of an existing DWML product that contains some change being evaluated by the DWML development team. Users will typically not process this product.
2.1.4.2. Developmental: A new product that is not yet ready for public evaluation or use.
2.1.4.3. Experimental: Product is available for testing and evaluation for a specified, limited time period for the explicit purpose of obtaining customer feedback.
2.1.4.4. Official: Operational products defined in NWS policy
2.1.5. Product Class: Product Class specifies the general type of product contained in a DWML instance. Expected values include meteorological, hydrological, oceanographical, land surface, and space.
2.1.6. Product Type: The product type defines the specific category of the product class to which the product belongs. Examples include observation, forecast, analysis, and statistic.
2.1.7.
2.1.8.
2.1.9. Disclaimer URL: The URL containing an optional disclaimer that the production center wants users to know about.
2.1.10. Credit URL: The URL used to credit the source of the data.
2.1.11. Credit Logo: The optional image used with the credit URL to acknowledge the data source.
2.1.12. Feedback URL: The optional URL to a web page used to provide the production center comments on the product.
2.1.13. Additional Information URL: A link to a more complete forecast or the web page for the forecast’s source.
2.1.14. Suggested Refresh Frequency: Used by the production center to help users know how often to return for updated data. Since the NDFD is updated on an as needed basis, the frequency provided will not always ensure users update as soon as new data is available. The frequency will also not guarantee that that when updates are done that the retrieved data is new. Still, the suggested refresh frequency will help well mannered users know what the provider believes is a reasonable time between repeated accesses of the system (i.e. seconds, days, months, etc).
2.2. DWML Data: At the heart of NDFD data is a meteorological value with a geographical and temporal component. To define this value, DWML needs to provide the following information:
2.2.1. Data Value: This is the information retrieved or derived from the NDFD database (i.e. 71).
2.2.1.1. Value Type: The category to which the parameter belongs. For example, temperature is the category that contains maximum temperature, dew point temperature etc.
2.2.1.2. Value Name: The name of the parameter that the value measures (i.e. maximum temperature).
2.2.1.3. Value Units: The units of the parameter (i.e. °F).
2.2.1.4. Value Precision: The value needs to be provided with the correct number of significant digits (i.e. 71 °F).
2.2.1.5. Type of Spatial Summarization: Collections of grid point values may be summarized into a single value. If this is done, the type of summarization will be provided (mean, median, mode, centroid value etc.).
2.2.1.6. Type of Temporal Summarization: A number of grid point values may be summarized for a given period of time. When this is done, the type of temporal summarization will be provided (period, hourly, 3 hourly, daily, etc.).
2.2.2. Data Location: The three dimensional place that the data value applies to.
2.2.2.1. Type of Geography: Types of geography could include a point (lat/lon), city and state, county, National Weather Service forecast zone, and zip code.
2.2.2.2. Horizontal Location: The position of the data projected onto the earth’s surface. This could be a latitude and longitude pair, a specific city and state, a county name, a National Weather Service zone name, or a zip code.
2.2.2.3. Vertical Coordinate System: The type of coordinates that define the data’s vertical position (i.e. height above mean sea level, sigma, etc.). Dependant on the vertical coordinate system, one of the following will also be needed.
2.2.2.3.1. Height: This is the data point’s distance above/below some datum.
2.2.2.3.1.1. Datum: This is the reference for the height measurement (i.e. earth surface, mean sea level, etc.).
2.2.2.3.1.2. Units: The units of measure used for the height value.
2.2.2.3.2. Level: The digital data’s vertical position may be defined at some discrete level.
2.2.2.3.3. Layer: The digital data’s vertical position may be defined for some discrete layer.
2.2.3. Data Time: DWML will provide for arbitrary time periods as well as common time references.
2.2.3.1. Start of Valid Time: The start time of the period for which the data is valid.
2.2.3.2. End of Valid Time: The end time of the period for which the data is valid.
2.2.3.3. Time Coordinate: Can be either Local Time (LT) or Coordinated Universal Time (UTC).
2.2.3.4. Period Name: A textual description of the time embodied by the start and end times. For example, the time might correspond to “THIS AFTERNOON”.
3.1. DWML will adhere to the requirements defining well formed XML.
3.2. DWML will provide a schema to ensure any given instance conforms to the language’s specifications.
3.3. DWML will use UTF-8 encoding.
4.1. DWML will use self describing element and attribute names.
4.2. DWML will employ industry standards to ensure the language is easy to maintain and is capable of later expansion.
DWML should be capable of producing XML versions of the following three existing National Weather Service’s web products.
5.1. Forecast at a Glance
The current experimental grid point forecast (on-line example) contains the high or low temperature, the sky condition, and a weather icon. Figure 1 shows an example of the experimental forecast product. See Table 1 for DWML sample metadata and data values for this product.
5.2. Digital Tabular Forecast
The current experimental forecast (on-line example) contains hourly values for temperature, dew point temperature, probability of precipitation, wind direction and speed, sky cover, as well as precipitation type information. Figure 2 shows an example of this experimental forecast product. See Table 1 for DWML sample metadata and data values for this product.
5.3. Digital Zone Forecast
This product is similar to the Forecast at a Glance in that it uses 12 hour forecast periods to summarize the NDFD data. The digital zone forecast is like the Digital Tabular Forecast in terms of its use of an extensive number of weather elements. Figure 3 shows an example product. See Table 1 for sample DWML metadata and data values for this product.
This Afternoon |
Tonight |
Saturday |
Saturday Night |
Sunday |
Sunday Night |
Monday |
Partly Cloudy Hi 74 °F |
Partly Cloudy Lo 58 °F |
Mostly Cloudy Hi 79 °F |
Mostly Clear Lo 55 °F |
Partly Cloudy Hi 81 °F |
Partly Cloudy Lo 59 °F |
Partly Cloudy Hi 77 °F |
Figure 1. Example Forecast at a Glance Product
Error! Not a valid link.
Figure 2. Example Digital/Tabular Forecast Product
|
This Afternoon |
Tonight |
Saturday |
Saturday Night |
Sunday |
Sunday Night |
Sky Cover |
30 % |
25 % |
20 % |
35 % |
60 % |
65 % |
High/Low |
74 °F |
58 °F |
79 °F |
55 °F |
81 °F |
59 °F |
Wind Direction |
NW |
NW |
SW |
SW |
SW |
SE |
Wind Speed |
5 -10 |
5 -10 |
5 -10 |
5 -10 |
10 - 15 |
5 -10 |
PoP |
0 |
0 |
0 |
0 |
40 |
60 |
Weather Type |
None |
None |
None |
None |
Thunderstorms |
Showers |
Figure 3. Example Digital Zone Forecast Product
XML Data Item |
Forecast at a Glance |
Digital Tabular Forecast |
Digital Zone Forecast |
Title |
Gridpoint Forecast at a Glance |
Gridpoint Digital Tabular Forecast |
Gridpoint Digital Zone Forecast |
Creation Date/Time |
2003-09-22T15:30:03Z |
||
Generator |
DWML Version 1.0 |
||
Operational Mode |
Experimental |
||
Class |
Meteorological |
||
Product Type |
Forecast |
||
|
Meteorological Development Laboratory (W/OST2) |
||
Sub-center |
Product Generation Branch |
||
Disclaimer URL |
http://www.nws.noaa.gov/disclaimer.html |
||
Credit URL |
http://www.nws.noaa.gov/ |
||
Credit Logo |
http://www.nws.noaa.gov/images/noaaleft.jpg |
||
Feedback URL |
http://www.nws.noaa.gov/mdl/ |
||
Additional Info URL |
http://www.crh.noaa.gov/ifps/MapClick.php?site=lwx&CiTemplate=1& FcstType=text&MapType=0&TempBox=1&DewBox=1&WindBox=1& ChillBox=1&SkyBox=1&SnowBox=1&FzgBox=1&SleetBox=1& map.x=187&map.y=60 |
||
Refresh Frequency |
Hourly |
||
Value Type |
Icon |
Temperature |
Temperature |
Value Name |
Weather Icon |
Temperature |
Maximum Temperature |
Value Units |
None |
°F |
°F |
Value |
79 |
74 |
|
Spatial Summarization |
None |
None |
None |
Temporal Summarization |
Period |
Hourly |
Period |
Type of Geography |
Lat/Lon |
||
Horizontal Location |
38.0° -78.0° |
||
Vertical Coordinate System |
Surface |
||
Reference Time |
2003-09-16T12:00 |
||
Significance of Reference Time |
Start of Forecast |
||
Start of Valid Time |
2003-09-16T16:00:00Z |
2003-09-16T16:00:00Z |
2003-09-16T16:00:00Z |
End of Valid Time |
2003-09-17T04:00:00Z |
2003-09-16T17:00:00Z |
2003-09-17T04:00:00Z |
Time Coordinate |
UTC |
||
Period Name |
This Afternoon … |
Not Applicable |
This Afternoon … |
Table 1.
DWML Content by Product
Appendix B: Requirements Correlation Matrix
Requirement |
Spec |
Spec |
Spec |
Spec |
R2.1 |
S3.1.2 |
S4.1 |
S4.2 |
|
R2.1.1 |
S4.1.1 |
S4.1.3 |
|
|
R2.1.2 |
S4.1.6 |
|
|
|
R2.1.3 |
S3.1.1 |
|
|
|
R2.1.4 |
S4.1.2 |
|
|
|
R2.1.4.1 |
S4.1.2.1 |
|
|
|
R2.1.4.2 |
S4.1.2.2 |
|
|
|
R2.1.4.3 |
S4.1.2.3 |
|
|
|
R2.1.4.4 |
S4.1.2.4 |
|
|
|
R2.1.5 |
S4.1.4 |
|
|
|
R2.1.6 |
S4.1.6 |
|
|
|
R2.1.7 |
S4.2.2 |
|
|
|
R2.1.8 |
S4.2.2.1 |
|
|
|
R2.1.9 |
S4.2.3 |
|
|
|
R2.1.10 |
S4.2.4 |
|
|
|
R2.1.11 |
S4.2.5 |
|
|
|
R2.1.12 |
S4.2.6 |
|
|
|
R2.1.13 |
S4.2.1 |
|
|
|
R2.1.14 |
S4.1.6.1 |
|
|
|
R2.2 |
S3.1.3 S5.3.4 S5.3.8 S5.3.11.2 S5.3.11.4.5 |
S5.3 S5.3.5 S5.3.9 S5.3.11.3 S5.3.8.2 |
S5.3.2 S5.3.6 S5.3.10 S5.3.11.4 |
S5.3.3 S5.3.7 S5.3.11 S5.3.11.5 |
R2.2.1 |
S5.3.2.4+ S5.3.6.4+ S5.3.9.4+ S5.3.11.4.3+ S5.3.3.7 S5.3.5.7 S5.3.7.7 S5.3.9.6 |
S5.3.3.4+ S5.3.7.4+ S5.3.10.2 S5.3.11.4.5.3+ S5.3.4.6 S5.3.6.6 S5.3.7.8 S5.3.9.7 |
S5.3.4.4+ S5.3.8.2.1+ S5.3.11.2.3+ S5.3.11.5.3+ S5.3.4.7 S5.3.6.7 S5.3.8.4 S5.4+ |
S5.3.5.4+ S5.3.8.2.1.6 S5.3.11.3.3+ S5.3.3.6 S5.3.5.6 S5.3.7.6 S5.3.8.5 S5.5+ |
R2.2.1.1 |
S5.3.2.1 S5.3.6.1 S5.3.11.3.1 |
S5.3.3.1 S5.3.7.1 S5.3.11.4.1 |
S5.3.4.1 S5.3.9.1 S5.3.11.4.5.1 |
S5.3.5.1 S5.3.11.2.1 S5.3.11.5.1 |
R2.2.1.2 |
S5.3.2.5 S5.3.6.5 S5.3.11.3.4 |
S5.3.3.5 S5.3.7.5 S5.3.11.4.4 |
S5.3.4.5 S5.3.9.5 S5.3.11.4.5.4 |
S5.3.5.5 S5.3.11.2.4 S5.3.11.5.4 |
R2.2.1.3 |
S5.3.2.2 S5.3.6.2 S5.3.11.2.2 S5.3.11.5.2 |
S5.3.3.2 S5.3.7.2 S5.3.11.3.2 |
S5.3.4.2 S5.3.8.2.1.6.1 S5.3.11.4.2 |
S5.3.5.2 S5.3.9.2 S5.3.11.4.5.2 |
R2.2.1.4 |
S5.3.2.4+ S5.3.6.4+ S5.3.11.3.3+ |
S5.3.3.4+ S5.3.7.4+ S5.3.11.4.3+ |
S5.3.4.4+ S5.3.9.4+ S5.3.11.4.5.3+ |
S5.3.5.4+ S5.3.11.2.3+ S5.3.11.5.3+ |
R2.2.1.5 |
S5.1.2.1 S5.1.6.2.3 |
S5.1.3.2 S5.1.6.3.5 |
S5.1.4.2 |
S5.1.5.2 |
R2.2.1.6 |
S5.2.2 |
|
|
|
R2.2.2 |
S5.1 |
S5.1.1 |
S5.3.1 |
|
R2.2.2.1 |
S5.1.2 S5.1.5.1 |
S5.1.3 S5.1.5.2 |
S5.1.4 S5.1.5.3 |
S5.1.5 |
R2.2.2.2 |
S5.1.2 S5.1.5.1 S5.1.5.2.1 |
S5.1.3+ S5.1.5.2 S5.1.5.2.2+ |
S5.1.4+ S5.1.5.3 S5.1.5.3.1 – S5.1.5.3.4 |
S5.1.5 S5.1.5.3 |
R2.2.2.3 |
S5.1.6.1 |
S5.1.7.1 |
S5.1.8.1 |
|
R2.2.2.3.1 |
S5.1.6 |
|
|
|
R2.2.2.3.1.1 |
S5.1.6.1 |
|
|
|
R2.2.2.3.1.2 |
S5.1.6.2 |
|
|
|
R2.2.2.3.2 |
S5.1.7 |
|
|
|
R2.2.2.3.3 |
S5.1.8 |
|
|
|
R2.2.3 |
S5.2 S5.3.4.3 S5.3.8.1 |
S5.2.3 – S5.2.5 S5.3.5.3 S5.3.9.3 |
S5.3.2.3 S5.3.6.3 S5.3.10.1 |
S5.3.3.3 S5.3.7.3 S5.3.11.1 |
R2.2.3.1 |
S5.2.4 |
|
|
|
R2.2.3.2 |
S5.2.5 |
|
|
|
R2.2.3.3 |
S5.2.1 |
|
|
|
R2.2.3.4 |
S5.2.4.1 |
|
|
|
R3.1 |
ALL |
|
|
|
R3.2 |
S7.2 |
|
|
|
R3.3 |
S7.3 |
|
|
|
R4.1 |
ALL |
|
|
` |
R4.2 |
ALL |
|
|
|
R5.1 |
Appendix D |
|
|
|
R5.2 |
Appendix D |
|
|
|
R5.3 |
Appendix D |
|
|
|
more follows = … zero
or one = ? zero or more = * one or more = + choose one = { }
… … ? … …
refresh-frequency
?
+ … … …
vertical-coordinate datum height-units … state summarization ? state summarization ? latitude longitude summarization ?
vertical-coordinate
latitude longitude latitude longitude latitude longitude latitude longitude radius-units latitude longitude
* period-name ? time-coordinate summarization ?
* … … … …
? … … … … …
type units time-layout categorical-table ? conversion-table ? upper-range ? lower-range ? upper-range ? lower-range ? type units time-layout categorical-table ? conversion-table ? ? ?
type units time-layout categorical-table ? conversion-table ? type units time-layout categorical-table ? conversion-table ?
upper-range ? lower-range ? upper-range ? lower-range ? ? ?
type units time-layout categorical-table ? conversion-table ?
type time-layout ? upper-range ? lower-range ?
upper-range ? lower-range ? type units time-layout categorical-table ? conversion-table ? ?
time-layout categorical-table ? conversion-table ? weather-summary ? coverage intensity additive weather-type qualifier upper-range ? lower-range ? type units time-layout categorical-table ? conversion-table ? ?
type units time-layout categorical-table ? conversion-table ? upper-range ? lower-range ? category
+
? upper-range ? lower-range ? period ? steepness ? upper-range ? lower-range ? period ? steepness ?
upper-range ? lower-range ? upper-range ? lower-range ?
The grid point forecast (on-line example) contains the high or low temperature, the sky condition, and a weather icon. Figure 4 shows an example of the experimental forecast product.
This Afternoon |
Tonight |
Saturday |
Saturday Night |
Sunday |
Sunday Night |
Monday |
Partly Cloudy Hi 74 °F |
Partly Cloudy Lo 58 °F |
Mostly Cloudy Hi 79 °F |
Mostly Clear Lo 55 °F |
Partly Cloudy Hi 81 °F |
Partly Cloudy Lo 59 °F |
Partly Cloudy Hi 77 °F |
Figure 4. Forecast at a Glance
<dwml version=”1.0”>
<head>
<product
srsName=”WGS 1984” concise-name=”glance” operational-mode=”official”>
<title>NWS Forecast at a Glance</product-title>
<field>meteorological</field>
<category>forecast</category></
<creation-date
refresh-frequency=”P1H”> 2003-10-22T15:30:03Z</creation-date>
</product>
<source>
<more-information>http://www.crh.noaa.gov/ifps/MapClick.php</more-information>
<production-center>Meteorological
Development Laboratory, <sub-center>Statistical Modeling
Branch</sub-center></production-center>
</production-center>
<disclaimer>http://www.nws.noaa.gov/disclaimer.html</disclaimer>
<credit>http://www.nws.noaa.gov/</credit>
<credit-logo>http://www.nws.noaa.gov/images/noaaleft.jpg</credit-logo>
<feedback>http://www.nws.noaa.gov/mdl/</feedback>
</source>
</head>
<data>
<location>
<location-key>point1</location-key>
<point
latitude=”38.0” longitude=”-78.0”/>
</location>
<time-layout
time-coordinate=”local time” summarization=”none”>
<layout-key>k-p12h-n4-1</layout-key>
<start-valid-time
period-name=”This Afternoon”>2003-10-15T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-15T23:59:59-05:00</end-valid-time>
<start-valid-time
period-name=”Saturday”>2003-10-16T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-16T23:59:59-05:00</end-valid-time>
<start-valid-time
period-name=”Sunday”>2003-10-17T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-17T23:59:59-05:00</end-valid-time>
<start-valid-time
period-name=”Monday”>2003-10-18T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-18T23:59:59-05:00</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”local time” summarization=”none”>
<layout-key>k-p13h-n3-2</layout-key>
<start-valid-time
period-name=”Tonight”>2003-10-16T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-16T12:59:59-05:00</end-valid-time>
<start-valid-time
period-name=”Saturday Night”>2003-10-17T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-17T12:59:59-05:00</end-valid-time>
<start-valid-time
period-name=”Sunday Night”>2003-10-18T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-18T12:59:59-05:00</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”local time” summarization=”mean”>
<layout-key>k-p12h-n7-3</layout-key>
<start-valid-time
period-name=”This Afternoon”>2003-10-15T16:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-15T21:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Tonight”>2003-10-15T22:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-16T09:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Saturday”>2003-10-16T10:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-16T21:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Saturday-Night”>2003-10-16T22:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-17T09:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Sunday”>2003-10-17T10:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-17T21:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Sunday-Night”>2003-10-17T22:00:00-04:00</start-valid-time>
<end-valid-time>2003-10-18T09:59:59-04:00</end-valid-time>
<start-valid-time
period-name=”Monday”>2003-10-18T10:00:01-04:00</start-valid-time>
<end-valid-time>2003-10-19T21:59:59-04:00</end-valid-time>
</time-layout>
<parameters
applicable-location=’point1’>
<conversion-definitions>
<conversion-table
units=”percent”>
<conversion-key>sky-cover</conversion-key>
<start-value>0</start-value>
<end-value>6</end-value>
<equivalent-value>clear</equivalent-value>
<start-value>7</start-value>
<end-value>31</end-value>
<equivalent-value>mostly
clear</equivalent-value>
<start-value>32</start-value>
<end-value>69</end-value>
<equivalent-value>partly
cloudy</equivalent-value>
<start-value>70</start-value>
<end-value>94</end-value>
<equivalent-value>mostly
cloudy</equivalent-value>
<start-value>95</start-value>
<end-value>100</end-value>
<equivalent-value>cloudy</equivalent-value>
</conversion-table>
</conversion-definitions>
<temperature
type=”maximum” units=”F” time-layout=”k-p12h-n4-1”>
<name>Maximum
Temperature</name>
<value>74</value>
<value>79</value>
<value>81</value>
<value>77</value>
</temperature>
<temperature
type=”minimum” units=”F” time-layout=”k-p12h-n3-2”>
<name>Minimum
Temperature</name>
<value>58</value>
<value>59</value>
<value>55</value>
</temperature>
<cloud-amount
type=”total” units=”percent” time-layout=” k-p12h-n7-3”
conversion-table=”sky-cover”>
<amount-name>Total
Sky Cover</amount-name>
<amount-name>45</amount-name>
<amount-name>75</amount-name>
<amount-name>55</amount-name>
<amount-name>60</amount-name>
<amount-name>50</amount-name>
<amount-name>77</amount-name>
<amount-name>53</amount-name>
</cloud-amount>
<conditions-icons
time-layout=” k-p12h-n7-3”>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/nsct.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/nbkn.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/tsra20.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/tsra40.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/tsra40.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/tsra40.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/tsra40.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/ntsra20.jpg</icon-link>
<icon-link>http://www.nws.noaa.gov/weather/images/fcicons/hi_nshwrs20.jpg</icon-link>
</conditions-icons>
</parameters>
</data>
</dwml>
The forecast (on-line example) contains hourly values for temperature, dew point temperature, probability of precipitation, wind direction and speed, sky cover, as well as precipitation type information. Figure 5 shows an example of this experimental forecast product.
Sample Digital
Tabular Forecast Product
Figure 5. Digital/Tabular Forecast
<dwml version=”1.0”>
<head>
<product
srsName=”WGS 1984” concise-name=” digital-tabular” operational-mode=”official”>
<title>NWS
Forecast at a Glance</product-title>
<field>meteorological</field>
<category>forecast</category>
<creation-date
refresh-frequency=”P1H”> 2003-10-22T15:30:03Z</creation-date>
</product>
<source>
<more-information>http://www.crh.noaa.gov/ifps/MapClick.php</more-information>
<production-center>Meteorological
Development Laboratory, <sub-center>Statistical Modeling
Branch</sub-center></production-center>
</production-center>
<disclaimer>http://www.nws.noaa.gov/disclaimer.html</disclaimer>
<credit>http://www.nws.noaa.gov/</credit>
<credit-logo>http://www.nws.noaa.gov/images/noaaleft.jpg</credit-logo>
<feedback>http://www.nws.noaa.gov/mdl/</feedback>
</source>
</head>
<data>
<location>
<location-key>point1</location-key>
<point
latitude=”38.0” longitude=”-78.0”/>
</location>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p1h-n16-1</layout-key>
<start-valid-time>2003-09-16T20:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T21:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T22:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T23:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T00:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T01:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T02:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T03:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T04:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T05:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T06:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T07:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T08:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T09:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T10:00:00Z</start-valid-time>
<start-valid-time>2003-09-16T11:00:00Z</start-valid-time>
</time-layout>
<parameters
applicable-location=’point1’>
<conversion-definitions>
<conversion-table>
<conversion-key>wind-direction</conversion-key>
<start-value>23</start-value>
<end-value>67</end-value>
<equivalent-value>NE</equivalent-value>
<start-value>68</start-value>
<end-value>112</end-value>
<equivalent-value>E</equivalent-value>
<start-value>113</start-value>
<end-value>157</end-value>
<equivalent-value>SE</equivalent-value>
<start-value>158</start-value>
<end-value>202</end-value>
<equivalent-value>SE</equivalent-value>
<start-value>203</start-value>
<end-value>247</end-value>
<equivalent-value>SW</equivalent-value>
<start-value>248</start-value>
<end-value>292</end-value>
<equivalent-value>W</equivalent-value>
<start-value>293</start-value>
<end-value>337</end-value>
<equivalent-value>NW</equivalent-value>
<start-value>338</start-value>
<end-value>22</end-value>
<equivalent-value>N</equivalent-value>
</conversion-table>
</conversion-definitions>
<temperature
type=”temperature” units=”F” time-layout=”k-p1h-n16-1”>
<name>Hourly
Temperatures</name>
<value>79</value>
<value>79</value>
<value>78</value>
<value>75</value>
<value>72</value>
<value>70</value>
<value>67</value>
<value>65</value>
<value>62</value>
<value>59</value>
<value>58</value>
<value>58</value>
<value>57</value>
<value>57</value>
<value>56</value>
<value>56</value>
</temperature>
<temperature
type=”dew point” units=”F” time-layout=”k-p1h-n16-1”>
<name>Hourly
Dewpoint Temperatures</name>
<value>52</value>
<value>51</value>
<value>50</value>
<value>50</value>
<value>49</value>
<value>48</value>
<value>48</value>
<value>47</value>
<value>46</value>
<value>46</value>
<value>46</value>
<value>46</value>
<value>46</value>
<value>47</value>
<value>48</value>
<value>48</value>
</temperature>
<probability-of-precipitation
type=”12 hour” units=”percent” time-layout=”k-p1h-n16-1”>
<name>12
Hour Probability of Precipitation</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
</probability-of-precipitation>
<cloud-amount
type=”total” units=”percent” time-layout=”k-p1h-n16-1”>
<amount-name>Total
Sky Cover</amount -name>
<value>13</value>
<value>10</value>
<value>6</value>
<value>3</value>
<value>2</value>
<value>2</value>
<value>2</value>
<value>2</value>
<value>3</value>
<value>5</value>
<value>7</value>
<value>9</value>
<value>10</value>
<value>12</value>
<value>14</value>
<value>16</value>
</cloud-amount>
<direction
type=”wind” units=”degrees true” time-layout=”k-p1h-n16-1” conversion-table=”wind-direction”>
<name>Wind
Direction</name>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
<value>315</value>
</direction>
<wind-speed
type=”sustained” units=”knots” time-layout=”k-p1h-n16-1”>
<name>Sustained
Wind Speed</name>
<value>8</value>
<value>8</value>
<value>8</value>
<value>6</value>
<value>3</value>
<value>2</value>
<value>2</value>
<value>2</value>
<value>3</value>
<value>5</value>
<value>5</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>6</value>
</wind-speed>
<wind-speed
type=”gust” units=”knots” time-layout=”k-p1h-n16-1”>
<name>Wind
SpeedGusts</name>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value>5</value>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
<value
xsi:nil=”true”/>
</wind-speed>
<weather
time-layout=”k-p1h-n16-1”>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
<weather-conditions
xsi:nil=”true”/>
</weather>
</parameters>
</data>
</dwml>
This product is similar to the Forecast at a Glance in that it uses 12 hour forecast periods to summarize the NDFD data. The digital zone forecast is like the Digital Tabular Forecast in terms of its use of an extensive number of weather elements. Figure 6 shows an example product.
Sample Digital Zone
Forecast Product
|
This Afternoon |
Tonight |
Saturday |
Saturday Night |
Sunday |
Sunday Night |
Sky Cover |
30 percent |
25 percent |
20 percent |
35 percent |
60 percent |
65 percent |
High/Low |
74 °F |
58 °F |
79 °F |
55 °F |
81 °F |
59 °F |
Wind Direction |
NW |
NW |
SW |
SW |
SW |
SE |
Wind Speed |
5 -10 |
5 -10 |
5 -10 |
5 -10 |
10 - 15 |
5 -10 |
Probability-of-precipitation |
0 |
0 |
0 |
0 |
40 |
60 |
Weather Type |
None |
None |
None |
None |
Thunderstorms |
Showers |
Figure 6. Digital Zone Forecast
<dwml version=”1.0”>
<head>
<product
srsName=”WGS 1984” concise-name=”digital-zone” operational-mode=”official”>
<creation-date
refresh-frequency=”P1H”> 2003-10-22T15:30:03Z</creation-date>
</product>
<source>
<more-information>http://www.crh.noaa.gov/ifps/MapClick.php</more-information>
</source>
</head>
<data>
<location>
<location-key>point1</location-key>
<point
latitude=”38.0” longitude=”-78.0”/>
</location>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p12h-n3-1</layout-key>
<start-valid-time
period-name=”This Afternoon”>2003-10-15T12:00:00Z</start-valid-time>
<end-valid-time>2003-10-16T23:59:59Z</end-valid-time>
<start-valid-time
period-name=”Saturday”>2003-10-16T12:00:00Z</start-valid-time>
<end-valid-time>2003-10-17T23:59:59Z</end-valid-time>
<start-valid-time
period-name=”Sunday”>2003-10-17T12:00:00Z</start-valid-time>
<end-valid-time>2003-10-18T23:59:59Z</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”local-time” summarization=”none”>
<layout-key>k-p12h-n3-2</layout-key>
<start-valid-time
period-name=”Tonight”>2003-10-16T00:00:00Z</start-valid-time>
<end-valid-time>2003-10-16T11:59:59Z</end-valid-time>
<start-valid-time
period-name=”Saturday Night”> 2003-10-17T00:00:00Z</start-valid-time>
<end-valid-time>2003-10-17T11:59:59Z
</end-valid-time>
<start-valid-time
period-name=”Sunday Night”> 2003-10-18T00:00:00Z</start-valid-time>
<end-valid-time>2003-10-18T11:59:59Z
</end-valid-time>
</time-layout>
<parameters
applicable-location=’point1’>
<conversion-definitions>
<conversion-table>
<conversion-key>wind-direction</conversion-key>
<start-value>23</start-value>
<end-value>67</end-value>
<equivalent-value>NE</equivalent-value>
<start-value>68</start-value>
<end-value>112</end-value>
<equivalent-value>E</equivalent-value>
<start-value>113</start-value>
<end-value>157</end-value>
<equivalent-value>SE</equivalent-value>
<start-value>158</start-value>
<end-value>202</end-value>
<equivalent-value>SE</equivalent-value>
<start-value>203</start-value>
<end-value>247</end-value>
<equivalent-value>SW</equivalent-value>
<start-value>248</start-value>
<end-value>292</end-value>
<equivalent-value>W</equivalent-value>
<start-value>293</start-value>
<end-value>337</end-value>
<equivalent-value>NW</equivalent-value>
<start-value>338</start-value>
<end-value>22</end-value>
<equivalent-value>N</equivalent-value>
</conversion-table>
</conversion-definitions>
<temperature
type=”maximum” units=”F” time-layout=”k-p12h-n3-1”>
<value>74</value>
<value>79</value>
<value>81</value>
</temperature>
<temperature
type=”minimum” units=”F” time-layout=”k-p12h-n3-2”>
<value>58</value>
<value>55</value>
<value>59</value>
</temperature>
<cloud-amount
type=”total” units=”percent” time-layout=”k-p12h-n3-1”>
<name>Total
Sky Cover</ name>
<value>30</value>
<value>20</value>
<value>60</value>
</cloud-amount>
<cloud-amount
type=”total” units=”percent” time-layout=”k-p12h-n3-2”>
<name>Total
Sky Cover</ name>
<value>25</value>
<value>35</value>
<value>65</value>
</cloud-amount>
<direction
type=”wind” units=”degrees true” time-layout=”k-p12h-n3-1”
conversion-table=”wind-direction”>
<value>315</value>
<value>225</value>
<value>225</value>
</direction>
<direction
type=”wind” units=”degrees true” time-layout=”k-p12h-n3-2”
conversion-table=”wind-direction”>
<value>315</value>
<value>135</value>
<value>225</value>
</direction>
<wind-speed
type=”sustained” units=”knots” time-layout=”k-p12h-n3-1”>
<value
lower-range=”5” upper-range=”10”>6</value>
<value
lower-range=”5” upper-range=”10”>8</value>
<value
lower-range=”10” upper-range=”15”>12</value>
</wind-speed>
<wind-speed
type=”sustained” units=”knots” time-layout=”k-p12h-n3-2”>
<value
lower-range=”5” upper-range=”10”>6</value>
<value
lower-range=”5” upper-range=”10”>8</value>
<value
lower-range=”5” upper-range=”10”>7</value>
</wind-speed>
<probability-of-precipitation
type=”12-hour” units=”percent” time-layout=”k-p12h-n3-1”>
<value>0</value>
<value>0</value>
<value>40</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”12-hour” units=”percent” time-layout=”k-p12h-n3-2”>
<value>0</value>
<value>0</value>
<value>60</value>
</probability-of-precipitation>
<weather
time-layout=” k-p12h-n3-1”>
<weather-conditions xsi:nil=”true” />
<weather-conditions
xsi:nil=”true” />
<weather-conditions>
<value coverage=”scattered” intensity=”moderate”
weather-type=”thunderstorms” qualifier=”none” />
</weather-conditions>
</weather>
<weather
time-layout=” k-p12h-n3-2”>
<weather-conditions
xsi:nil=”true” />
<weather-conditions
xsi:nil=”true” />
<weather-conditions>
<value
coverage=”chance” intensity=”light” weather-type=”showers” qualifier=”none”
/>
</weather-conditions>
</weather>
</parameters>
<data>
<dwml>
Model Output Statistics Bulletin
This is not an NDFD product. Rather, it is an operational text bulletin produced by the Meteorological Development Laboratory. Figure 7 shows a sample bulletin.
Sample Model Output
Statistics Product
KAKQ AVN MOS GUIDANCE
DT /OCT 24/OCT 25 /OCT 26 /OCT 27
HR 18 21 00 03 06 09 12 15 18 21 00 03 06 09 12 15 18 21 00 06 12
N/X 38 62 57 70 59
TMP 57 57 44 41 40 40 41 55 60 60 56 58 60 60 60 65 68 67 63 64 64
DPT 27 29 36 35 35 36 39 46 49 52 54 57 59 59 59 61 61 61 60 59 60
CLD CL CL CL CL CL CL CL BK BK BK BK BK BK OV OV OV OV OV OV OV OV
WDR 36 00 00 00 00 00 00 19 21 00 00 20 21 21 21 21 22 22 22 18 23
WSP 02 00 00 00 00 00 00 05 05 00 00 02 02 03 03 06 05 02 03 04 06
P06 0 0 0 3 2 11 20 32 35 20 57
P12 0 10 22 59 60
Q06 0 0 0 0 0 0 0 0 0 0 2
Q12 0 0 0 1 2
T06 0/24 0/19 0/ 0 0/27 0/19 2/19 3/ 0 2/30 6/25 18/ 1
T12 0/29 0/27 2/32 5/30 18/40
POZ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
POS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TYP R R R R R R R R R R R R R R R R R R R R R
CIG 7 7 7 7 7 7 7 7 5 5 5 7 5 5 4 4 4 5 5 4 3
VIS 7 7 7 7 7 7 7 7 7 7 7 7 6 3 2 6 7 7 7 1 4
OBV N N N N N N N N N N N N BR FG BR HZ N N N FG BR
Figure 7: Sample Model Output Statistics Bulletin.
<dwml version=”1.0”>
<head>
<product
srsName=”WGS 1984” concise-name=” digital-tabular” operational-mode=”experimental”>
<title>NWS
Forecast at a Glance</product-title>
<field>meteorological</field>
<category>forecast</category>
<creation-date
refresh-frequency=”P1H”> 2003-10-24T10:30:03Z</creation-date>
</product>
<source>
<more-information>http://www.nws.noaa.gov/mdl/synop/products.shtml</more-information>
<production-center>Meteorological
Development Laboratory, <sub-center>Statistical Modeling
Branch</sub-center></production-center>
<disclaimer>http://www.nws.noaa.gov/disclaimer.html</disclaimer>
<credit>http://www.nws.noaa.gov/</credit>
<credit-logo>http://www.nws.noaa.gov/images/noaaleft.jpg</credit-logo>
<feedback>http://www.nws.noaa.gov/mdl/</feedback>
</source>
</head>
<data>
<location>
<location-key>point1</location-key>
<point
latitude=”36.9872” longitude=”-77.0011”/>
</location>
<time-layout
time-coordinate=”local-time” summarization=”none”>
<layout-key>k-p12h-n2-1</layout-key>
<start-valid-time>2003-10-25T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-25T23:59:59-05:00</end-valid-time>
<start-valid-time>2003-10-26T12:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-26T23:59:59-05:00</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”local time” summarization=”none”>
<layout-key>k-p13h-n3-2</layout-key>
<start-valid-time>2003-10-25T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-25T12:59:59-05:00</end-valid-time>
<start-valid-time>2003-10-26T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-26T12:59:59-05:00</end-valid-time>
<start-valid-time>2003-10-27T00:00:00-05:00</start-valid-time>
<end-valid-time>2003-10-27T12:59:59-05:00</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p3h-n21-3</layout-key>
<start-valid-time>2003-10-24T18:00:00Z</start-valid-time>
<start-valid-time>2003-10-24T21:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T00:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T03:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T06:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T09:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T12:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T15:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T18:00:00Z</start-valid-time>
<start-valid-time>2003-10-25T21:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T00:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T03:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T06:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T09:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T12:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T15:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T18:00:00Z</start-valid-time>
<start-valid-time>2003-10-26T21:00:00Z</start-valid-time>
<start-valid-time>2003-10-27T00:00:00Z</start-valid-time>
<start-valid-time>2003-10-27T06:00:00Z</start-valid-time>
<start-valid-time>2003-10-27T12:00:00Z</start-valid-time>
</time-layout>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p6h-n11-4</layout-key>
<start-valid-time>2003-10-24T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-27T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-27T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T12:00:00Z</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p12h-n5-5</layout-key>
<start-valid-time>2003-10-25T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-27T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T12:00:00Z</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p6h-n10-6</layout-key>
<start-valid-time>2003-10-24T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T12:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T12:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T00:00:00Z</end-valid-time>
<start-valid-time>2003-10-27T00:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T06:00:00Z</end-valid-time>
</time-layout>
<time-layout
time-coordinate=”UTC” summarization=”none”>
<layout-key>k-p12h-n5-7</layout-key>
<start-valid-time>2003-10-24T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-25T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-25T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T06:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T06:00:01Z</start-valid-time>
<end-valid-time>2003-10-26T18:00:00Z</end-valid-time>
<start-valid-time>2003-10-26T18:00:01Z</start-valid-time>
<end-valid-time>2003-10-27T06:00:00Z</end-valid-time>
</time-layout>
<parameters
applicable-location=’point1’>
<categorical-definitions>
<categorical-table
units=”inches”>
<categorical-key>QPF-categories</categorical-key>
<value
category=”no precipitation”>0</value>
<value
category=”0.01 to 0.09”>1</value>
<value
category=”0.10 to 0.24”>2</value>
<value
category=”0.25 to 0.49”>3</value>
<value
category=”0.50 to 0.99”>4</value>
<value
category=”1.00 to 1.99”>5</value>
<value
category=”2.00 inches or greater”>6</value>
</categorical-table>
<categorical-table
units=”miles”>
<categorical-key>visibility-categories</categorical-key>
<value
category=”less than or equal to 1/4”>1</value>
<value
category=”1/4 to 1/2”>2</value>
<value
category=”1/2 to 1”>3</value>
<value
category=”1 to 3”>4</value>
<value
category=”3 to 5”>5</value>
<value
category=”6”>6</value>
<value
category=”greater than 6”>7</value>
</categorical-table>
<categorical-table
units=”feet”>
<categorical-key>ceiling-categories</categorical-key>
<value
category=”less than 200”>1</value>
<value
category=”200 to 400”>2</value>
<value
category=”500 to 900”>3</value>
<value
category=”1000 to 3000”>4</value>
<value
category=”3100 to 6500”>5</value>
<value
category=”6600 to 12000”>6</value>
<value
category=”greater than 12000”>7</value>
</categorical-table>
</categorical-definitions>
<conversion-definitions>
<conversion-table>
<conversion-key>sky-cover</conversion-key>
<start-value>0</start-value>
<end-value>0</end-value>
<equivalent-value>CL</equivalent-value>
<start-value>3</start-value>
<end-value>4</end-value>
<equivalent-value>SC</equivalent-value>
<start-value>5</start-value>
<end-value>7</end-value>
<equivalent-value>BK</equivalent-value>
<start-value>8</start-value>
<end-value>8</end-value>
<equivalent-value>OV</equivalent-value>
</conversion-table>
</conversion-definitions>
<temperature
type=”maximum” units=”F” time-layout=”k-p12h-n2-1”>
<name>Maximum
Temperature</name>
<value>62</value>
<value>70</value>
</temperature>
<temperature
type=”minimum” units=”F” time-layout=”k-p12h-n3-2”>
<name>Minimum
Temperature</name>
<value>38</value>
<value>57</value>
<value>59</value>
</temperature>
<temperature
type=”temperature” units=”F” time-layout=”k-p12h-n21-3”>
<name>3
Hourly Temperature</name>
<value>57</value>
<value>57</value>
<value>44</value>
<value>41</value>
<value>40</value>
<value>40</value>
<value>41</value>
<value>55</value>
<value>60</value>
<value>60</value>
<value>56</value>
<value>58</value>
<value>60</value>
<value>60</value>
<value>60</value>
<value>65</value>
<value>68</value>
<value>67</value>
<value>63</value>
<value>64</value>
<value>64</value>
</temperature>
<temperature
type=”dew point” units=”F” time-layout=”k-p12h-n21-3”>
<name>3
Hourly Dew Point Temperature</name>
<value>27</value>
<value>29</value>
<value>36</value>
<value>35</value>
<value>35</value>
<value>36</value>
<value>39</value>
<value>46</value>
<value>49</value>
<value>52</value>
<value>54</value>
<value>57</value>
<value>59</value>
<value>59</value>
<value>59</value>
<value>61</value>
<value>61</value>
<value>61</value>
<value>60</value>
<value>59</value>
<value>60</value>
</temperature>
<cloud-amount
type=”total” units=”8ths” time-layout=”k-p3h-n21-3”
conversion-table=”sky-cover”>
<name>Total
Sky Amount</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>6</value>
<value>8</value>
<value>8</value>
<value>8</value>
<value>8</value>
<value>8</value>
<value>8</value>
<value>8</value>
<value>8</value>
</cloud-amount>
<direction
type=”wind” units=”degrees true” time-layout=”k-p3h-n21-3”>
<name>10
Meter Wind Direction</name>
<value>360</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>190</value>
<value>210</value>
<value>0</value>
<value>0</value>
<value>200</value>
<value>210</value>
<value>210</value>
<value>210</value>
<value>210</value>
<value>220</value>
<value>220</value>
<value>220</value>
<value>180</value>
<value>230</value>
</direction>
<wind-speed
type=”sustained” units=”knots” time-layout=”k-p3h-n21-3”>
<name>10
Meter Wind Speed</name>
<value>2</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>5</value>
<value>5</value>
<value>0</value>
<value>0</value>
<value>2</value>
<value>2</value>
<value>3</value>
<value>3</value>
<value>6</value>
<value>5</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>6</value>
</wind-speed>
<probability-of-precipitation
type=”6 hour” units=”percent” time-layout=”k-p6h-n11-4”>
<name>6
Hour Probability of Precipitation</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>3</value>
<value>2</value>
<value>11</value>
<value>20</value>
<value>32</value>
<value>35</value>
<value>20</value>
<value>57</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”12 hour” units=”percent” time-layout=” k-p12h-n5-5”>
<name>12
Hour Probability of Precipitation</name>
<value>0</value>
<value>10</value>
<value>22</value>
<value>59</value>
<value>60</value>
</probability-of-precipitation>
<precipitation
type=”6 hour” time-layout=”k-p6h-n11-4” categorical-table=”QPF-categories”>
<name>6
Hour Precipitation</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>2</value>
</precipitation>
<precipitation
type=”12 hour” time-layout=” k-p12h-n5-5” categorical-table=”QPF-categories”>
<name>12
Hour Precipitation</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>1</value>
<value>2</value>
</precipitation>
<probability-of-precipitation
type=”6 hour thunderstorm” units=”percent” time-layout=”k-p6h-n10-6”>
<name>6
Hour Probability of Thunderstorms</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>2</value>
<value>3</value>
<value>2</value>
<value>6</value>
<value>18</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”12 hour thunderstorm” units=”percent” time-layout=” k-p12h-n5-7”>
<name>12
Hour Probability of Thunderstorms</name>
<value>0</value>
<value>0</value>
<value>2</value>
<value>5</value>
<value>18</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”6 hour severe thunderstorm” units=”percent” time-layout=”k-p6h-n10-6”>
<name>6
Hour Conditional Probability of Severe Thunderstorms</name>
<value>24</value>
<value>19</value>
<value>0</value>
<value>27</value>
<value>19</value>
<value>19</value>
<value>0</value>
<value>30</value>
<value>25</value>
<value>1</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”12 hour severe thunderstorm” units=”percent” time-layout=” k-p12h-n5-7”>
<name>12
Hour Conditional Probability of Severe Thunderstorms</name>
<value>29</value>
<value>27</value>
<value>32</value>
<value>30</value>
<value>40</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”freezing” units=”percent” time-layout=”k-p3h-n21-3”>
<name>3
Hour Probability of Freezing Precipitation</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
</probability-of-precipitation>
<probability-of-precipitation
type=”snow” units=”percent” time-layout=”k-p3h-n21-3”>
<name>3
Hour Probability of Snow</name>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
</probability-of-precipitation>
<weather
time-layout=”k-p3h-n21-3” categorical-table=”visibility-categories”>
<weather-conditions>
<value
weather-type=”rain” />
<value
xsd:nil=”true” />
</weather-conditions>
<visibility>7</visibility>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value
xsd:nil=”true” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>6</visibility>
</value>
<value
weather-type=”haze” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain” />
<value
weather-type=”fog”>
<visibility>3</visibility>
</value>
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>2</visibility>
</value>
<value
weather-type=”haze” />
</weather-conditions>
<weather-conditions>
<value weather-type=”rain”>
<visibility>6</visibility>
</value>
<value
weather-type=”haze” />
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value>none</value>
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value>none</value>
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>7</visibility>
</value>
<value>none</value>
</weather-conditions>
<weather-conditions>
<value
weather-type=”rain”>
</value>
<value
weather-type=”fog” />
</weather-conditions>
<visibility>1</visibility>
<weather-conditions>
<value
weather-type=”rain”>
<visibility>4</visibility>
</value>
<value
weather-type=”haze” />
</weather-conditions>
</weather>
<cloud-amount
type=”ceiling” units=”none” time-layout=”k-p3h-n21-3”
categorical-table=”ceiling-categories”>
<name>ceiling</name>
<value>7</value>
<value>7</value>
<value>7</value>
<value>7</value>
<value>7</value>
<value>7</value>
<value>7</value>
<value>7</value>
<value>5</value>
<value>5</value>
<value>5</value>
<value>7</value>
<value>5</value>
<value>5</value>
<value>4</value>
<value>4</value>
<value>4</value>
<value>5</value>
<value>5</value>
<value>4</value>
<value>3</value>
</cloud-amount>
</parameters>
</data>
</dwml>
dwmlType (scope = global, element only)
attribute = version, type = string, default = “1.0”
choice
sequence
element = head, type = headType, min = 1, max = 1
element = data, type = dataType, min = 1, max = 1
sequence
element=latLonList, type= latLonListType, min = 1, max = 1
headType (scope = global, element only)
sequence
element = product, type productType, min = 1, max = 1
element = source, type sourceType, min = 0, max = 1
productType (scope = global, element only)
attribute = concise-name, type = concise-nameType, use = required
attribute = srsName, type = srsNameType, use = required
attribute = operational-mode, type = operational-modeType, use = required
anyOrder
element = title, type = string, min = 0, max = 1
element = field, type = fieldType, , min = 0, max = 1
element = category, type = categoryType, min = 0, max = 1
element = creation-date, type = creation-dateType, , min = 1, max = 1
fieldType (scope = local, base = string)
enumeration
“meteorological”
categoryType (scope = local, base = string)
enumeration
“forecastl”
concise-nameType (scope = local, base = string)
enumeration
“time-series” “glance” “tabular-digital” “digital-zone” “dwmlByDay”
operational-modeType (scope = local, base = string)
enumeration
“test” “developmental” “experimental” “official”
srsNameType (scope = local, base = string)
enumeration
“WGS 1984”
creation-dateType (scope = local, text only with base = dateTime)
attribute = refresh-frequency, type = duration, use = required
sourceType (scope = local, element only)
anyOrder
element = more-information, type = anyURI, min = 1, max = 1
element = production-center, type = production-centerType, min = 0, max = 1
element = disclaimer, type = anyURI, min = 0, max = 1
element = credit, type = anyURI, min = 0, max = 1
element = credit-logo, type = anyURI, min = 0, max = 1
element = feedback, type = anyURI, min = 0, max = 1
production-centerType (scope = local, mixed text and element)
element = sub-center, type = string, min = 0, max = 1
dataType (scope = local, element only)
sequence
element = location, type = locationType, min = 1, max = unbounded
element = time-layout, type = time-layoutType, min = 1, max = unbounded
element = parameters, type = parametersType, min = 1, max = unbounded
locationType (scope = local, element only)
element = location-key, type = string, min = 1, max = 1
element = description, type = string, min = 0, max = 1
choice
element = point, type = pointType, min = 0, max = 1
element = nws-zone, type = nws-zoneType, min = 0, max = 1
element = area, type = areaType, min = 0, max = 1
element = city, type = cityType, min = 0, max = 1
choice
element = height, type = heightType, min = 0, max = 1
element = level, type = levelType, min = 0, max = 1
element = layer, type = layerType, min = 0, max = 1
location-keyType (scope = local to data element, text only with base = string)
must be unique
pointType (scope = location element, element only)
attribute = summarization, type = summarizationType, use = optional
attribute = latitude, type = decimal, use = required
attribute = longitude, type = decimal, use = required
cityType (scope = local, text only with base = string)
attribute = state, type = stateType, use = required
attribute = summarization, type = summarizationType, use = optional
stateType (scope = location element, base = string)
pattern
[A-Z][A-Z] (only two digits allowed)
nws-zoneType (scope = local, text only with base = string)
attribute = state, type = stateType, use = required
attribute = summarization, type = summarizationType, use = optional
summariztionType (scope = data element, base = string)
enumeration
“mean” “medium” “mode” “maximum” “minimum” “12hourly” “24hourly” “none”
areaType (scope = local, element only)
attribute = area-type, type = area-typeType, use = required
choice
element = circle, type = circleType, min = 0, max = 1
element = rectangle, type = rectangleType, min = 0, max = 1
area-typeType (scope = local, base = string)
enumeration
“circle” “rectangle”
circleType (scope = local, element only)
attribute = summarization, type = summarizationType, use = optional
element = point, type = pointType, min = 1, max = 1
element = radius, type = radiusType, min = 1, max = 1
radiusType (scope = local, base = decimal)
attribute = radius-units, type=radius-unitsType, use = required
radius-unitsType (scope = local, base = string)
enumeration
“statute miles” “kilometers”
rectangleType (scope = local, element only)
attribute = summarization, type = summarizationType, use = optional
element = point, type = pointType, min = 4, max = 4
heightType (scope = local, base = decimal)
attribute = datum, type = datumType, use = required
attribute = height-units, type = height-unitsType, use = required
datumType (scope = local, base = string)
enumeration
“surface” “mean sea level”
height-unitsType (scope = local, base = string)
enumeration
“feet” “meters”
levelType (scope = local, base = nonNegativeInteger)
attribute = vertical-coordinate, type = string, use = optional
layerType (scope = local, base = nonNegativeInteger)
attribute = vertical-coordinate, type = vertical-coordinateType, use = optional
time-layoutType (scope = local, element only)
attribute = time-coordinate, type = time-coordinateType, use = required
attribute = summarization; type = summarizationType, use = optional
sequence
element = layout-key, type = layout-keyType, min = 1, max = unbounded
sequence
element = start-valid-time, type = start-valid-timeType, min = 1, max = unbounded
element = end-valid-time, type = dateTime, min = 0, max = unbounded
time-coordinateType (scope = local, base = string)
enumeration
“local time” “UTC”
layout-keyType (scope = local, base = string)
pattern
k-p\d+[h|d|m|y]-n\d+-\d+ (something like k-p12h-n10-1)
must be unique
start-valid-timeType (scope = local, base = dateTime)
attribute = period-name, type = string, use = optional
parametersType (scope = local, element only)
attribute = applicable-location, type = string, use = required
anyOrder
element = temperature, type = temperatureType, min = 0, max = unbounded
element = precipitation, type = precipitationType, min = 0, max = unbounded
element = probability-of-precipitation, type = probability-of-precipitationType,
min = 0, max = unbounded
element = convective-hazard, type = convective-hazardType,
min = 0, max = unbounded
element = wind-speed, type = wind-speedType, min = 0, max = unbounded
element = direction, type = directionType, min = 0, max = unbounded
element = cloud-amount, type = cloud-amountType, min = 0, max = unbounded
element = weather, type = weatherType, min = 0, max = unbounded
element = humidity, type = humidityType, min = 0, max = unbounded
element = conditions-icon, type = conditions-iconType, min = 0, max = unbounded
element = wordedForecast, type = wordedForecastType, min = 0, max = unbounded
element = water-state, type = conditions-iconType, min = 0, max = unbounded
temperatureType (scope = local, element only)
attribute = type, type = typeType, use = required
attribute = units, type = string, fixed = “F”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
choice
element = value, type = valueType, min = 1, max = unbounded, nillable
element = valueWithUncertainty, type = valueWithUncertaintyType, min = 1, max =
unbounded, nillable
typeType (scope = local, base = string)
enumeration
“maximum” “minimum” “hourly” “dew point” “heat index” “wind chill” “apparent”
“monthly anomalies” “seasonal anomalies” “8-14 day anomalies” ”monthly anomolies”
”seasonal anomolies” “rtma-hourly” “rtma-dew point”
valueWithUncertaintyType (scope = local, element only)
sequence
element = value, type = valueType, min = 0, max = 1, nillable
element = error, type = errorType, min = 0, max = 1, nillable
errorType (scope = local, base = decimal)
attribute = qualifier, type = qualifierType, use = optional
qaulifierType (scope = local, base = string)
enumeration
“+/-“, “+”. “-“, “%”
valueTypeType (scope = local, base = string)
enumeration
“RTMA” “NDFD”
time-layoutType (scope = element parameters, base = string)
pattern
k-p\d+[h|d|m|y]-n\d+-\d+ (something like k-p12h-n10-1)
must match one layout-key element content
valueType (scope = local, base = integer)
attribute = type, type = valueTypeType, use = optional
attribute = upper-range, type = upper-rangeType, use = optional
attribute = lower-range, type = lower-rangeType, use = optional
minInclusive = -459
upper-rangeType (scope = local, base = integer)
minInclusive = -459
lower-rangeType (scope = local, base = integer)
minInclusive = -459
precipitationType (scope = local, element only)
attribute = type, type = typeType, use = required
attribute = units, type = string, fixed = “inches”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = valueType, min = 1, max = unbounded, nillable
typeType (scope = local, base = string)
enumeration
“liquid” “snow” “8-14 day anomalies” “monthly anomalies” “seasonal anomalies”
“rtma-liquid”
valueType (scope = local, base = nonNegativeInteger)
attribute = upper-range, type = nonNegativeInteger, use = optional
attribute = lower-range, type = nonNegativeInteger, use = optional
probability-of-precipitationType (scope = local, element only)
attribute = type, type = typeType, default = “12 hour”
attribute = units, type = string, fixed = “percent”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = valueType, min = 1, max = unbounded, nillable
typeType (scope = local, base = string)
enumeration
“12 hour” “floating”
convective=hazardType (scope = local, element only)
attribute = type, type = typeType
attribute = units, type = string, fixed = “percent”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = valueType, min = 1, max = unbounded, nillable
typeType (scope = local, base = string)
enumeration
“outlook” “tornadoes” “hail” “damaging thunderstorm winds” “extreme tornadoes” “extreme hail” “extreme thunderstorm winds” “severe thunderstorms” “extreme severe thunderstorms”
valueType (scope = local, base = nonNegativeInteger)
attribute = upper-range, type = upper-rangeType, use = optional
attribute = lower-range, type = lower-rangeType, use = optional
maxInclusive = 100
upper-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
lower-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
wind-speedType (scope = local, element only)
attribute = type, type = typeType, use = required
attribute = units, type = unitsType, default = “knots”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
choice
element = value, type = valueType, min = 1, max = unbounded, nillable
element = valueWithUncertainty, type = valueWithUncertainty Type, min = 1, max =
unbounded, nillable
typeType (scope = local, base = string)
enumeration
“sustained” “gust” “transport” “cumulative34” “cumulative50” “cumulative64” “incremental34” “incremental50” “incremental64” “rtma-sustained”
unitsType (scope = local, base = string)
enumeration
“knots” “percent”
valueType (scope = local, base = nonNegativeInteger)
attribute = type, type = valueTypeType, use = optional
attribute = upper-range, type = nonNegativeInteger, use = optional
valueWithUncertaintyType (scope = local, element only)
sequence
element = value, type = valueType, min = 0, max = 1, nillable
element = error, type = errorType, min = 0, max = 1, nillable
errorType (scope = local, base = decimal)
attribute = qualifier, type = qualifierType, use = optional
qaulifierType (scope = local, base = string)
enumeration
“+/-“, “+”. “-“, “%”
valueTypeType (scope = local, base = string)
enumeration
“RTMA” “NDFD”
directionType (scope = local to parameters element, element only)
attribute = type, type = typeType, default = “wind”
attribute = units, type = string, fixed = “degrees true”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
choice
element = value, type = valueType, min = 1, max = unbounded, nillable
element = valueWithUncertainty, type = valueWithUncertainty Type, min = 1, max =
unbounded, nillable
typeType (scope = local, base = string)
enumeration
“wind” “swell”
valueWithUncertaintyType (scope = local, element only)
sequence
element = value, type = valueType, min = 0, max = 1, nillable
element = error, type = errorType, min = 0, max = 1, nillable
errorType (scope = local, base = decimal)
attribute = qualifier, type = qualifierType, use = optional
qaulifierType (scope = local, base = string)
enumeration
“+/-“, “+”. “-“, “%”
valueTypeType (scope = local, base = string)
enumeration
“RTMA” “NDFD”
valueType (scope = local, base = nonNegativeInteger)
attribute = type, type = valueTypeType, use = optional
maxInclusive = 360
cloud-amountType (scope = local, element only)
attribute = type, type = string, fixed = “total”
attribute = units, type = string, fixed = “percent”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
sequence
element = layer, type = layerType, min = 0, max = 0
element = value, type = valueType, min = 1, max = unbounded, nillable
NOTE: conversion-table values for sky cover can be found in Table 2.
valueType (scope = local, base = nonNegativeInteger)
attribute = upper-range, type = upper-rangeType, use = optional
attribute = lower-range, type = lower-rangeType, use = optional
maxInclusive = 100
upper-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
lower-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
weatherType (scope = local, element only)
attribute = time-layout, type = time-layoutType, use = required
element = weather-conditions, type = weather-conditionsType, min = 1, max = unbounded, nillable
weather-conditionsType (scope = local, element only)
element = value, type = valueType, min = 1, max = unbounded, nillable
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
attribute = weather-summary, type = string, use = optional
valueType (scope = local, elements only)
attribute = coverage, type = coverageType, use = optional
attribute = intensity, type = intensityType, use = optional
attribute = additive, type = additiveType, use = optional
attribute = weather-type, type = weather-typeType, use = optional
attribute = qualifier, type = qualifierType, use = optional
element = visibility, type = visibilityType, min = 0, max = 1, nillable
coverageType (scope = local, base = string)
enumeration
See Table 3 for valid values
intensityType (scope = local, base = string)
enumeration
See Table 4 for valid values
additiveType (scope = local, base = string)
enumeration
“and” “or”
visibilityType (scope = local, base = string)
attribute = visibility-units, type = visibility-unitsType, default = “statute miles”
enumeration
See Table 7 for valid values
visibility-unitsType (scope = local, base = string)
Enumeration
“statute miles” “nautical miles”
qualifierType (scope = local, base = string)
pattern (comma delimited string)
See Table 6, for valid values
weather-typeType (scope = local, base = string)
enumeration
See Table 5, for valid values
humidityType (scope = local, element only)
attribute = type, type = typeType, default = “relative”
attribute = units, type = string, fixed = “percent”
attribute = time-layout, type = time-layoutType, use = required
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = valueType, min = 1, max = unbounded, nillable
typeType (scope = local, base = string)
enumeration
“relative” “max relative” “min relative”
valueType (scope = local, base = nonNegativeInteger)
attribute = upper-range, type = upper-rangeType, use = optional
attribute = lower-range, type = lower-rangeType, use = optional
maxInclusive = 100
upper-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
lower-rangeType (scope = local, base = nonNegativeInteger)
maxInclusive = 100
conditions-iconType (scope = local, element only)
attribute = type, type = typeType, default = “forecast-NWS”
attribute = time-layout, type = time-layoutType, use = required
sequence
element = name, type = string, min = 0, max = 1
element = icon-link, type = anyURI, min = 1, max = unbounded
NOTE: The priority algorithm for icon determination can be found in Table 8 - Table 11. In these tables, the nomenclature [20,30…90,100] indicates that one of the 2 digit values appear in the icon file name. For example, the rain icon could be ra20.jpg, ra30.jpg on up to ra100.jpg.
typeType (scope = local, base = string)
enumeration
“forecast-NWS”
categorical-definitions (scope = local to parameter element, element only)
element = categorical-table, type = categorical-tableType, min = 1, max = unbounded
categorical-table-elementType (scope = local, element only)
attribute = units, type = string, use = required
element = categorical-key, type = key, min = 1, max = 1
element = value, type = valueType, min = 1, max = unbounded
valueType (scope = local, text only)
attribute = category, type = string, use = required
conversion-definitions (scope = local to parameter element, element only)
element = categorical-table, type = categorical-tableType, min = 1, max = unbounded
conversion-table-elementType (scope = local, element only)
attribute = units, type = string, use = required
sequence
element = conversion-key, type = key, min = 1, max = 1
sequence
element = start-value, type = anyType, min = 1, max = unbounded
element = start-value, type = anyType, min = 1, max = unbounded
element = equivalence-value, type = string, min = 1, max = unbounded
wordedForecastType (scope = local, element only)
attribute = time-layout, type = time-layoutType, use = required
attribute = dataSource, type = string, use = optional
attribute = wordGenerator, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = text, type = string, min = 1, max = unbounded
water-state (scope = local, element only)
attribute = time-layout, type = time-layoutType, use = required
choice
sequence
element = waves, type = wavesType, min = 0, max = unbounded
element = swell, type = swellType, min = 0, max = unbounded
element = seas, type = seasType, min = 0, max = unbounded
element = ice-coverage, type = ice-coverageType, min = 0, max = unbounded
waveType ( scope = local, element only)
attribute = type, type = string, default = “wind”
attribute = units, type = string, fixed = “feet”
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
attribute = period, type = nonNegativeInteger, use = optional
attribute = steepness, type = nonNegativeInteger, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = nonNegativeInteger, min = 1, max = unbounded, nillable
swellType (scope = local, element only)
attribute = type, type = string, default = “none”
attribute = units, type = string, fixed = “feet”
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
attribute = period, type = nonNegativeInteger, use = optional
attribute = steepness, type = nonNegativeInteger, use = optional
sequence
element = name, type = string, min = 0, max = 1
sequence
element = value, type = nonNegativeInteger, min = 1, max = unbounded, nillable
element = direction, type = directionType, min = 0, max = unbounded, nillable
seasType (scope = local, element only)
attribute = type, type = string, default = “combined”
attribute = units, type = string, fixed = “feet”
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = nonNegativeInteger, min = 1, max = unbounded, nillable
ice-coverageType (scope = local, element only)
attribute = type, type = string, default = “total”
attribute = units, type = string, fixed = “percent”
attribute = categorical-table, type = string, use = optional
attribute = conversion-table, type = string, use = optional
sequence
element = name, type = string, min = 0, max = 1
element = value, type = nonNegativeInteger, min = 1, max = unbounded, nillable
latLonListType (scope = local, base = string)
pattern (space delimited string of latitude and longitude pairs)
Total Sky Cover Values (<value>) |
Text Equivalent (equivalent-value) |
Sky Cover <=
5 percent |
clear |
5 percent < Sky Cover <= 25 percent |
mostly clear |
25 percent < Sky Cover <= 50 percent |
partly cloudy |
50 percent < Sky Cover <= 87 percent |
mostly cloudy |
87 percent < Sky Cover <= 100percent |
cloudy |
Table 2: Sky Cover to Text Conversion (Source: NWSI 10-503).
Coverage Values (weather-coverage) |
|||
slight chance |
occasional |
scattered |
areas |
chance |
definitely |
numerous |
widespread |
likely |
isolated |
patchy |
none |
Table 3: Valid Values for Weather Coverage Attribute.
Intensity Values (weather-intensity) |
Intensity Values (weather-intensity) |
very light |
heavy |
light |
none |
moderate |
|
Table 4: Valid Values for Weather Intensity.
Weather Values (<value>) |
Weather Values (<value>) |
freezing drizzle |
thunderstorms |
freezing rain |
drizzle |
snow shower |
fog |
blowing snow |
haze |
blowing dust |
blowing sand |
rain shower |
ice crystals |
ice pellets |
volcanic ash |
frost |
water spouts |
rain |
freezing fog |
hail |
ice fog |
snow |
freezing spray |
smoke |
none |
Table 5: Valid Weather Values.
Weather Attributes (weather-qualifier) |
Weather Attributes (weather-qualifier) |
frequent lightning |
gusty winds |
heavy rain |
damaging winds |
small hail |
large hail |
outlying areas |
on bridges and overpasses |
on grassy areas |
or |
dry |
highest ranking |
include unconditionally |
tornado |
mixture |
none |
Table 6: Valid Weather Attributes.
Visibility Values (<visibility>) |
||
0 |
1 ˝ |
5 |
Ľ |
2 |
6 |
˝ |
2 ˝ |
6+ |
ľ |
3 |
none |
1 |
4 |
|
Table 7: Valid Visibility Values.
Weather Condition |
Index of icons found at: http://www.weather.gov/weather/images/fcicons/ |
IC |
no icon |
VA |
no icon |
WP |
no icon |
ZY |
no icon |
FR |
no icon |
T AND (sky > 60) |
ntsra[20,30…90,100].jpg |
T AND (sky <= 60) |
nscttsra[20,30…90,100].jpg |
(S OR SW) AND IP |
ip[20,30…90,100].jpg |
(R OR RW OR L) AND IP |
nraip[20,30…90,100].jpg |
(ZR OR ZL) AND (S OR
SW OR IP) |
mix[20,30…90,100].jpg |
(R OR RW OR L) AND (S
OR SW) |
nrasn[20,30…90,100].jpg |
S OR SW |
nsn[20,30…90,100].jpg |
ZR OR ZL |
fzra[20,30…90,100].jpg |
IP |
ip[20,30…90,100].jpg |
RW AND (sky > 60) |
nra[20,30…90,100].jpg |
RW AND (sky <= 60) |
hi_nshwrs[20,30…90,100].jpg |
L OR R |
nra[20,30…90,100].jpg |
BS |
blizzard.jpg |
BD OR BN |
du.jpg |
H |
no icon |
K |
fu.jpg |
F OR ZF OR IF |
nfg.jpg |
(wind > 25) |
nwind.jpg |
(sky > 94) |
novc.jpg |
(sky > 69) |
nbkn.jpg |
(sky > 31) |
nsct.jpg |
(sky > 6) |
nfew.jpg |
default |
nskc.jpg |
Table 8: NDFDgen Night Time Icon Algorithm (priority in ascending order).
Weather Condition |
Index of icons found at: http://www.weather.gov/weather/images/fcicons/ |
IC |
no icon |
VA |
no icon |
WP |
no icon |
ZY |
no icon |
FR |
no icon |
T AND (sky > 60) |
tsra[20,30…90,100].jpg |
T AND (sky <= 60) |
scttsra[20,30…90,100].jpg |
(S OR SW) AND IP |
ip[20,30…90,100].jpg |
(R OR RW OR L) AND IP |
raip[20,30…90,100].jpg |
(ZR OR ZL) AND (S OR
SW OR IP) |
mix[20,30…90,100].jpg |
(R OR RW OR L) AND (S
OR SW) |
rasn[20,30…90,100].jpg |
(S OR SW) |
sn[20,30…90,100].jpg |
(ZR OR ZL) |
fzra.jpg |
IP |
ip[20,30…90,100].jpg |
RW AND (sky > 60) |
shra[20,30…90,100].jpg |
RW AND (sky <= 60) |
hi_shwrs[20,30…90,100].jpg |
L OR R |
ra[20,30…90,100].jpg |
BS |
blizzard.jpg |
BD OR BN |
du.jpg |
H |
no icon |
K |
fu.jpg |
F OR ZF OR IF |
fg.jpg |
(temp < -40) |
cold.jpg |
(temp > 110) |
hot.jpg |
(wind > 25) |
wind.jpg |
(sky > 94) |
ovc.jpg |
(sky > 69) |
bkn.jpg |
(sky > 31) |
sct.jpg |
(sky > 6) |
few.jpg |
default |
skc.jpg |
Table 9: NDFDgen Day Time Icon Algorithm (priority in ascending order).
Weather Condition |
Index of icons found at: http://www.weather.gov/weather/images/fcicons/ |
IC |
no icon |
VA |
no icon |
WP |
no icon |
ZY |
no icon |
FR |
no icon |
T AND (PoP >= 10)
AND (sky > 60) |
ntsra[20,30…90,100].jpg |
T AND (PoP >= 10)
AND (sky <= 60) |
nscttsra[20,30…90,100].jpg |
IP AND (S OR SW) AND
(PoP >= 20) |
ip[20,30…90,100].jpg |
IP AND (R OR RW) AND
(PoP >= 20) |
nraip[20,30…90,100].jpg |
IP AND (ZL OR ZR) AND
(PoP >= 20) |
mix[20,30…90,100].jpg |
(R OR RW) AND (ZL OR
ZR) AND (PoP >= 20) |
fzra[20,30…90,100].jpg |
(ZR OR ZL) AND (S OR
SW) AND (PoP >= 20) |
mix[20,30…90,100].jpg |
ZL AND (PoP >= 20) |
fzra[20,30…90,100].jpg |
ZR AND (PoP >= 20) |
fzra[20,30…90,100].jpg |
(R OR RW) AND (S OR
SW) AND (PoP >= 20) |
nrasn[20,30…90,100].jpg |
S AND (PoP >= 20) |
nsn[20,30…90,100].jpg |
(S OR SW) AND (PoP
>= 20) AND (Int = '--') |
nsn[20,30…90,100].jpg |
SW AND (PoP >= 20)
AND (Int != '--') AND (sky <= 60) |
nsn[20,30…90,100].jpg |
SW AND (PoP >= 20)
AND (Int != '--') AND (sky > 60) |
nsn[20,30…90,100].jpg |
L AND (PoP >= 20) |
nra[20,30…90,100].jpg |
R AND (PoP >= 20) |
nra[20,30…90,100].jpg |
RW AND (PoP >= 20)
AND (sky <= 60) |
nra[20,30…90,100].jpg |
RW AND (PoP >= 20)
AND (sky > 60) |
hi_nshwrs[20,30…90,100].jpg |
IP AND (PoP >= 20) |
ip[20,30…90,100].jpg |
K |
fu.jpg |
ZF |
nfg.jpg |
IF |
nfg.jpg |
H |
no icon |
BN |
du.jpg |
BD |
du.jpg |
BS |
blizzard.jpg |
F |
nfg.jpg |
(wind >= 15) |
nwind.jpg |
(sky <= 101) |
novc.jpg |
(sky <= 90) |
nbkn.jpg |
(sky <70) |
nsct.jpg |
(sky <40 |
nfew.jpg |
(sky <= 15) |
nskc.jpg |
Table 10: NDFDgenByDay Night Time Icon Algorithm (format = ’12 hourly’) (priority in ascending order).
Weather Condition |
Index of icons found at: http://www.weather.gov/weather/images/fcicons/ |
IC |
no icon |
VA |
no icon |
WP |
no icon |
ZY |
no icon |
FR |
no icon |
T AND
(PoP >= 10) AND (sky > 60) |
tsra[20,30…90,100].jpg |
T AND
(PoP >= 10) AND (sky <= 60) |
scttsra[20,30…90,100].jpg |
IP AND (S
OR SW) AND (PoP >= 20) |
ip[20,30…90,100].jpg |
IP AND (R
OR RW) AND (PoP >= 20) |
raip[20,30…90,100].jpg |
IP AND
(ZL OR ZR) AND (PoP >= 20) |
mix[20,30…90,100].jpg |
(R OR RW)
AND (ZL OR ZR) AND (PoP >= 20) |
fzra[20,30…90,100].jpg |
(ZR OR
ZL) AND (S OR SW) AND (PoP >= 20) |
mix[20,30…90,100].jpg |
ZL AND
(PoP >= 20) |
fzra[20,30…90,100].jpg |
ZR AND
(PoP >= 20) |
fzra[20,30…90,100].jpg |
(R OR RW)
AND (S OR SW) AND (PoP >= 20) |
rasn[20,30…90,100].jpg |
S AND
(PoP >= 20) |
sn[20,30…90,100].jpg |
(S OR SW)
AND (PoP >= 20) AND (Int = '--') |
sn[20,30…90,100].jpg |
SW AND
(PoP >= 20) AND (Int != '--') AND (sky <= 60) |
sn[20,30…90,100].jpg |
SW AND
(PoP >= 20) AND (Int != '--') AND (sky > 60) |
sn[20,30…90,100].jpg |
L AND
(PoP >= 20) |
ra[20,30…90,100].jpg |
R AND
(PoP >= 20) |
ra[20,30…90,100].jpg |
RW AND
(PoP >= 20) AND (sky <= 60) |
shra[20,30…90,100].jpg |
RW AND
(PoP >= 20) AND (sky > 60) |
hi_shwrs[20,30…90,100].jpg |
IP AND
(PoP >= 20) |
ip[20,30…90,100].jpg |
K |
fu.jpg |
ZF |
fg.jpg |
IF |
fg.jpg |
H |
no icon |
BN |
du.jpg |
BD |
du.jpg |
BS |
blizzard.jpg |
F |
fg.jpg |
(wind
>= 15) |
wind.jpg |
(MaxT
< 32) |
cold.jpg |
(MaxT
> 95) |
hot.jpg |
(sky
<= 101) |
ovc.jpg |
(sky
<= 90) |
bkn.jpg |
(sky
<70) |
sct.jpg |
(sky
<40 |
few.jpg |
(sky
<= 15) |
skc.jpg |
Table 11: NDFDgenByDay Day Time Icon Algorithm (format = ’12 hourly’ or ’24 hourly) (priority in ascending order).
Weather Condition |
Weather Summary Phrase |
IC |
if $coverage
= "patchy" OR "areas" --> "$coverage Ice Crystals"
else --> "Ice Crystals" |
VA |
Volcanic
Ash |
WP |
Water
Spout |
ZY |
Freezing
Spray |
FR |
if $coverage
= "patchy" OR "areas" --> "$coverage Frost"
else --> "Frost" |
T AND
(PoP >= 10) AND (sky > 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance Thunderstorms"
else if $coverage = "likely" --> "Thunderstorms
Likely" else --> "Thunderstorms" OR if qualifier = "Damaging
Winds" OR qualifier = "Large Hail" OR qualifier = "Tornados"
--> "Severe Tstms" |
T AND
(PoP >= 10) AND (sky <= 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Thunderstorms" else if $coverage = "likely" -->
"Thunderstorms Likely" else --> "Thunderstorms" OR if qualifier = "Damaging
Winds" OR qualifier = "Large Hail" OR qualifier = "Tornados"
--> "Severe Tstms" |
IP AND (S
OR SW) AND (PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Snow/Sleet" else if $coverage = "likely" -->
"Snow/Sleet Likely" else --> "Snow/Sleet" |
IP AND (R
OR RW) AND (PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Rain/Sleet" else if $coverage = "likely" -->
"Rain/Sleet Likely" else --> "Rain/Sleet" |
IP AND
(ZL OR ZR) AND (PoP >= 20) |
Wintry
Mix |
(R OR RW)
AND (ZL OR ZR) AND (PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Rain/Freezing Rain" else if $coverage = "likely" -->
"Rain/Freezing Rain Likely" else --> "Rain/Freezing
Rain" |
(ZR OR
ZL) AND (S OR SW) AND (PoP >= 20) |
Wintry
Mix |
ZL AND
(PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Freezing Drizzle" else if $coverage = "likely" --> "Freezing
Drizzle Likely" else --> "Freezing Drizzle" |
ZR AND
(PoP >= 20) |
if
coverage = "chance" OR "slight chance" -->
"Chance Freezing Rain" else if coverage = "likely" -->
"Freezing Rain Likely" else --> "Freezing Rain" |
(R OR RW)
AND (S OR SW) AND (PoP >= 20) |
if
coverage = "chance" OR "slight chance" -->
"Chance Rain/Snow" else if coverage = "likely" -->
"Rain/Snow Likely" else --> "Rain/Snow" |
S AND
(PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Snow" else if $coverage = "likely" --> "Snow
Likely" else --> "Snow"
OR if qualifier = "heavy" --> "Heavy Snow" |
(S OR SW)
AND (PoP >= 20) AND (Int = '--') |
if $coverage
= "chance" OR "slight chance" --> "Chance
Flurries" else if $coverage = "likely" --> "Flurries
Likely" else --> "Flurries" |
SW AND
(PoP >= 20) AND (Int != '--') AND (sky <= 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance Snow
Showers" else if $coverage = "likely" --> "Snow
Showers Likely" else --> "Snow Showers" |
SW AND
(PoP >= 20) AND (Int != '--') AND (sky > 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance Snow
Showers" else if $coverage = "likely" --> "Snow
Showers Likely" else --> "Snow Showers" |
L AND
(PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Drizzle" else if $coverage = "likely" --> "Drizzle
Likely" else --> "Drizzle" |
R AND
(PoP >= 20) |
if $coverage
= "chance" OR "slight chance" --> "Chance
Rain" else if $coverage = "likely" --> "Rain
Likely" else --> "Rain"
OR if qualifier = "heavy" --> "Heavy Rain" |
RW AND
(PoP >= 20) AND (sky <= 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance Rain
Showers" else if $coverage = "likely" --> "Rain
Showers Likely" else --> "Rain Showers" |
RW AND
(PoP >= 20) AND (sky > 60) |
if $coverage
= "chance" OR "slight chance" --> "Chance Rain
Showers" else if $coverage = "likely" --> "Rain
Showers Likely" else --> "Rain Showers" |
IP AND
(PoP >= 20) |
Sleet |
K |
if $coverage
= "patchy" OR "areas" --> "$coverage Smoke"
else --> "Smoke" |
ZF |
if $coverage
= "patchy" OR "areas" --> "$coverage Freezing
Fog" else --> "Freezing
Fog" |
IF |
if $coverage
= "patchy" OR "areas" --> "$coverage Ice
Fog" else --> "Ice
Fog" |
H |
if $coverage
= "patchy" OR "areas" --> "$coverage Haze"
else --> "Haze" |
BN |
Blowing
Sand |
BD |
Blowing
Dust |
BS |
Blowing
Snow |
F |
if
intensity = heavy --> "Dense Fog" else ( if $coverage =
"patchy" OR "areas" --> "$coverage Fog"
else --> "Fog") |
(wind
>= 15) |
if wind
speed > 25 mph --> "Windy" else if (wind speed > 15 AND
wind direction is between NE and NW AND the date is between 1 October and 1
April AND the maximum temperature is less than 32 -->
"Blustery") else if (wind speed > 15 --> "Breezy") |
(MaxT
< 32) |
Cold |
(MaxT
> 95) |
Hot |
(sky
<= 101) |
Cloudy |
(sky
<= 90) |
Mostly
Cloudy |
(sky
<70) |
Partly
Cloudy |
(sky
<40) |
Mostly
Sunny |
(sky
<= 15) |
Sunny |
Cloud
Category change > 2 |
Increasing Clouds |
Cloud
Category change > 2 AND max cloud is cloudy |
Becoming Cloudy |
Cloud
Category change < 3 |
Clearing |
Cloud
Category change < 3 AND time of change > 12 hours |
Gradual Clearing |
Cloud
Category change < 3 AND time of change > 12 hours AND late in forecast
period |
Clearing Late |
Cloud
Category change < 3 AND time of change < 12 hours |
Decreasing Clouds |
Cloud
Category change < 3 AND max cloud is clear |
Becoming Sunny |
Table 12: NDFDgenByDay Weather Summary Phrases (format = ’12 hourly’ or ’24 hourly’) (priority in ascending order).
Weather Condition |
Weather Summary Phrase |
(sky
<= 15) AND is nighttime |
Clear |
(sky <
40) AND is nighttime |
Mostly
Clear |
Table 13: NDFDgenByDay Weather Summary Phrases (format = ’12 hourly’) (priority in ascending order).