table_4_1_0 = {
'0':'Temperature',
'1':'Moisture',
'2':'Momentum',
'3':'Mass',
'4':'Short-wave radiation',
'5':'Long-wave radiation',
'6':'Cloud',
'7':'Thermodynamic Stability indicies',
'8':'Kinematic Stability indicies',
'9':'Temperature Probabilities*',
'10':'Moisture Probabilities*',
'11':'Momentum Probabilities*',
'12':'Mass Probabilities*',
'13':'Aerosols',
'14':'Trace gases',
'15':'Radar',
'16':'Forecast Radar Imagery',
'17':'Electrodynamics',
'18':'Nuclear/radiology',
'19':'Physical atmospheric properties',
'20':'Atmospheric chemical Constituents',
'21-189':'Reserved',
'190':'CCITT IA5 string',
'191':'Miscellaneous',
'192-254':'Reserved for Local Use',
'192':'Covariance',
'255':'Missing',
}
table_4_1_1 = {
'0':'Hydrology basic products',
'1':'Hydrology probabilities',
'2':'Inland water and sediment properties',
'3-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_1_2 = {
'0':'Vegetation/Biomass',
'1':'Agricultural/Aquacultural Special Products',
'2':'Transportation-related Products',
'3':'Soil Products',
'4':'Fire Weather Products',
'5':'Land Surface Products',
'6-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_1_3 = {
'0':'Image format products',
'1':'Quantitative products',
'2':'Cloud Properties',
'3':'Flight Rules Conditions',
'4':'Volcanic Ash',
'5':'Sea-surface Temperature',
'6':'Solar Radiation',
'7-191':'Reserved',
'192-254':'Reserved for Local Use',
'192':'Forecast Satellite Imagery',
'255':'Missing',
}
table_4_1_4 = {
'0':'Temperature',
'1':'Momentum',
'2':'Charged Particle Mass and Number',
'3':'Electric and Magnetic Fields',
'4':'Energetic Particles',
'5':'Waves',
'6':'Solar Electromagnetic Emissions',
'7':'Terrestrial Electromagnetic Emissions',
'8':'Imagery',
'9':'Ion-Neutral Coupling',
'10-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_1_10 = {
'0':'Waves',
'1':'Currents',
'2':'Ice',
'3':'Surface Properties',
'4':'Sub-surface Properties',
'5-190':'Reserved',
'191':'Miscellaneous',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_0 = {
'0':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.0)',
'1':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.1)',
'2':'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time. (see Template 4.2)',
'3':'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.3)',
'4':'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.4)',
'5':'Probability forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.5)',
'6':'Percentile forecasts at a horizontal level or in a horizontal layer at a point in time. (see Template 4.6)',
'7':'Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time. (see Template 4.7)',
'8':'Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.8)',
'9':'Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.9)',
'10':'Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.10)',
'11':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.11)',
'12':'Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.12)',
'13':'Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.13)',
'14':'Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.14)',
'15':'Average, accumulation, extreme values or other statistically-processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time. (see Template 4.15)',
'16-19':'Reserved',
'20':'Radar product (see Template 4.20)',
'21-29':'Reserved',
'30':'Satellite product (see Template 4.30) NOTE: This template is deprecated. Template 4.31 should be used instead.',
'31':'Satellite product (see Template 4.31)',
'32':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulate (synthetic) satellite data (see Template 4.32)',
'33':'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data (see Template 4.33)',
'34':'Individual Ensemble Forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data(see Template 4.34)',
'35':'Satellite product with or without associated quality values (see Template 4.35)',
'36-39':'Reserved',
'40':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.40)',
'41':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents. (see Template 4.41)',
'42':'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.42)',
'43':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for atmospheric chemical constituents. (see Template 4.43)',
'44':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.44)',
'45':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.45)',
'46':'Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol. (see Template 4.46)',
'47':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval for aerosol. (see Template 4.47)',
'48':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol. (see Template 4.48)',
'49':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol. (see Template 4.49)',
'50':'Reserved',
'51':'Categorical forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.51)',
'52':'Reserved',
'53':'Partitioned parameters at a horizontal level or horizontal layer at a point in time. (see Template 4.53)',
'54':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters. (see Template 4.54)',
'55':'Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.55)',
'56':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters. (see Template 4.56)',
'57':'Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function (see Template 4.57)',
'58':'Individual Ensemble Forecast, Control and Perturbed, at a horizontal level or in a horizontal layer at a point in time interval for Atmospheric Chemical Constituents based on a distribution function (see Template 4.58)',
'59':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56 - See Template 4.59)',
'60':'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.60)',
'61':'Individual Ensemble Reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (see Template 4.61)',
'62':'Average, Accumulation and/or Extreme values or other Statistically-processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time (see Template 4.62)',
'63':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles (see Template 4.63)',
'64-66':'Reserved',
'67':'Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function (see Template 4.67)',
'68':'Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function. (see Template 4.68)',
'69':'Reserved',
'70':'Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time. (see Template 4.70)',
'71':'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time. (see Template 4.71)',
'72':'Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.72)',
'73':'Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval. (see Template 4.73)',
'74-90':'Reserved',
'91':'Categorical forecast at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval. (see Template 4.91)',
'92-253':'Reserved',
'254':'CCITT IA5 character string (see Template 4.254)',
'255-999':'Reserved',
'1000':'Cross-section of analysis and forecast at a point in time. (see Template 4.1000)',
'1001':'Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time. (see Template 4.1001)',
'1002':'Cross-section of analysis and forecast, averaged or otherwise statistically-processed over latitude or longitude. (see Template 4.1002)',
'1003-1099':'Reserved',
'1100':'Hovmoller-type grid with no averaging or other statistical processing (see Template 4.1100)',
'1101':'Hovmoller-type grid with averaging or other statistical processing (see Template 4.1101)',
'1102-32767':'Reserved',
'32768-65534':'Reserved for Local Use',
'65535':'Missing',
}
table_4_3 = {
'0':'Analysis',
'1':'Initialization',
'2':'Forecast',
'3':'Bias Corrected Forecast',
'4':'Ensemble Forecast',
'5':'Probability Forecast',
'6':'Forecast Error',
'7':'Analysis Error',
'8':'Observation',
'9':'Climatological',
'10':'Probability-Weighted Forecast',
'11':'Bias-Corrected Ensemble Forecast',
'12':'Post-processed Analysis (See Note)',
'13':'Post-processed Forecast (See Note)',
'14':'Nowcast',
'15':'Hindcast',
'16':'Physical Retrieval',
'17':'Regression Analysis',
'18':'Difference Between Two Forecasts',
'19-191':'Reserved',
'192-254':'Reserved for Local Use',
'192':'Forecast Confidence Indicator',
'193':'Probability-matched Mean',
'194':'Neighborhood Probability',
'195':'Bias-Corrected and Downscaled Ensemble Forecast',
'196':'Perturbed Analysis for Ensemble Initialization',
'197':'Ensemble Agreement Scale Probability',
'198':'Post-Processed Deterministic-Expert-Weighted Forecast',
'199':'Ensemble Forecast Based on Counting',
'200':'Local Probability-matched Mean',
'255':'Missing',
}
table_4_4 = {
'0':'Minute',
'1':'Hour',
'2':'Day',
'3':'Month',
'4':'Year',
'5':'Decade (10 Years)',
'6':'Normal (30 Years)',
'7':'Century (100 Years)',
'8':'Reserved',
'9':'Reserved',
'10':'3 Hours',
'11':'6 Hours',
'12':'12 Hours',
'13':'Second',
'14-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_5 = {
'0':['Reserved','unknown'],
'1':['Ground or Water Surface','unknown'],
'2':['Cloud Base Level','unknown'],
'3':['Level of Cloud Tops','unknown'],
'4':['Level of 0o C Isotherm','unknown'],
'5':['Level of Adiabatic Condensation Lifted from the Surface','unknown'],
'6':['Maximum Wind Level','unknown'],
'7':['Tropopause','unknown'],
'8':['Nominal Top of the Atmosphere','unknown'],
'9':['Sea Bottom','unknown'],
'10':['Entire Atmosphere','unknown'],
'11':['Cumulonimbus Base (CB)','m'],
'12':['Cumulonimbus Top (CT)','m'],
'13':['Lowest level where vertically integrated cloud cover exceeds the specified percentage (cloud base for a given percentage cloud cover)','%'],
'14':['Level of free convection (LFC)','unknown'],
'15':['Convection condensation level (CCL)','unknown'],
'16':['Level of neutral buoyancy or equilibrium (LNB)','unknown'],
'17-19':['Reserved','unknown'],
'20':['Isothermal Level','K'],
'21':['Lowest level where mass density exceeds the specified value (base for a given threshold of mass density)','kg m-3'],
'22':['Highest level where mass density exceeds the specified value (top for a given threshold of mass density)','kg m-3'],
'23':['Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration','Bq m-3'],
'24':['Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration)','Bq m-3'],
'25':['Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity)','dBZ'],
'26-99':['Reserved','unknown'],
'100':['Isobaric Surface','Pa'],
'101':['Mean Sea Level','unknown'],
'102':['Specific Altitude Above Mean Sea Level','m'],
'103':['Specified Height Level Above Ground','m'],
'104':['Sigma Level','unknown'],
'105':['Hybrid Level','unknown'],
'106':['Depth Below Land Surface','m'],
'107':['Isentropic (theta) Level','K'],
'108':['Level at Specified Pressure Difference from Ground to Level','Pa'],
'109':['Potential Vorticity Surface','K m2 kg-1 s-1'],
'110':['Reserved','unknown'],
'111':['Eta Level','unknown'],
'112':['Reserved','unknown'],
'113':['Logarithmic Hybrid Level','unknown'],
'114':['Snow Level','Numeric'],
'115':['Sigma height level','unknown'],
'116':['Reserved','unknown'],
'117':['Mixed Layer Depth','m'],
'118':['Hybrid Height Level','unknown'],
'119':['Hybrid Pressure Level','unknown'],
'120-149':['Reserved','unknown'],
'150':['Generalized Vertical Height Coordinate','unknown'],
'151':['Soil level','Numeric'],
'152-159':['Reserved','unknown'],
'160':['Depth Below Sea Level','m'],
'161':['Depth Below Water Surface','m'],
'162':['Lake or River Bottom','unknown'],
'163':['Bottom Of Sediment Layer','unknown'],
'164':['Bottom Of Thermally Active Sediment Layer','unknown'],
'165':['Bottom Of Sediment Layer Penetrated By Thermal Wave','unknown'],
'166':['Mixing Layer','unknown'],
'167':['Bottom of Root Zone','unknown'],
'168':['Ocean Model Level','Numeric'],
'169':['Ocean level defined by water density (sigma-theta) difference from near-surface to level','kg m-3'],
'170':['Ocean level defined by water potential temperature difference from near-surface to level','K'],
'171-173':['Reserved','unknown'],
'174':['Top Surface of Ice on Sea, Lake or River','unknown'],
'175':['Top Surface of Ice, under Snow, on Sea, Lake or River','unknown'],
'176':['Bottom Surface (underside) Ice on Sea, Lake or River','unknown'],
'177':['Deep Soil (of indefinite depth)','unknown'],
'178':['Reserved','unknown'],
'179':['Top Surface of Glacier Ice and Inland Ice','unknown'],
'180':['Deep Inland or Glacier Ice (of indefinite depth)','unknown'],
'181':['Grid Tile Land Fraction as a Model Surface','unknown'],
'182':['Grid Tile Water Fraction as a Model Surface','unknown'],
'183':['Grid Tile Ice Fraction on Sea, Lake or River as a Model Surface','unknown'],
'184':['Grid Tile Glacier Ice and Inland Ice Fraction as a Model Surface','unknown'],
'185-191':['Reserved','unknown'],
'192-254':['Reserved for Local Use','unknown'],
'200':['Entire atmosphere (considered as a single layer)','unknown'],
'201':['Entire ocean (considered as a single layer)','unknown'],
'204':['Highest tropospheric freezing level','unknown'],
'206':['Grid scale cloud bottom level','unknown'],
'207':['Grid scale cloud top level','unknown'],
'209':['Boundary layer cloud bottom level','unknown'],
'210':['Boundary layer cloud top level','unknown'],
'211':['Boundary layer cloud layer','unknown'],
'212':['Low cloud bottom level','unknown'],
'213':['Low cloud top level','unknown'],
'214':['Low cloud layer','unknown'],
'215':['Cloud ceiling','unknown'],
'216':['Effective Layer Top Level','m'],
'217':['Effective Layer Bottom Level','m'],
'218':['Effective Layer','m'],
'220':['Planetary Boundary Layer','unknown'],
'221':['Layer Between Two Hybrid Levels','unknown'],
'222':['Middle cloud bottom level','unknown'],
'223':['Middle cloud top level','unknown'],
'224':['Middle cloud layer','unknown'],
'232':['High cloud bottom level','unknown'],
'233':['High cloud top level','unknown'],
'234':['High cloud layer','unknown'],
'235':['Ocean Isotherm Level (1/10 ° C)','unknown'],
'236':['Layer between two depths below ocean surface','unknown'],
'237':['Bottom of Ocean Mixed Layer (m)','unknown'],
'238':['Bottom of Ocean Isothermal Layer (m)','unknown'],
'239':['Layer Ocean Surface and 26C Ocean Isothermal Level','unknown'],
'240':['Ocean Mixed Layer','unknown'],
'241':['Ordered Sequence of Data','unknown'],
'242':['Convective cloud bottom level','unknown'],
'243':['Convective cloud top level','unknown'],
'244':['Convective cloud layer','unknown'],
'245':['Lowest level of the wet bulb zero','unknown'],
'246':['Maximum equivalent potential temperature level','unknown'],
'247':['Equilibrium level','unknown'],
'248':['Shallow convective cloud bottom level','unknown'],
'249':['Shallow convective cloud top level','unknown'],
'251':['Deep convective cloud bottom level','unknown'],
'252':['Deep convective cloud top level','unknown'],
'253':['Lowest bottom level of supercooled liquid water layer','unknown'],
'254':['Highest top level of supercooled liquid water layer','unknown'],
'255':['Missing','unknown'],
}
table_4_6 = {
'0':'Unperturbed High-Resolution Control Forecast',
'1':'Unperturbed Low-Resolution Control Forecast',
'2':'Negatively Perturbed Forecast',
'3':'Positively Perturbed Forecast',
'4':'Multi-Model Forecast',
'5-191':'Reserved',
'192-254':'Reserved for Local Use',
'192':'Perturbed Ensemble Member',
'255':'Missing',
}
table_4_7 = {
'0':'Unweighted Mean of All Members',
'1':'Weighted Mean of All Members',
'2':'Standard Deviation with respect to Cluster Mean',
'3':'Standard Deviation with respect to Cluster Mean, Normalized',
'4':'Spread of All Members',
'5':'Large Anomaly Index of All Members',
'6':'Unweighted Mean of the Cluster Members',
'7':'Interquartile Range (Range between the 25th and 75th quantile)',
'8':'Minimum Of All Ensemble Members',
'9':'Maximum Of All Ensemble Members',
'7-191':'Reserved',
'192-254':'Reserved for Local Use',
'192':'Unweighted Mode of All Members',
'193':'Percentile value (10%) of All Members',
'194':'Percentile value (50%) of All Members',
'195':'Percentile value (90%) of All Members',
'196':'Statistically decided weights for each ensemble member',
'197':'Climate Percentile (percentile values from climate distribution)',
'198':'Deviation of Ensemble Mean from Daily Climatology',
'199':'Extreme Forecast Index',
'200':'Equally Weighted Mean',
'201':'Percentile value (5%) of All Members',
'202':'Percentile value (25%) of All Members',
'203':'Percentile value (75%) of All Members',
'204':'Percentile value (95%) of All Members',
'255':'Missing',
}
table_4_8 = {
'0':'Anomoly Correlation',
'1':'Root Mean Square',
'2-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_9 = {
'0':'Probability of event below lower limit',
'1':'Probability of event above upper limit',
'2':'Probability of event between upper and lower limits (the range includes lower limit but no the upper limit)',
'3':'Probability of event above lower limit',
'4':'Probability of event below upper limit',
'5':'Probability of event equal to lower limit',
'6':'Probability of event in above normal category (see Notes 1 and 2)',
'9-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_10 = {
'0':'Average',
'1':'Accumulation',
'2':'Maximum',
'3':'Minimum',
'4':'Difference (value at the end of the time range minus value at the beginning)',
'5':'Root Mean Square',
'6':'Standard Deviation',
'7':'Covariance (temporal variance)',
'8':'Difference ( value at the beginning of the time range minus value at the end)',
'9':'Ratio',
'14-191':'Reserved',
'192-254':'Reserved for Local Use',
'192':'Climatological Mean Value: multiple year averages of quantities which are themselves means over some period of time (P2) less than a year. The reference time (R) indicates the date and time of the start of a period of time, given by R to R + P2, over which a mean is formed; N indicates the number of such period-means that are averaged together to form the climatological value, assuming that the N period-mean fields are separated by one year. The reference time indicates the start of the N-year climatology. N is given in octets 22-23 of the PDS. If P1 = 0 then the data averaged in the basic interval P2 are assumed to be continuous, i.e., all available data are simply averaged together. If P1 = 1 (the units of time - octet 18, code table 4 - are not relevant here) then the data averaged together in the basic interval P2 are valid only at the time (hour, minute) given in the reference time, for all the days included in the P2 period. The units of P2 are given by the contents of octet 18 and Table 4.',
'193':'Average of N forecasts (or initialized analyses); each product has forecast period of P1 (P1=0 for initialized analyses); products have reference times at intervals of P2, beginning at the given reference time.',
'194':'Average of N uninitialized analyses, starting at reference time, at intervals of P2.',
'195':'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecasts used.',
'196':'Average of successive forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used',
'197':'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 24-hour intervals. Number in Ave = number of forecast used',
'198':'Average of successive forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at (P2 - P1) intervals. Number in Ave = number of forecasts used',
'199':'Climatological Average of N analyses, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.',
'200':'Climatological Average of N forecasts, each a year apart, starting from initial time R and for the period from R+P1 to R+P2.',
'201':'Climatological Root Mean Square difference between N forecasts and their verifying analyses, each a year apart, starting with initial time R and for the period from R+P1 to R+P2.',
'202':'Climatological Standard Deviation of N forecasts from the mean of the same N forecasts, for forecasts one year apart. The first forecast starts wtih initial time R and is for the period from R+P1 to R+P2.',
'203':'Climatological Standard Deviation of N analyses from the mean of the same N analyses, for analyses one year apart. The first analyses is valid for period R+P1 to R+P2.',
'204':'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used',
'205':'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 6-hour intervals. Number in Ave = number of forecast used',
'206':'Average of forecast accumulations. P1 = start of accumulation period. P2 = end of accumulation period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used',
'207':'Average of forecast averages. P1 = start of averaging period. P2 = end of averaging period. Reference time is the start time of the first forecast, other forecasts at 12-hour intervals. Number in Ave = number of forecast used',
'255':'Missing',
}
table_4_11 = {
'0':'Reserved',
'1':'Successive times processed have same forecast time, start time of forecast is incremented.',
'2':'Successive times processed have same start time of forecast, forecast time is incremented.',
'3':'Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant.',
'4':'Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant.',
'5':'Floating subinterval of time between forecast time and end of overall time interval.(see Note 1)',
'6-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_201 = {
'0':'Reserved',
'1':'Rain',
'2':'Thunderstorm',
'3':'Freezing Rain',
'4':'Mixed/Ice',
'5':'Snow',
'6':'Wet Snow',
'7':'Mixture of Rain and Snow',
'8':'Ice Pellets',
'9':'Graupel',
'10':'Hail',
'11':'Drizzle',
'12':'Freezing Drizzle',
'13-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_202 = {
'0-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_203 = {
'0':'Clear',
'1':'Cumulonimbus',
'2':'Stratus',
'3':'Stratocumulus',
'4':'Cumulus',
'5':'Altostratus',
'6':'Nimbostratus',
'7':'Altocumulus',
'8':'Cirrostratus',
'9':'Cirrorcumulus',
'10':'Cirrus',
'11':'Cumulonimbus - ground-based fog beneath the lowest layer',
'12':'Stratus - ground-based fog beneath the lowest layer',
'13':'Stratocumulus - ground-based fog beneath the lowest layer',
'14':'Cumulus - ground-based fog beneath the lowest layer',
'15':'Altostratus - ground-based fog beneath the lowest layer',
'16':'Nimbostratus - ground-based fog beneath the lowest layer',
'17':'Altocumulus - ground-based fog beneath the lowest layer',
'18':'Cirrostratus - ground-based fog beneath the lowest layer',
'19':'Cirrorcumulus - ground-based fog beneath the lowest layer',
'20':'Cirrus - ground-based fog beneath the lowest layer',
'21-190':'Reserved',
'191':'Unknown',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_204 = {
'0':'None',
'1':'Isolated (1-2%)',
'2':'Few (3-5%)',
'3':'Scattered (16-45%)',
'4':'Numerous (>45%)',
'5-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_205 = {
'0':'Aerosol not present',
'1':'Aerosol present',
'2-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_206 = {
'0':'Not Present',
'1':'Present',
'2-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_207 = {
'0':'None',
'1':'Light',
'2':'Moderate',
'3':'Severe',
'4':'Trace',
'5':'Heavy',
'6-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_208 = {
'0':'None',
'1':'Light',
'2':'Moderate',
'3':'Severe',
'4':'Extreme',
'5-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_209 = {
'0':'Reserved',
'1':'Stable',
'2':'Mechanically-Driven Turbulence',
'3':'Force Convection',
'4':'Free Convection',
'5-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_210 = {
'0':'Contrail Not Present',
'1':'Contrail Present',
'2-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_211 = {
'0':'Low Bypass',
'1':'High Bypass',
'2':'Non-Bypass',
'3-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_212 = {
'0':'Reserved',
'1':'Urban Land',
'2':'Agricultural',
'3':'Range Land',
'4':'Deciduous Forest',
'5':'Coniferous Forest',
'6':'Forest/Wetland',
'7':'Water',
'8':'Wetlands',
'9':'Desert',
'10':'Tundra',
'11':'Ice',
'12':'Tropical Forest',
'13':'Savannah',
'14-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_213 = {
'0':'Reserved',
'1':'Sand',
'2':'Loamy Sand',
'3':'Sandy Loam',
'4':'Silt Loam',
'5':'Organic',
'6':'Sandy Clay Loam',
'7':'Silt Clay Loam',
'8':'Clay Loam',
'9':'Sandy Clay',
'10':'Silty Clay',
'11':'Clay',
'12-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_215 = {
'0-49':'Reserved',
'50':'No-Snow/No-Cloud',
'51-99':'Reserved',
'100':'Clouds',
'101-249':'Reserved',
'250':'Snow',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_216 = {
'0-90':'Elevation in increments of 100 m',
'91-253':'Reserved',
'254':'Clouds',
'255':'Missing',
}
table_4_217 = {
'0':'Clear over water',
'1':'Clear over land',
'2':'Cloud',
'3':'No data',
'4-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_218 = {
'0':'No Scene Identified',
'1':'Green Needle-Leafed Forest',
'2':'Green Broad-Leafed Forest',
'3':'Deciduous Needle-Leafed Forest',
'4':'Deciduous Broad-Leafed Forest',
'5':'Deciduous Mixed Forest',
'6':'Closed Shrub-Land',
'7':'Open Shrub-Land',
'8':'Woody Savannah',
'9':'Savannah',
'10':'Grassland',
'11':'Permanent Wetland',
'12':'Cropland',
'13':'Urban',
'14':'Vegetation / Crops',
'15':'Permanent Snow / Ice',
'16':'Barren Desert',
'17':'Water Bodies',
'18':'Tundra',
'19':'Warm Liquid Water Cloud',
'20':'Supercooled Liquid Water Cloud',
'21':'Mixed Phase Cloud',
'22':'Optically Thin Ice Cloud',
'23':'Optically Thick Ice Cloud',
'24':'Multi-Layeblack Cloud',
'25-96':'Reserved',
'97':'Snow / Ice on Land',
'98':'Snow / Ice on Water',
'99':'Sun-Glint',
'100':'General Cloud',
'101':'Low Cloud / Fog / Stratus',
'102':'Low Cloud / Stratocumulus',
'103':'Low Cloud / Unknown Type',
'104':'Medium Cloud / Nimbostratus',
'105':'Medium Cloud / Altostratus',
'106':'Medium Cloud / Unknown Type',
'107':'High Cloud / Cumulus',
'108':'High Cloud / Cirrus',
'109':'High Cloud / Unknown Type',
'110':'Unknown Cloud Type',
'111':'Single layer water cloud',
'112':'Single layer ice cloud',
'113-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_222 = {
'0':'No',
'1':'Yes',
'2-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_223 = {
'0':'No Fire Detected',
'1':'Possible Fire Detected',
'2':'Probable Fire Detected',
'3':'Missing',
'4-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_224 = {
'0':'No Risk Area',
'1':'Reserved',
'2':'General Thunderstorm Risk Area',
'3':'Reserved',
'4':'Slight Risk Area',
'5':'Reserved',
'6':'Moderate Risk Area',
'7':'Reserved',
'8':'High Risk Area',
'9-10':'Reserved',
'11':'Dry Thunderstorm (Dry Lightning) Risk Area',
'12-13':'Reserved',
'14':'Critical Risk Area',
'15-17':'Reserved',
'18':'Extreamly Critical Risk Area',
'19-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_227 = {
'0':'None',
'1':'General',
'2':'Convective',
'3':'Stratiform',
'4':'Freezing',
'5-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_4_243 = {
'0':'Reserved',
'1':'Evergreen broadleaved forest',
'2':'Deciduous broadleaved closed forest',
'3':'Deciduous broadleaved open forest',
'4':'Evergreen needle-leaf forest',
'5':'Deciduous needle-leaf forest',
'6':'Mixed leaf trees',
'7':'Fresh water flooded trees',
'8':'Saline water flooded trees',
'9':'Mosaic tree/natural vegetation',
'10':'Burnt tree cover',
'11':'Evergreen shurbs closed-open',
'12':'Deciduous shurbs closed-open',
'13':'Herbaceous vegetation closed-open',
'14':'Sparse herbaceous or grass',
'15':'Flooded shurbs or herbaceous',
'16':'Cultivated and managed areas',
'17':'Mosaic crop/tree/natural vegetation',
'18':'Mosaic crop/shrub/grass',
'19':'Bare areas',
'20':'Water',
'21':'Snow and ice',
'22':'Artificial surface',
'23':'Ocean',
'24':'Irrigated croplands',
'25':'Rain fed croplands',
'26':'Mosaic cropland (50-70%)-vegetation (20-50%)',
'27':'Mosaic vegetation (50-70%)-cropland (20-50%)',
'28':'Closed broadleaved evergreen forest',
'29':'Closed needle-leaved evergreen forest',
'30':'Open needle-leaved deciduous forest',
'31':'Mixed broadleaved and needle-leave forest',
'32':'Mosaic shrubland (50-70%)-grassland (20-50%)',
'33':'Mosaic grassland (50-70%)-shrubland (20-50%)',
'34':'Closed to open shrubland',
'35':'Sparse vegetation',
'36':'Closed to open forest regularly flooded',
'37':'Closed forest or shrubland permanently flooded',
'38':'Closed to open grassland regularly flooded',
'39':'Undefined',
'40-191':'Reserved',
'192-254':'Reserved for Local Use',
'255':'Missing',
}
table_scale_time_hours = {
'0': 60.,
'1': 1.,
'2': float(1.0/24.0),
'3': float(1.0/720.0),
'4': float(1.0/(365.0*24.0)),
'5': float(1.0/(10.0*365.0*24.0)),
'6': float(1.0/(30.0*365.0*24.0)),
'7': float(1.0/(100.0*365.0*24.0)),
'8': 1.,
'9': 1.,
'10': 3.,
'11': 6.,
'12': 12.,
'13': 3600.,
'14-255': 1.}