# BGD.properties
#/*******************************************************************************
# * Copyright (c) 2010 IBM Corporation and others.
# * All rights reserved. This program and the accompanying materials
# * are made available under the terms of the Eclipse Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/epl-v10.html
# *
# * Contributors:
# *     IBM Corporation - initial API and implementation
# *******************************************************************************/

# This is the name of the class that will interpret the rainfall data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = BGD rainfall data for 2008 at admin level 1

# This is the date for which the values in this file are valid
# See http://purl.org/dc/terms/1.1/valid
VALID=start=2008

# The data is derived from the following primary source
#SOURCE = http://neo.sci.gsfc.nasa.gov/

# ISO3166-1 alpha3 code for the country
ISOKEY = BGD
ADMIN_LEVEL = 1
UNITS = MM
DATA_TYPE = rainfall

# 120 calculations comma-separated, 10 consecutive calculations for each month (from January to December)
# Field 1: Average
# Field 2: Standard Deviation
# Field 3: Maximum
# Field 4: Minimum
# Field 5: Range
# Field 6: Skewness
# Field 7: Kurtosis
# Field 8: Root Mean Square
# Field 9: Median
# Field 10: Sample Size
# No data points for a month indicated by 99999.0,0.0,0.0,0.0,0.0,0.0,-1.2,1.0,0.0,0.0
# Maximum: 2000.0
# Minimum: 1.0
# Data not available for locations above 35 degrees N and below 35 degrees S Latitude

BD-0 = 32.29,11.88,76.97,4.68,72.29,1.23,5.15,34.4,29.32,306.0,12.97,7.98,42.1,2.71,39.4,1.49,4.62,15.22,9.9,306.0,47.27,46.03,207.02,1.24,205.78,1.12,3.38,65.92,35.13,306.0,39.78,43.38,209.1,1.0,208.1,1.31,4.43,58.81,23.12,306.0,246.02,54.85,404.36,138.73,265.62,0.53,2.47,252.04,229.99,306.0,324.55,63.57,484.58,184.58,300.0,0.78,2.98,330.7,308.51,306.0,226.03,81.25,546.71,77.53,469.18,1.36,6.24,240.15,217.79,306.0,362.74,71.65,567.56,227.97,339.59,0.35,2.42,369.72,358.48,306.0,152.27,24.14,205.34,97.97,107.37,0.23,2.17,154.17,149.38,306.0,200.74,52.21,392.34,106.62,285.72,1.12,4.6,207.4,191.01,306.0,6.47,5.81,22.35,1.0,21.35,0.71,2.4,8.69,5.84,306.0,9.39,11.9,64.23,1.0,63.23,2.23,8.51,15.14,3.92,306.0
BD-06 = 34.38,15.52,76.97,11.17,65.8,0.51,2.53,37.71,31.14,173.0,20.06,9.46,53.59,5.58,48.01,0.82,3.56,22.17,17.56,173.0,13.8,11.19,48.96,3.66,45.3,1.52,4.02,17.75,7.9,173.0,14.02,8.74,40.85,1.81,39.04,0.56,2.76,16.51,13.22,173.0,136.76,29.37,227.97,86.84,141.13,0.7,3.18,139.86,131.28,173.0,318.41,53.39,514.71,229.55,285.16,0.73,3.47,322.83,327.39,173.0,364.2,108.53,940.91,175.69,765.22,1.71,8.17,379.94,369.38,173.0,314.61,53.34,442.65,207.68,234.97,-0.01,1.87,319.07,317.67,173.0,156.06,35.44,317.67,113.92,203.75,1.49,5.77,160.01,147.23,173.0,247.01,42.63,347.75,158.74,189.01,0.16,2.83,250.64,243.91,173.0,4.2,2.89,19.95,1.0,18.95,1.64,7.69,5.09,3.6,173.0,37.7,13.97,64.34,15.16,49.18,0.07,1.9,40.19,37.32,173.0
BD-27 = 35.09,8.42,50.48,15.56,34.92,-0.59,2.94,36.08,36.16,131.0,27.35,13.61,95.06,14.65,80.41,2.39,11.04,30.53,24.59,131.0,16.44,9.91,43.39,3.71,39.68,0.64,2.4,19.18,13.79,131.0,36.94,10.27,58.67,19.22,39.45,0.21,1.76,38.33,35.67,131.0,122.0,34.91,179.1,37.32,141.78,-0.73,2.81,126.86,128.35,131.0,258.51,57.43,398.71,179.1,219.62,0.87,2.59,264.76,235.91,131.0,252.28,88.12,526.0,124.71,401.29,0.58,2.59,267.12,235.38,131.0,243.18,65.54,429.5,168.61,260.89,0.91,2.62,251.79,209.75,131.0,214.0,29.6,308.23,145.01,163.22,0.37,3.03,216.02,211.63,131.0,157.57,51.32,257.2,49.51,207.69,0.17,2.09,165.66,145.01,131.0,1.39,0.99,8.51,1.0,7.51,4.39,26.11,1.7,1.0,131.0,15.06,10.3,53.59,1.39,52.2,0.39,3.0,18.23,16.65,131.0
BD-3 = 30.69,10.1,68.22,18.65,49.57,1.89,6.88,32.3,28.7,247.0,23.09,8.19,55.23,3.55,51.68,-0.15,2.99,24.49,23.75,247.0,46.7,16.64,100.97,14.21,86.76,0.96,3.56,49.57,42.1,247.0,56.55,15.54,89.5,21.13,68.37,0.05,2.44,58.63,55.23,247.0,244.0,55.34,358.4,132.46,225.94,-0.25,2.18,250.17,249.56,247.0,286.88,47.16,404.36,190.23,214.13,0.41,3.01,290.72,289.16,247.0,234.02,40.92,423.58,140.76,282.82,0.51,5.21,237.55,237.17,247.0,296.25,71.32,562.67,168.61,394.06,0.71,3.36,304.68,273.26,247.0,163.61,22.91,212.59,110.53,102.06,-0.27,2.14,165.2,163.6,247.0,192.71,45.34,327.39,100.97,226.42,0.47,3.39,197.95,194.78,247.0,1.08,0.31,3.46,1.0,2.46,5.87,41.68,1.12,1.0,247.0,10.6,10.39,47.5,1.0,46.5,1.06,3.43,14.82,7.54,247.0
BD-54 = 30.11,9.15,62.32,15.56,46.76,1.11,4.0,31.47,28.13,210.0,7.69,8.31,42.1,1.67,40.43,1.85,6.09,11.31,3.46,210.0,22.69,15.34,84.6,2.96,81.64,1.11,4.3,27.37,20.59,210.0,40.59,12.28,95.06,25.99,69.07,1.71,6.67,42.4,37.33,210.0,168.22,43.46,308.23,107.25,200.98,0.75,2.96,173.72,160.69,210.0,330.3,76.2,514.71,208.25,306.46,-0.05,1.94,338.93,338.96,210.0,258.46,43.33,442.65,171.19,271.46,0.24,3.53,262.05,257.5,210.0,313.37,68.7,568.33,215.02,353.32,0.76,3.42,320.78,308.26,210.0,146.06,20.78,214.62,110.53,104.09,0.88,3.67,147.53,142.02,210.0,81.21,41.58,179.1,13.38,165.71,0.07,1.86,91.19,84.63,210.0,1.36,0.81,5.58,1.0,4.58,2.81,11.18,1.58,1.0,210.0,1.37,0.63,4.25,1.0,3.25,2.29,7.93,1.51,1.07,210.0
