UNPKG

grib-js

Version:
760 lines (744 loc) 51.9 kB
// Work around older JS's w/out freeze() if(Object.freeze === undefined) { Object.freeze = function(x) { return x; } } // Attempt to lookup a value in the specified table. If the optional // throwIfNotFound is truthy throw an error if no match is found otherwise // return the original value. exports.lookup = function(table, value, throwIfNotFound) { const v = table[value]; if (!v) { if (throwIfNotFound) throw new Error("Value not found"); else return { name: "Not found", value }; } return v; } exports.tables = { // Code Table 0.0 Discipline: Object.freeze({ 0 : { name: 'Meteorological Products', value: 0 }, 1 : { name: 'Hydrological Products', value: 1 }, 2 : { name: 'Land Surface Products', value: 2 }, 3 : { name: 'Satellite Remote Sensing Products', value: 3 }, 4 : { name: 'Space Weather Products', value: 4 }, 10 : { name: 'Oceanographic Products ', value: 10 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 1.0 Center: Object.freeze({ 1 : { name: 'Melbourne (WMC)', value: 1 }, 2 : { name: 'Melbourne (WMC)', value: 2 }, 3 : { name: 'Melbourne (WMC)', value: 3 }, 67 : { name: 'Melbourne (RSMC)', value: 67 }, 4 : { name: 'Moscow (WMC)', value: 4 }, 5 : { name: 'Moscow (WMC)', value: 5 }, 6 : { name: 'Moscow (WMC)', value: 6 }, 76 : { name: 'Moscow (RSMC/RAFC)', value: 76 }, 7 : { name: 'US National Weather Service - NCEP (WMC)', value: 7 }, 8 : { name: 'US National Weather Service - NWSTG (WMC)', value: 8 }, 9 : { name: 'US National Weather Service - Other (WMC)', value: 9 }, 10 : { name: 'Cairo (RSMC/RAFC)', value: 10 }, 11 : { name: 'Cairo (RSMC/RAFC)', value: 11 }, 12 : { name: 'Dakar (RSMC/RAFC)', value: 12 }, 13 : { name: 'Dakar (RSMC/RAFC)', value: 13 }, 14 : { name: 'Nairobi (RSMC/RAFC)', value: 14 }, 15 : { name: 'Nairobi (RSMC/RAFC)', value: 15 }, 16 : { name: 'Casablanca (RSMC)', value: 16 }, 17 : { name: 'Tunis (RSMC)', value: 17 }, 18 : { name: 'Tunis-Casablanca (RSMC)', value: 18 }, 19 : { name: 'Tunis-Casablanca (RSMC)', value: 19 }, 20 : { name: 'Las Palmas (RAFC)', value: 20 }, 21 : { name: 'Algiers (RSMC)', value: 21 }, 22 : { name: 'ACMAD', value: 22 }, 23 : { name: 'Mozambique (NMC)', value: 23 }, 24 : { name: 'Pretoria (RSMC)', value: 24 }, 25 : { name: 'La Reunion (RSMC)', value: 25 }, 26 : { name: 'Khabarovsk (RSMC)', value: 26 }, 27 : { name: 'Khabarovsk (RSMC)', value: 27 }, 28 : { name: 'New Delhi (RSMC/RAFC)', value: 28 }, 29 : { name: 'New Delhi (RSMC/RAFC)', value: 29 }, 30 : { name: 'Novosibirsk (RSMC)', value: 30 }, 31 : { name: 'Novosibirsk (RSMC)', value: 31 }, 32 : { name: 'Tashkent (RSMC)', value: 32 }, 33 : { name: 'Jeddah (RSMC)', value: 33 }, 34 : { name: 'Tokyo (RSMC), Japanese Meteorological Agency', value: 34 }, 35 : { name: 'Tokyo (RSMC), Japanese Meteorological Agency', value: 35 }, 36 : { name: 'Bankok', value: 36 }, 37 : { name: 'Ulan Bator', value: 37 }, 38 : { name: 'Beijing (RSMC)', value: 38 }, 39 : { name: 'Beijing (RSMC)', value: 39 }, 40 : { name: 'Seoul', value: 40 }, 41 : { name: 'Buenos Aires (RSMC/RAFC)', value: 41 }, 42 : { name: 'Buenos Aires (RSMC/RAFC)', value: 42 }, 43 : { name: 'Brasilia (RSMC/RAFC)', value: 43 }, 44 : { name: 'Brasilia (RSMC/RAFC)', value: 44 }, 45 : { name: 'Santiago', value: 45 }, 46 : { name: 'Brazilian Space Agency - INPE', value: 46 }, 47 : { name: 'Columbia (NMC)', value: 47 }, 48 : { name: 'Ecuador (NMC)', value: 48 }, 49 : { name: 'Peru (NMC)', value: 49 }, 50 : { name: 'Venezuela (NMC)', value: 50 }, 51 : { name: 'Miami (RSMC/RAFC)', value: 51 }, 52 : { name: 'Miami (RSMC), National Hurricane Center', value: 52 }, 53 : { name: 'Canadian Meteorological Service - Montreal (RSMC)', value: 53 }, 54 : { name: 'Canadian Meteorological Service - Montreal (RSMC)', value: 54 }, 55 : { name: 'San Francisco', value: 55 }, 56 : { name: 'ARINC Center', value: 56 }, 57 : { name: 'US Air Force - Air Force Global Weather Center', value: 57 }, 58 : { name: 'Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA', value: 58 }, 59 : { name: 'The NOAA Forecast Systems Lab, Boulder, CO, USA', value: 59 }, 60 : { name: 'National Center for Atmospheric Research (NCAR), Boulder, CO', value: 60 }, 61 : { name: 'Service ARGOS - Landover, MD, USA', value: 61 }, 62 : { name: 'US Naval Oceanographic Office', value: 62 }, 63 : { name: 'International Research Institude for Climate and Society', value: 63 }, 64 : { name: 'Honolulu', value: 64 }, 65 : { name: 'Darwin (RSMC)', value: 65 }, 66 : { name: 'Darwin (RSMC)', value: 66 }, 69 : { name: 'Wellington (RSMC/RAFC)', value: 69 }, 70 : { name: 'Wellington (RSMC/RAFC)', value: 70 }, 71 : { name: 'Nadi (RSMC)', value: 71 }, 72 : { name: 'Singapore', value: 72 }, 73 : { name: 'Malaysia (NMC)', value: 73 }, 74 : { name: 'U.K. Met Office - Exeter (RSMC)', value: 74 }, 75 : { name: 'U.K. Met Office - Exeter (RSMC)', value: 75 }, 78 : { name: 'Offenbach (RSMC)', value: 78 }, 79 : { name: 'Offenbach (RSMC)', value: 79 }, 80 : { name: 'Rome (RSMC)', value: 80 }, 81 : { name: 'Rome (RSMC)', value: 81 }, 82 : { name: 'Norrkoping', value: 82 }, 83 : { name: 'Norrkoping', value: 83 }, 84 : { name: 'French Weather Service - Toulouse', value: 84 }, 85 : { name: 'French Weather Service - Toulouse', value: 85 }, 86 : { name: 'Helsinki', value: 86 }, 87 : { name: 'Belgrade', value: 87 }, 88 : { name: 'Oslo', value: 88 }, 89 : { name: 'Prague', value: 89 }, 90 : { name: 'Episkopi', value: 90 }, 91 : { name: 'Ankara', value: 91 }, 92 : { name: 'Frankfurt/Main (RAFC)', value: 92 }, 93 : { name: 'London (WAFC)', value: 93 }, 94 : { name: 'Copenhagen', value: 94 }, 95 : { name: 'Rota', value: 95 }, 96 : { name: 'Athens', value: 96 }, 97 : { name: 'European Space Agency (ESA)', value: 97 }, 98 : { name: 'European Center for Medium-Range Weather Forecasts (RSMC)', value: 98 }, 99 : { name: 'De Bilt, Netherlands', value: 99 }, 100: { name: 'Brazzaville', value: 100 }, 101: { name: 'Abidjan', value: 101 }, 102: { name: 'Libyan Arab Jamahiriya (NMC)', value: 102 }, 103: { name: 'Madagascar (NMC)', value: 103 }, 104: { name: 'Mauritius (NMC)', value: 104 }, 105: { name: 'Niger (NMC)', value: 105 }, 106: { name: 'Seychelles (NMC)', value: 106 }, 107: { name: 'Uganda (NMC)', value: 107 }, 108: { name: 'United Republic of Tanzania (NMC)', value: 108 }, 109: { name: 'Zimbabwe (NMC)', value: 109 }, 110: { name: 'Hong-Kong', value: 110 }, 111: { name: 'Afghanistan (NMC)', value: 111 }, 112: { name: 'Bahrain (NMC)', value: 112 }, 113: { name: 'Bangladesh (NMC)', value: 113 }, 114: { name: 'Bhutan (NMC)', value: 114 }, 115: { name: 'Cambodia (NMC)', value: 115 }, 116: { name: 'Democratic People\'s Republic of Korea (NMC)', value: 116 }, 117: { name: 'Islamic Republic of Iran (NMC)', value: 117 }, 118: { name: 'Iraq (NMC)', value: 118 }, 119: { name: 'Kazakhstan (NMC)', value: 119 }, 120: { name: 'Kuwait (NMC)', value: 120 }, 121: { name: 'Kyrgyz Republic (NMC)', value: 121 }, 122: { name: 'Lao People\'s Democratic Republic (NMC)', value: 122 }, 123: { name: 'Macao, China', value: 123 }, 124: { name: 'Maldives (NMC)', value: 124 }, 125: { name: 'Myanmar (NMC)', value: 125 }, 126: { name: 'Nepal (NMC)', value: 126 }, 127: { name: 'Oman (NMC)', value: 127 }, 128: { name: 'Pakistan (NMC)', value: 128 }, 129: { name: 'Qatar (NMC)', value: 129 }, 130: { name: 'Yemen (NMC)', value: 130 }, 131: { name: 'Sri Lanka (NMC)', value: 131 }, 132: { name: 'Tajikistan (NMC)', value: 132 }, 133: { name: 'Turkmenistan (NMC)', value: 133 }, 134: { name: 'United Arab Emirates (NMC)', value: 134 }, 135: { name: 'Uzbekistan (NMC)', value: 135 }, 136: { name: 'Viet Nam (NMC)', value: 136 }, 140: { name: 'Bolivia (NMC)', value: 140 }, 141: { name: 'Guyana (NMC)', value: 141 }, 142: { name: 'Paraguay (NMC)', value: 142 }, 143: { name: 'Suriname (NMC)', value: 143 }, 144: { name: 'Uruguay (NMC)', value: 144 }, 145: { name: 'French Guyana', value: 145 }, 146: { name: 'Brazilian Navy Hydrographic Center', value: 146 }, 147: { name: 'National Commission on Space Activities - Argentina', value: 147 }, 148: { name: 'Brazilian Department of Airspace Control - DECEA', value: 148 }, 150: { name: 'Antigua and Barbuda (NMC)', value: 150 }, 151: { name: 'Bahamas (NMC)', value: 151 }, 152: { name: 'Barbados (NMC)', value: 152 }, 153: { name: 'Belize (NMC)', value: 153 }, 154: { name: 'British Caribbean Territories Center', value: 154 }, 155: { name: 'San Jose', value: 155 }, 156: { name: 'Cuba (NMC)', value: 156 }, 157: { name: 'Dominica (NMC)', value: 157 }, 158: { name: 'Dominican Republic (NMC)', value: 158 }, 159: { name: 'El Salvador (NMC)', value: 159 }, 160: { name: 'US NOAA/NESDIS', value: 160 }, 161: { name: 'US NOAA Office of Oceanic and Atmospheric Research', value: 161 }, 162: { name: 'Guatemala (NMC)', value: 162 }, 163: { name: 'Haiti (NMC)', value: 163 }, 164: { name: 'Honduras (NMC)', value: 164 }, 165: { name: 'Jamaica (NMC)', value: 165 }, 166: { name: 'Mexico City', value: 166 }, 167: { name: 'Netherlands Antilles and Aruba (NMC)', value: 167 }, 168: { name: 'Nicaragua (NMC)', value: 168 }, 169: { name: 'Panama (NMC)', value: 169 }, 170: { name: 'Saint Lucia (NMC)', value: 170 }, 171: { name: 'Trinidad and Tobago (NMC)', value: 171 }, 172: { name: 'French Departments in RA IV', value: 172 }, 173: { name: 'US National Aeronautics and Space Administration (NASA)', value: 173 }, 174: { name: 'Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - Canada', value: 174 }, 176: { name: 'US Cooperative Institude for Meteorological Satellite Studies', value: 176 }, 190: { name: 'Cook Islands (NMC)', value: 190 }, 191: { name: 'French Polynesia (NMC)', value: 191 }, 192: { name: 'Tonga (NMC)', value: 192 }, 193: { name: 'Vanuatu (NMC)', value: 193 }, 194: { name: 'Brunei (NMC)', value: 194 }, 195: { name: 'Indonesia (NMC)', value: 195 }, 196: { name: 'Kiribati (NMC)', value: 196 }, 197: { name: 'Federated States of Micronesia (NMC)', value: 197 }, 198: { name: 'New Caledonia (NMC)', value: 198 }, 199: { name: 'Niue', value: 199 }, 200: { name: 'Papua New Guinea (NMC)', value: 200 }, 201: { name: 'Philippines (NMC)', value: 201 }, 202: { name: 'Samoa (NMC)', value: 202 }, 203: { name: 'Solomon Islands (NMC)', value: 203 }, 204: { name: 'Narional Institude of Water and Atmospheric Research - New Zealand', value: 204 }, 210: { name: 'Frascati (ESA/ESRIN)', value: 210 }, 211: { name: 'Lanion', value: 211 }, 212: { name: 'Lisbon', value: 212 }, 213: { name: 'Reykjavik', value: 213 }, 214: { name: 'Madrid', value: 214 }, 215: { name: 'Zurich', value: 215 }, 216: { name: 'Service ARGOS - Toulouse', value: 216 }, 217: { name: 'Bratislava', value: 217 }, 218: { name: 'Budapest', value: 218 }, 219: { name: 'Ljubljana', value: 219 }, 220: { name: 'Warsaw', value: 220 }, 221: { name: 'Zagreb', value: 221 }, 222: { name: 'Albania (NMC)', value: 222 }, 223: { name: 'Armenia (NMC)', value: 223 }, 224: { name: 'Austria (NMC)', value: 224 }, 225: { name: 'Azerbaijan (NMC)', value: 225 }, 226: { name: 'Belarus (NMC)', value: 226 }, 227: { name: 'Belgium (NMC)', value: 227 }, 228: { name: 'Bosnia and Herzegovina (NMC)', value: 228 }, 229: { name: 'Bulgaria (NMC)', value: 229 }, 230: { name: 'Cyprus (NMC)', value: 230 }, 231: { name: 'Estonia (NMC)', value: 231 }, 232: { name: 'Georgia (NMC)', value: 232 }, 233: { name: 'Dublin', value: 233 }, 234: { name: 'Israel (NMC)', value: 234 }, 235: { name: 'Jordan (NMC)', value: 235 }, 236: { name: 'Latvia (NMC)', value: 236 }, 237: { name: 'Lebanon (NMC)', value: 237 }, 238: { name: 'Lithuania (NMC)', value: 238 }, 239: { name: 'Luxembourg', value: 239 }, 240: { name: 'Malta (NMC)', value: 240 }, 241: { name: 'Monaco', value: 241 }, 242: { name: 'Romania (NMC)', value: 242 }, 243: { name: 'Syrian Arab Republic (NMC)', value: 243 }, 244: { name: 'The former Yugoslav Republic of Macedonia (NMC)', value: 244 }, 245: { name: 'Ukraine (NMC)', value: 245 }, 246: { name: 'Republic of Moldova (NMC)', value: 246 }, 247: { name: 'Operational Programme for the Exchange of Weather RAdar Information (OPERA) - EUMETNET', value: 247 }, 250: { name: 'COnsortium for Small scale MOdelling (COSMO)', value: 250 }, 254: { name: 'EUMETSAT Operations Center', value: 254 }, 255: { name: 'Missing Value', value: 255 }, }), // Code Table 1.2 ReferenceTimeSignificance: Object.freeze({ 0 : { name: 'Analysis', value: 0 }, 1 : { name: 'Start of Forecast', value: 1 }, 2 : { name: 'Verification time of forecast', value: 2 }, 3 : { name: 'Observations time', value: 3 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 1.3 ProductionStatus: Object.freeze({ 0 : { name: 'Operational products', value: 0 }, 1 : { name: 'Operational test products', value: 1 }, 2 : { name: 'Research products', value: 2 }, 3 : { name: 'Re-analysis', value: 3 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 1.4 Type: Object.freeze({ 0 : { name: 'Analysis products', value: 0 }, 1 : { name: 'Forecast products', value: 1 }, 2 : { name: 'Analysis and forecast products', value: 2 }, 3 : { name: 'Control forecast products', value: 3 }, 4 : { name: 'Perturbed forecast products', value: 4 }, 5 : { name: 'Control and perturbed forecast products', value: 5 }, 6 : { name: 'Processed satellite observations', value: 6 }, 7 : { name: 'Processed radar observations', value: 7 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 3.2 EarthShape: Object.freeze({ 0 : { name: 'Earth assumed spherical with radius = 6,367,470.0 m', value: 0 }, 1 : { name: 'Earth assumed spherical with radius specified by data producer', value: 1 }, 2 : { name: 'Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6,378,160.0 m, minor axis = 6,356,775.0 m, f = 1/297.0)', value: 2 }, 3 : { name: 'Earth assumed oblate spheroid with major and minor axes specified by data producer', value: 3 }, 4 : { name: 'Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6,378,137.0 m, minor axis = 6,356,752.314 m, f = 1/298.257222101)', value: 4 }, 5 : { name: 'Earth assumed represented by WGS84 (as used by ICAO since 1998)', value: 5 }, 6 : { name: 'Earth assumed spherical with radius of 6,371,229.0 m', value: 6 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 4.0 ProductDefinition: Object.freeze({ 0 : { name: 'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time.', value: 0 }, }), // Code Table 4.2 Meteorological products MeteorologicalProducts: Object.freeze({ 0 : { name: 'Temperature', value: 0 }, 1 : { name: 'Moisture', value: 1 }, 2 : { name: 'Momentum', value: 2 }, 3 : { name: 'Mass', value: 3 }, 4 : { name: 'Short wave radiation', value: 4 }, 5 : { name: 'Long wave radiation', value: 5 }, 6 : { name: 'Cloud', value: 6 }, 7 : { name: 'Thermodynamic stability indices', value: 7 }, 13 : { name: 'Aerosols', value: 13 }, 14 : { name: 'Trace gases (e.g. Ozone, CO2)', value: 14 }, 15 : { name: 'Radar', value: 15 }, 16 : { name: 'Forecast Radar Imagery', value: 16 }, 17 : { name: 'Electrodynamics', value: 17 }, 18 : { name: 'Nuclear/radiology', value: 18 }, 19 : { name: ' Physical atmospheric Properties', value: 19 }, 20 : { name: 'Atmospheric Chemical Constituents', value: 20 }, 190: { name: 'CCITT IA5 string', value: 190 }, 191: { name: 'Miscellaneous', value: 191 }, 192: { name: 'Covariance', value: 192 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 4.2-0.2 Discipline 0 (Meteorological) Category 2 (Momentum) MeteorologicalProductsMomentumParameter: Object.freeze({ 0 : { name: 'Wind Direction (from which blowing)', value: 0, unit: '°', abbrev: 'WDIR' }, 1 : { name: 'Wind Speed', value: 1, unit: 'm s-1', abbrev: 'WIND' }, 2 : { name: 'U-Component of Wind', value: 2, unit: 'm s-1', abbrev: 'UGRD' }, 3 : { name: 'V-Component of Wind', value: 3, unit:'m s-1', abbrev: 'VGRD ' }, 4 : { name: 'Stream Function', value: 4, unit: 'm2 s-1', abbrev: 'STRM' }, 5 : { name: 'Velocity Potential', value: 5, unit: 'm2 s-1', abbrev: 'VPOT' }, 6 : { name: 'Montgomery Stream Function', value: 6, unit:'m2 s-2', abbrev: 'MNTSF ' }, 7 : { name: 'Sigma Coordinate Vertical Velocity', value: 7, unit: 's-1', abbrev: 'SGCVV' }, 8 : { name: 'Vertical Velocity (Pressure)', value: 8, unit: 'Pa s-1', abbrev: 'VVEL' }, 9 : { name: 'Vertical Velocity (Geometric)', value: 9, unit:'m s-1', abbrev: 'DZDT' }, 10 : { name: 'Absolute Vorticity', value: 10, unit: 's-1', abbrev: 'ABSV' }, 11 : { name: 'Absolute Divergence', value: 11, unit: 's-1', abbrev: 'ABSD' }, 12 : { name: 'Relative Vorticity', value: 12, unit: 's-1', abbrev: 'RELV' }, 13 : { name: 'Relative Divergence', value: 13, unit: 's-1', abbrev: 'RELD' }, 14 : { name: 'Potential Vorticity', value: 14, unit: 'K m2 kg-1 s-1', abbrev: 'PVORT' }, 15 : { name: 'Vertical U-Component Shear', value: 15, unit: 's-1', abbrev: 'VUCSH' }, 16 : { name: 'Vertical V-Component Shear', value: 16, unit: 's-1', abbrev: 'VVCSH' }, 17 : { name: 'Momentum Flux, U-Component', value: 17, unit:'N m-2', abbrev: 'UFLX' }, 18 : { name: 'Momentum Flux, V-Component', value: 18, unit:'N m-2', abbrev: 'VFLX' }, 19 : { name: 'Wind Mixing Energy', value: 19, unit: 'J', abbrev: 'WMIXE' }, 20 : { name: 'Boundary Layer Dissipation', value: 20, unit: 'W m-2', abbrev: 'BLYDP' }, 22 : { name: 'Wind Speed (Gust)', value: 22, unit: 'm s-1', abbrev: 'GUST' }, 23 : { name: 'U-Component of Wind (Gust)', value: 23, unit:'m s-1', abbrev: 'UGUST' }, 24 : { name: 'V-Component of Wind (Gust)', value: 24, unit:'m s-1', abbrev: 'VGUST' }, 25 : { name: 'Vertical Speed Shear', value: 25, unit:'s-1', abbrev: 'VWSH' }, 26 : { name: 'Horizontal Momentum Flux', value: 26, unit:'N m-2', abbrev: 'MFLX' }, 27 : { name: 'U-Component Storm Motion', value: 27, unit:'m s-1', abbrev: 'USTM' }, 28 : { name: 'V-Component Storm Motion', value: 28, unit:'m s-1', abbrev: 'VSTM' }, 29 : { name: 'Drag Coefficient', value: 29, unit:'Numeric', abbrev: 'CD' }, 30 : { name: 'Frictional Velocity', value: 30, unit:'m s-1', abbrev: 'FRICV' }, 31 : { name: 'Turbulent Diffusion Coefficient for Momentum', value: 31, unit:'m2 s-1', abbrev: 'TDCMOM' }, 32 : { name: 'Eta Coordinate Vertical Velocity', value: 32, unit:'s-1', abbrev: 'ETACVV' }, 33 : { name: 'Wind Fetch', value: 33, unit:'m', abbrev: 'WINDF' }, 34 : { name: 'Normal Wind Component', value: 34, unit: 'm s-1', abbrev: 'NWIND' }, 35 : { name: 'Tangential Wind Component', value: 35, unit:'m s-1', abbrev: 'TWIND' }, 36 : { name: 'Amplitude Function for Rossby Wave Envelope for Meridional Wind', value: 36, unit:'m s-1', abbrev: 'AFRWE' }, 37 : { name: 'Northward Turbulent Surface Stress', value: 37, unit:'N m-2 s', abbrev: 'NTSS' }, 38 : { name: 'Eastward Turbulent Surface Stress', value: 38, unit:'N m-2 s', abbrev: 'ETSS' }, 39 : { name: 'Eastward Wind Tendency Due to Parameterizations', value: 39, unit:'m s-2', abbrev: 'EWTPARM' }, 40 : { name: 'Northward Wind Tendency Due to Parameterizations', value: 40, unit:'m s-2', abbrev: 'NWTPARM' }, 41 : { name: 'U-Component of Geostrophic Wind', value: 41, unit:'m s-1', abbrev: 'UGWIND' }, 42 : { name: 'V-Component of Geostrophic Wind', value: 42, unit:'m s-1', abbrev: 'VGWIND' }, 43 : { name: 'Geostrophic Wind Direction', value: 43, unit:'°', abbrev: 'GEOWD' }, 44 : { name: 'Geostrophic Wind Speed', value: 44, unit:'m s-1', abbrev: 'GEOWS' }, 45 : { name: 'Unbalanced Component of Divergence', value: 45, unit:'s-1', abbrev: 'UNDIV' }, 46 : { name: 'Vorticity Advection', value: 46, unit:'s-2', abbrev: 'VORTADV' }, 192: { name: 'Vertical Speed Shear', value: 192, unit:'s-1', abbrev: 'VWSH' }, 193: { name: 'Horizontal Momentum Flux', value: 193, unit:'N m-2', abbrev: 'MFLX' }, 194: { name: 'U-Component Storm Motion', value: 194, unit:'m s-1', abbrev: 'USTM' }, 195: { name: 'V-Component Storm Motion', value: 195, unit:'m s-1', abbrev: 'VSTM' }, 196: { name: 'Drag Coefficient', value: 196, unit: 'non-dim', abbrev: 'CD' }, 197: { name: 'Frictional Velocity', value: 197, abbrev: 'm s-1', abbrev: 'FRICV' }, 198: { name: 'Latitude of U Wind Component of Velocity', value: 198, unit:'deg', abbrev: 'LAUV' }, 199: { name: 'Longitude of U Wind Component of Velocity', value: 199, unit:'deg', abbrev: 'LOUV' }, 200: { name: 'Latitude of V Wind Component of Velocity', value: 200, unit:'deg', abbrev: 'LAVV' }, 201: { name: 'Longitude of V Wind Component of Velocity', value: 201, unit:'deg', abbrev: 'LOVV' }, 202: { name: 'Latitude of Presure Point', value: 202, unit:'deg', abbrev: 'LAPP' }, 203: { name: 'Longitude of Presure Point', value: 203, unit:'deg', abbrev: 'LOPP' }, 204: { name: 'Vertical Eddy Diffusivity Heat exchange', value: 204, unit:'m2 s-1', abbrev: 'VEDH' }, 205: { name: 'Covariance between Meridional and Zonal Components of the wind.', value: 205, unit:'m2 s-2', abbrev: 'COVMZ' }, 206: { name: 'Covariance between Temperature and Zonal Components of the wind.', value: 206, unit:'K*m s-1', abbrev: 'COVTZ' }, 207: { name: 'Covariance between Temperature and Meridional Components of the wind.', value: 207, unit:'K*m s-1', abbrev: 'COVTM' }, 208: { name: 'Vertical Diffusion Zonal Acceleration', value: 208, unit: 'm s-2', abbrev: 'VDFUA' }, 209: { name: 'Vertical Diffusion Meridional Acceleration', value: 209, unit: 'm s-2', abbrev: 'VDFVA' }, 210: { name: 'Gravity wave drag zonal acceleration', value: 210, unit: 'm s-2', abbrev: 'GWDU' }, 211: { name: 'Gravity wave drag meridional acceleration', value: 211, unit: 'm s-2', abbrev: 'GWDV' }, 212: { name: 'Convective zonal momentum mixing acceleration', value: 212, unit: 'm s-2', abbrev: 'CNVU' }, 213: { name: 'Convective meridional momentum mixing acceleration', value: 213, unit: 'm s-2', abbrev: 'CNVV' }, 214: { name: 'Tendency of vertical velocity', value: 214, unit:'m s-2', abbrev: 'WTEND' }, 215: { name: 'Omega (Dp/Dt) divide by density', value: 215, unit:'K', abbrev: 'OMGALF' }, 216: { name: 'Convective Gravity wave drag zonal acceleration', value: 216, unit: 'm s-2', abbrev: 'CNGWDU' }, 217: { name: 'Convective Gravity wave drag meridional acceleration', value: 217, unit: 'm s-2', abbrev: 'CNGWDV' }, 218: { name: 'Velocity Point Model Surface', value: 218, abbrev:'LMV' }, 219: { name: 'Potential Vorticity (Mass-Weighted)', value: 219, unit:'1/s/m', abbrev: 'PVMWW' }, 220: { name: 'Hourly Maximum of Upward Vertical Velocity in the lowest 400hPa', value: 220, unit:'m s-1', abbrev: 'MAXUVV' }, 221: { name: 'Hourly Maximum of Downward Vertical Velocity in the lowest 400hPa', value: 221, unit:'m s-1', abbrev: 'MAXDVV' }, 222: { name: 'U Component of Hourly Maximum 10m Wind Speed', value: 222, unit:'m s-1', abbrev: 'MAXUW' }, 223: { name: 'V Component of Hourly Maximum 10m Wind Speed', value: 223, unit:'m s-1', abbrev: 'MAXVW' }, 224: { name: 'Ventilation Rate', value: 224, unit:'m2 s-1', abbrev: 'VRATE' }, 225: { name: 'Transport Wind Speed', value: 225, unit:'m s-1', abbrev: 'TRWSPD' }, 226: { name: 'Transport Wind Direction', value: 226, unit:'Deg', abbrev: 'TRWDIR' }, 227: { name: 'Earliest Reasonable Arrival Time (10% exceedance)', value: 227, unit:'s', abbrev: 'TOA10' }, 228: { name: 'Most Likely Arrival Time (50% exceedance)', value: 228, unit:'s', abbrev: 'TOA50' }, 229: { name: 'Most Likely Departure Time (50% exceedance)', value: 229, unit:'s', abbrev: 'TOD50' }, 230: { name: 'Latest Reasonable Departure Time (90% exceedance)', value: 230, unit:'s', abbrev: 'TOD90' }, 231: { name: 'Tropical Wind Direction', value: 231, unit:'°', abbrev: 'TPWDIR' }, 232: { name: 'Tropical Wind Speed', value: 232, unit:'m s-1', abbrev: 'TPWSPD' }, 255: { name: 'Missing', value: 255 }, }), MeteorologicalProductsCloudsCategory: Object.freeze({ 0 : { value: 0, name: 'Cloud Ice', unit: 'kg m-2', abbrev: 'CICE' }, 1 : { value: 1, name: 'Total Cloud Cover', unit: '%', abbrev: 'TCDC' }, 2 : { value: 2, name: 'Convective Cloud Cover', unit: '%', abbrev: 'CDCON' }, 3 : { value: 3, name: 'Low Cloud Cover', unit: '%', abbrev: 'LCDC' }, 4 : { value: 4, name: 'Medium Cloud Cover', unit: '%', abbrev: 'MCDC' }, 5 : { value: 5, name: 'High Cloud Cover', unit: '%', abbrev: 'HCDC' }, 6 : { value: 6, name: 'Cloud Water', unit: 'kg m-2', abbrev: 'CWAT' }, 7 : { value: 7, name: 'Cloud Amount', unit: '%' , abbrev: 'CDCA' }, 8 : { value: 8, name: 'Cloud Type', unit: 'See Table 4.203', abbrev: 'CDCT' }, 9 : { value: 9, name: 'Thunderstorm Maximum Tops', unit: 'm', abbrev: 'TMAXT' }, 10 : { value: 10, name: 'Thunderstorm Coverage', unit: 'See Table 4.204', abbrev: 'THUNC' }, 11 : { value: 11, name: 'Cloud Base', unit: 'm', abbrev: 'CDCB' }, 12 : { value: 12, name: 'Cloud Top', unit: 'm', abbrev: 'CDCTOP' }, 13 : { value: 13, name: 'Ceiling', unit: 'm', abbrev: 'CEIL' }, 14 : { value: 14, name: 'Non-Convective Cloud Cover', unit: '%', abbrev: 'CDLYR' }, 15 : { value: 15, name: 'Cloud Work Function', unit: 'J kg-1', abbrev: 'CWORK' }, 16 : { value: 16, name: 'Convective Cloud Efficiency', unit: 'Proportion', abbrev: 'CUEFI' }, 17 : { value: 17, name: 'Total Condensate * - Parameter deprecated', unit: 'kg kg-1 ', abbrev: 'TCONDO' }, 18 : { value: 18, name: 'Total Column-Integrated Cloud Water * - Parameter deprecated', unit: 'kg m-2 ', abbrev: 'TCOLWO' }, 19 : { value: 19, name: 'Total Column-Integrated Cloud Ice * - Parameter deprecated', unit: 'kg m-2 ', abbrev: 'TCOLIO' }, 20 : { value: 20, name: 'Total Column-Integrated Condensate * - Parameter deprecated', unit: 'kg m-2 ', abbrev: 'TCOLC' }, 21 : { value: 21, name: 'Ice fraction of total condensate', unit: 'Proportion ', abbrev: 'FICE' }, 22 : { value: 22, name: 'Cloud Cover', unit: '%', abbrev: 'CDCC' }, 23 : { value: 23, name: 'Cloud Ice Mixing Ratio * - Parameter deprecated', unit: 'kg kg-1', abbrev: 'CDCIMR' }, 24 : { value: 24, name: 'Sunshine Numeric', abbrev: 'SUNS' }, 25 : { value: 25, name: 'Horizontal Extent of Cumulonimbus (CB)', unit: '%', abbrev: 'CBHE' }, 26 : { value: 26, name: 'Height of Convective Cloud Base', unit: 'm', abbrev: 'HCONCB' }, 27 : { value: 27, name: 'Height of Convective Cloud Top', unit: 'm', abbrev: 'HCONCT' }, 28 : { value: 28, name: 'Number Concentration of Cloud Droplets', unit: 'kg-1', abbrev: 'NCONCD' }, 29 : { value: 29, name: 'Number Concentration of Cloud Ice', unit: 'kg-1', abbrev: 'NCCICE' }, 30 : { value: 30, name: 'Number Density of Cloud Droplets', unit: 'm-3', abbrev: 'NDENCD' }, 31 : { value: 31, name: 'Number Density of Cloud Ice', unit: 'm-3', abbrev: 'NDCICE' }, 32 : { value: 32, name: 'Fraction of Cloud Cover', unit: 'Numeric', abbrev: 'FRACCC' }, 33 : { value: 33, name: 'Sunshine Duration', unit: 's', abbrev: 'SUNSD' }, 34 : { value: 34, name: 'Surface Long Wave Effective Total Cloudiness', unit: 'Numeric', abbrev: 'SLWTC' }, 35 : { value: 35, name: 'Surface Short Wave Effective Total Cloudiness', unit: 'Numeric', abbrev: 'SSWTC' }, 36 : { value: 36, name: 'Fraction of Stratiform Precipitation Cover', unit: 'Proportion', abbrev: 'FSTRPC' }, 37 : { value: 37, name: 'Fraction of Convective Precipitation Cover', unit: 'Proportion', abbrev: 'FCONPC' }, 38 : { value: 38, name: 'Mass Density of Cloud Droplets', unit: 'kg m-3', abbrev: 'MASSDCD' }, 39 : { value: 39, name: 'Mass Density of Cloud Ice', unit: 'kg m-3', abbrev: 'MASSDCI' }, 40 : { value: 40, name: 'Mass Density of Convective Cloud Water Droplets', unit: 'kg m-3', abbrev: 'MDCCWD' }, 47 : { value: 47, name: 'Volume Fraction of Cloud Water Droplets', unit: 'Numeric', abbrev: 'VFRCWD' }, 48 : { value: 48, name: 'Volume Fraction of Cloud Ice Particles', unit: 'Numeric', abbrev: 'VFRCICE' }, 49 : { value: 49, name: 'Volume Fraction of Cloud (Ice and/or Water)', unit: 'Numeric', abbrev: 'VFRCIW' }, 192: { value: 192, name: 'Non-Convective Cloud Cover', unit: '%', abbrev: 'CDLYR' }, 193: { value: 193, name: 'Cloud Work Function', unit: 'J kg-1', abbrev: 'CWORK' }, 194: { value: 194, name: 'Convective Cloud Efficiency', unit: 'non-dim', abbrev: 'CUEFI' }, 195: { value: 195, name: 'Total Condensate', unit: 'kg kg-1', abbrev: 'TCOND' }, 196: { value: 196, name: 'Total Column-Integrated Cloud Water', unit: 'kg m-2', abbrev: 'TCOLW' }, 197: { value: 197, name: 'Total Column-Integrated Cloud Ice', unit: 'kg m-2', abbrev: 'TCOLI' }, 198: { value: 198, name: 'Total Column-Integrated Condensate', unit: 'kg m-2', abbrev: 'TCOLC' }, 199: { value: 199, name: 'Ice fraction of total condensate', unit: 'non-dim', abbrev: 'FICE' }, 200: { value: 200, name: 'Convective Cloud Mass Flux', unit:'Pa s-1', abbrev: 'MFLUX' }, 201: { value: 201, name: 'Sunshine Duration', unit: 's', abbrev: 'SUNSD' }, 255: { value: 255, name: 'Missing' } }), // Code Table 4.3 Type of generating process GeneratingProcessType: Object.freeze({ 0 : { name: 'Analysis', value: 0 }, 1 : { name: 'Initialization', value: 1 }, 2 : { name: 'Forecast', value: 2 }, 3 : { name: 'Bias Corrected Forecast', value: 3 }, 4 : { name: 'Ensemble Forecast', value: 4 }, 5 : { name: 'Probability Forecast', value: 5 }, 6 : { name: 'Forecast Error', value: 6 }, 7 : { name: 'Analysis Error', value: 7 }, 8 : { name: 'Observation', value: 8 }, 9 : { name: 'Climatological', value: 9 }, 10 : { name: 'Probability-Weighted Forecast', value: 10 }, 11 : { name: 'Bias-Corrected Ensemble Forecast', value: 11 }, 12 : { name: 'Post-processed Analysis ', value: 12 }, 13 : { name: 'Post-processed Forecast', value: 13 }, 14 : { name: 'Nowcast', value: 14 }, 15 : { name: 'Hindcast', value: 15 }, 16 : { name: 'Physical Retrieval', value: 16 }, 17 : { name: 'Regression Analysis', value: 17 }, 18 : { name: 'Difference Between Two Forecasts', value: 18 }, 192: { name: 'Forecast Confidence Indicator', value: 192 }, 193: { name: 'Probability-matched Mean', value: 193 }, 194: { name: 'Neighborhood Probability', value: 194 }, 195: { name: 'Bias-Corrected and Downscaled Ensemble Forecast', value: 195 }, 196: { name: 'Perturbed Analysis for Ensemble Initialization', value: 196 }, 197: { name: 'Ensemble Agreement Scale Probability', value: 197 }, 198: { name: 'Post-Processed Deterministic-Expert-Weighted Forecast', value: 198 }, 199: { name: 'Ensemble Forecast Based on Counting', value: 199 }, 200: { name: 'Local Probability-matched Mean', value: 200 }, 255: { name: 'Missing', value: 255 }, }), // ON388 Table A (Generating Process or Model from Originating Center 7 (US-NWS, NCEP) GeneratingProcessOrModelFromCenter7: Object.freeze({ 2 : { name: 'Ultra Violet Index Model', value: 2 }, 3 : { name: 'NCEP/ARL Transport and Dispersion Model', value: 3 }, 4 : { name: 'NCEP/ARL Smoke Model', value: 4 }, 5 : { name: 'Satellite Derived Precipitation and temperatures, from IR ', value: 5 }, 6 : { name: 'NCEP/ARL Dust Model', value: 6 }, 10 : { name: 'Global Wind-Wave Forecast Model', value: 10 }, 11 : { name: 'Global Multi-Grid Wave Model (Static Grids)', value: 11 }, 12 : { name: 'Probabilistic Storm Surge (P-Surge)', value: 12 }, 13 : { name: 'Hurricane Multi-Grid Wave Model', value: 13 }, 14 : { name: 'Extra-tropical Storm Surge Atlantic Domain', value: 14 }, 15 : { name: 'Nearshore Wave Prediction System (NWPS)', value: 15 }, 16 : { name: 'Extra-Tropical Storm Surge (ETSS)', value: 16 }, 17 : { name: 'Extra-tropical Storm Surge Pacific Domain', value: 17 }, 18 : { name: 'Probabilistic Extra-Tropical Storm Surge (P-ETSS)', value: 18 }, 19 : { name: 'Limited-area Fine Mesh (LFM) analysis', value: 19 }, 20 : { name: 'Extra-tropical Storm Surge Micronesia Domain', value: 20 }, 25 : { name: 'Snow Cover Analysis', value: 25 }, 30 : { name: 'Forecaster generated field', value: 30 }, 31 : { name: 'Value added post processed field', value: 31 }, 42 : { name: 'Global Optimum Interpolation Analysis (GOI) from GFS model', value: 42 }, 43 : { name: 'Global Optimum Interpolation Analysis (GOI) from "Final" run ', value: 43 }, 44 : { name: 'Sea Surface Temperature Analysis', value: 44 }, 45 : { name: 'Coastal Ocean Circulation Model', value: 45 }, 46 : { name: 'HYCOM - Global', value: 46 }, 47 : { name: 'HYCOM - North Pacific basin', value: 47 }, 48 : { name: 'HYCOM - North Atlantic basin', value: 48 }, 49 : { name: 'Ozone Analysis from TIROS Observations ', value: 49 }, 52 : { name: 'Ozone Analysis from Nimbus 7 Observations ', value: 52 }, 53 : { name: 'LFM-Fourth Order Forecast Model', value: 53 }, 64 : { name: 'Regional Optimum Interpolation Analysis (ROI)', value: 64 }, 68 : { name: '80 wave triangular, 18-layer Spectral model from GFS model', value: 68 }, 69 : { name: '80 wave triangular, 18 layer Spectral model from "Medium Range Forecast" run', value: 69 }, 70 : { name: 'Quasi-Lagrangian Hurricane Model (QLM)', value: 70 }, 71 : { name: 'Hurricane Weather Research and Forecasting (HWRF) Model', value: 71 }, 72 : { name: 'Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)', value: 72 }, 73 : { name: 'Fog Forecast model - Ocean Prod. Center', value: 73 }, 74 : { name: 'Gulf of Mexico Wind/Wave', value: 74 }, 75 : { name: 'Gulf of Alaska Wind/Wave', value: 75 }, 76 : { name: 'Bias corrected Medium Range Forecast', value: 76 }, 77 : { name: '126 wave triangular, 28 layer Spectral model from GFS model', value: 77 }, 78 : { name: '126 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', value: 78 }, 79 : { name: 'Backup from the previous run', value: 79 }, 80 : { name: '62 wave triangular, 28 layer Spectral model from "Medium Range Forecast" run', value: 80 }, 81 : { name: 'Analysis from GFS (Global Forecast System)', value: 81 }, 82 : { name: 'Analysis from GDAS (Global Data Assimilation System)', value: 82 }, 83 : { name: 'High Resolution Rapid Refresh (HRRR)', value: 83 }, 84 : { name: 'MESO NAM Model (currently 12 km)', value: 84 }, 85 : { name: 'Real Time Ocean Forecast System (RTOFS)', value: 85 }, 86 : { name: 'Early Hurricane Wind Speed Probability Model', value: 86 }, 87 : { name: 'CAC Ensemble Forecasts from Spectral (ENSMB)', value: 87 }, 88 : { name: 'NOAA Wave Watch III (NWW3) Ocean Wave Model', value: 88 }, 89 : { name: 'Non-hydrostatic Meso Model (NMM) (Currently 8 km)', value: 89 }, 90 : { name: '62 wave triangular, 28 layer spectral model extension of the "Medium Range Forecast" run', value: 90 }, 91 : { name: '62 wave triangular, 28 layer spectral model extension of the GFS model', value: 91 }, 92 : { name: '62 wave triangular, 28 layer spectral model run from the "Medium Range Forecast" final analysis', value: 92 }, 93 : { name: '62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the "Medium Range Forecast" run', value: 93 }, 94 : { name: 'T170/L42 Global Spectral Model from MRF run', value: 94 }, 95 : { name: 'T126/L42 Global Spectral Model from MRF run', value: 95 }, 96 : { name: 'Global Forecast System Model T1534 - Forecast hours 00-384 T574 - Forecast hours 00-192 T190 - Forecast hours 204-384', value: 96 }, 98 : { name: 'Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model . Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.', value: 98 }, 99 : { name: 'Miscellaneous Test ID', value: 99 }, 100: { name: 'Miscellaneous Test ID', value: 100 }, 101: { name: 'Conventional Observation Re-Analysis (CORE)', value: 101 }, 104: { name: 'National Blend GRIB', value: 104 }, 105: { name: 'Rapid Refresh (RAP)', value: 105 }, 107: { name: 'Global Ensemble Forecast System (GEFS)', value: 107 }, 108: { name: 'LAMP', value: 108 }, 109: { name: 'RTMA (Real Time Mesoscale Analysis)', value: 109 }, 110: { name: 'NAM Model - 15km version', value: 110 }, 111: { name: 'NAM model, generic resolution (Used in SREF processing)', value: 111 }, 112: { name: 'WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)', value: 112 }, 113: { name: 'Products from NCEP SREF processing', value: 113 }, 114: { name: 'NAEFS Products from joined NCEP, CMC global ensembles', value: 114 }, 115: { name: 'Downscaled GFS from NAM eXtension', value: 115 }, 116: { name: 'WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)', value: 116 }, 117: { name: 'NEMS GFS Aerosol Component', value: 117 }, 118: { name: 'URMA (UnRestricted Mesoscale Analysis)', value: 118 }, 119: { name: 'WAM (Whole Atmosphere Model)', value: 119 }, 120: { name: 'Ice Concentration Analysis', value: 120 }, 121: { name: 'Western North Atlantic Regional Wave Model', value: 121 }, 122: { name: 'Alaska Waters Regional Wave Model', value: 122 }, 123: { name: 'North Atlantic Hurricane Wave Model', value: 123 }, 124: { name: 'Eastern North Pacific Regional Wave Model', value: 124 }, 125: { name: 'North Pacific Hurricane Wave Model', value: 125 }, 126: { name: 'Sea Ice Forecast Model', value: 126 }, 127: { name: 'Lake Ice Forecast Model', value: 127 }, 128: { name: 'Global Ocean Forecast Model', value: 128 }, 129: { name: 'Global Ocean Data Analysis System (GODAS)', value: 129 }, 130: { name: 'Merge of fields from the RUC, NAM, and Spectral Model ', value: 130 }, 131: { name: 'Great Lakes Wave Model', value: 131 }, 132: { name: 'High Resolution Ensemble Forecast (HREF)', value: 132 }, 133: { name: 'Great Lakes Short Range Wave Model', value: 133 }, 140: { name: 'North American Regional Reanalysis (NARR)', value: 140 }, 141: { name: 'Land Data Assimilation and Forecast System', value: 141 }, 150: { name: 'NWS River Forecast System (NWSRFS)', value: 150 }, 151: { name: 'NWS Flash Flood Guidance System (NWSFFGS)', value: 151 }, 152: { name: 'WSR-88D Stage II Precipitation Analysis', value: 152 }, 153: { name: 'WSR-88D Stage III Precipitation Analysis', value: 153 }, 180: { name: 'Quantitative Precipitation Forecast generated by NCEP', value: 180 }, 181: { name: 'River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP', value: 181 }, 182: { name: 'River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP', value: 182 }, 183: { name: 'NDFD product generated by NCEP/HPC', value: 183 }, 184: { name: 'Climatological Calibrated Precipitation Analysis - CCPA', value: 184 }, 190: { name: 'National Convective Weather Diagnostic generated by NCEP/AWC', value: 190 }, 191: { name: 'Current Icing Potential automated product genterated by NCEP/AWC', value: 191 }, 192: { name: 'Analysis product from NCEP/AWC', value: 192 }, 193: { name: 'Forecast product from NCEP/AWC', value: 193 }, 195: { name: 'Climate Data Assimilation System 2 (CDAS2)', value: 195 }, 196: { name: 'Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs', value: 196 }, 197: { name: 'Climate Data Assimilation System (CDAS)', value: 197 }, 198: { name: 'Climate Data Assimilation System (CDAS) - used for regeneration runs', value: 198 }, 199: { name: 'Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. Currently GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.', value: 199 }, 200: { name: 'CPC Manual Forecast Product', value: 200 }, 201: { name: 'CPC Automated Product', value: 201 }, 210: { name: 'EPA Air Quality Forecast - Currently North East US domain', value: 210 }, 211: { name: 'EPA Air Quality Forecast - Currently Eastern US domain', value: 211 }, 215: { name: 'SPC Manual Forecast Product', value: 215 }, 220: { name: 'NCEP/OPC automated product', value: 220 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 4.4 Indicator of unit of time range TimeRange: Object.freeze({ 0 : { name: 'Minute', value: 0 }, 1 : { name: 'Hour', value: 1 }, 2 : { name: 'Day', value: 2 }, 3 : { name: 'Month', value: 3 }, 4 : { name: 'Year', value: 4 }, 5 : { name: 'Decade (10 Years)', value: 5 }, 6 : { name: 'Normal (30 Years)', value: 6 }, 7 : { name: 'Century (100 Years)', value: 7 }, 10 : { name: '3 Hours', value: 10 }, 11 : { name: '6 Hours', value: 11 }, 12 : { name: '12 Hours', value: 12 }, 13 : { name: 'Second', value: 13 }, 255: { name: 'Missing', value: 255 }, }), // Code Table 4.5 Fixed surface types and units SurfaceType: Object.freeze({ 1 : { value: 1, name: 'Ground or Water Surface' }, 2 : { value: 2, name: 'Cloud Base Level' }, 3 : { value: 3, name: 'Level of Cloud Tops' }, 4 : { value: 4, name: 'Level of 0o C Isotherm' }, 5 : { value: 5, name: 'Level of Adiabatic Condensation Lifted from the Surface' }, 6 : { value: 6, name: 'Maximum Wind Level' }, 7 : { value: 7, name: 'Tropopause' }, 8 : { value: 8, name: 'Nominal Top of the Atmosphere' }, 9 : { value: 9, name: 'Sea Bottom' }, 10 : { value: 10, name: 'Entire Atmosphere' }, 11 : { value: 11, name: 'Cumulonimbus Base (CB)', unit: 'm' }, 12 : { value: 12, name: 'Cumulonimbus Top (CT)', unit: 'm' }, 13 : { value: 13, name: 'Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud: base for a given percentage cloud cover)' }, 14 : { value: 14, name: 'Level of free convection (LFC)' }, 15 : { value: 15, name: 'Convection condensation level (CCL)' }, 16 : { value: 16, name: 'Level of neutral buoyancy or equilibrium (LNB)' }, 20 : { value: 20, name: 'Isothermal Level', unit: 'K' }, 21 : { value: 21, name: 'Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)', unit: 'kg m-3' }, 22 : { value: 22, name: 'Highest level where mass density exceeds the specified value (top for a given threshold of mass density)', unit: 'kg m-3' }, 23 : { value: 23, name: 'Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration)', unit: 'Bq m-3' }, 24 : { value: 24, name: 'Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)', unit: 'Bq m-3' }, 25 : { value: 25, name: 'Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)', unit: 'dBZ' }, 100: { value: 100, name: 'Isobaric Surface', unit: 'Pa' }, 101: { value: 101, name: 'Mean Sea Level' }, 102: { value: 102, name: 'Specific Altitude Above Mean Sea Level', unit: 'm' }, 103: { value: 103, name: 'Specified Height Level Above Ground', unit: 'm' }, 104: { value: 104, name: 'Sigma Level' }, 105: { value: 105, name: 'Hybrid Level' }, 106: { value: 106, name: 'Depth Below Land Surface', unit: 'm' }, 107: { value: 107, name: 'Isentropic (theta) Level', unit: 'K' }, 108: { value: 108, name: 'Level at Specified Pressure Difference from Ground to Level', unit: 'Pa' }, 109: { value: 109, name: 'Potential Vorticity Surface', unit: 'K m2 kg-1 s-1' }, 111: { value: 111, name: 'Eta Level' }, 113: { value: 113, name: 'Logarithmic Hybrid Level' }, 114: { value: 114, name: 'Snow Level', unit: 'Numeric' }, 115: { value: 115, name: 'Sigma height level' }, 117: { value: 117, name: 'Mixed Layer Depth', unit: 'm' }, 118: { value: 118, name: 'Hybrid Height Level' }, 119: { value: 119, name: 'Hybrid Pressure Level' }, 150: { value: 150, name: 'Generalized Vertical Height Coordinate' }, 151: { value: 151, name: 'Soil level (See Note 5)', unit: 'Numeric' }, 160: { value: 160, name: 'Depth Below Sea Level', unit: 'm' }, 161: { value: 161, name: 'Depth Below Water Surface', unit: 'm' }, 162: { value: 162, name: 'Lake or River Bottom' }, 163: { value: 163, name: 'Bottom Of Sediment Layer' }, 164: { value: 164, name: 'Bottom Of Thermally Active Sediment Layer' }, 165: { value: 165, name: 'Bottom Of Sediment Layer Penetrated By Thermal Wave' }, 166: { value: 166, name: 'Mixing Layer' }, 167: { value: 167, name: 'Bottom of Root Zone' }, 168: { value: 168, name: 'Ocean Model Level', unit: 'Numeric' }, 169: { value: 169, name: 'Ocean level defined by water density (sigma-theta) difference from near-surface to level (see Note 7)', unit: 'kg m-3' }, 170: { value: 170, name: 'Ocean level defined by water potential temperature difference from near-surface to level (see Note 7)', unit: 'K' }, 174: { value: 174, name: 'Top Surface of Ice on Sea, Lake or River' }, 175: { value: 175, name: 'Top Surface of Ice, under Snow, on Sea, Lake or River' }, 176: { value: 176, name: 'Bottom Surface (underside) Ice on Sea, Lake or River' }, 177: { value: 177, name: 'Deep Soil (of indefinite depth)' }, 179: { value: 179, name: 'Top Surface of Glacier Ice and Inland Ice' }, 180: { value: 180, name: 'Deep Inland or Glacier Ice (of indefinite depth)' }, 181: { value: 181, name: 'Grid Tile Land Fraction as a Model Surface' }, 182: { value: 182, name: 'Grid Tile Water Fraction as a Model Surface' }, 183: { value: 183, name: 'Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface' }, 184: { value: 184, name: 'Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface' }, 200: { value: 200, name: 'Entire atmosphere (considered as a single layer)' }, 201: { value: 201, name: 'Entire ocean (considered as a single layer)' }, 204: { value: 204, name: 'Highest tropospheric freezing level' }, 206: { value: 206, name: 'Grid scale cloud bottom level' }, 207: { value: 207, name: 'Grid scale cloud top level' }, 209: { value: 209, name: 'Boundary layer cloud bottom level' }, 210: { value: 210, name: 'Boundary layer cloud top level' }, 211: { value: 211, name: 'Boundary layer cloud layer' }, 212: { value: 212, name: 'Low cloud bottom level' }, 213: { value: 213, name: 'Low cloud top level' }, 214: { value: 214, name: 'Low cloud layer' }, 215: { value: 215, name: 'Cloud ceiling' }, 220: { value: 220, name: 'Planetary Boundary Layer' }, 221: { value: 221, name: 'Layer Between Two Hybrid Levels' }, 222: { value: 222, name: 'Middle cloud bottom level' }, 223: { value: 223, name: 'Middle cloud top level' }, 224: { value: 224, name: 'Middle cloud layer' }, 232: { value: 232, name: 'High cloud bottom level' }, 233: { value: 233, name: 'High cloud top level' }, 234: { value: 234, name: 'High cloud layer' }, 235: { value: 235, name: 'Ocean Isotherm Level (1/10 ° C)' }, 236: { value: 236, name: 'Layer between two depths below ocean surface' }, 237: { value: 237, name: 'Bottom of Ocean Mixed Layer (m)' }, 238: { value: 238, name: 'Bottom of Ocean Isothermal Layer (m)' }, 239: { value: 239, name: 'Layer Ocean Surface and 26C Ocean Isothermal Level' }, 240: { value: 240, name: 'Ocean Mixed Layer' }, 241: { value: 241, name: 'Ordered Sequence of Data' }, 242: { value: 242, name: 'Convective cloud bottom level' }, 243: { value: 243, name: 'Convective cloud top level' }, 244: { value: 244, name: 'Convective cloud layer' }, 245: { value: 245, name: 'Lowest level of the wet bulb zero' }, 246: { value: 246, name: 'Maximum equivalent potential temperature level' }, 247: { value: 247, name: 'Equilibrium level' }, 248: { value: 248, name: 'Shallow convective cloud bottom level' }, 249: { value: 249, name: 'Shallow convective cloud top level' }, 251: { value: 251, name: 'Deep convective cloud bottom level' }, 252: { value: 252, name: 'Deep convective cloud top level' }, 253: { value: 253, name: 'Lowest bottom level of supercooled liquid water layer' }, 254: { value: 254, name: 'Highest top level of supercooled liquid water layer' }, 255: { value: 255, name: 'Missing' }, }), // Code Table 5.0 DataRepresentationTemplateNumber: Object.freeze({ 0 : { name: '