# BOL.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 vegetation data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = BOL vegetation data for 2001 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=2001

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

# ISO3166-1 alpha3 code for the country
ISOKEY = BOL
ADMIN_LEVEL = 1
UNITS = UNITS
DATA_TYPE = vegetation

# 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: 0.9 
# Minimum: -0.1

BO-B = 0.62,0.08,0.83,0.1,0.72,-0.25,3.55,0.63,0.62,6955.0,0.71,0.09,0.9,0.07,0.83,-0.48,4.22,0.72,0.71,6955.0,0.71,0.08,0.9,0.1,0.8,-0.59,4.12,0.71,0.72,6955.0,0.76,0.1,0.9,0.1,0.8,-0.56,3.71,0.76,0.76,6955.0,0.76,0.1,0.9,0.09,0.81,-0.51,3.49,0.76,0.76,6955.0,0.73,0.1,0.9,0.06,0.84,-0.43,3.35,0.74,0.73,6955.0,0.72,0.12,0.9,0.06,0.84,-0.33,2.68,0.73,0.72,6955.0,0.7,0.13,0.9,0.03,0.87,-0.26,2.26,0.71,0.7,6955.0,0.7,0.13,0.9,0.08,0.82,-0.23,2.33,0.71,0.7,6955.0,0.74,0.11,0.9,-0.05,0.95,-0.58,3.6,0.74,0.74,6955.0,0.7,0.09,0.9,0.07,0.83,-0.25,3.82,0.71,0.7,6955.0,0.72,0.09,0.9,0.06,0.84,-0.37,4.07,0.73,0.72,6955.0
BO-C = 0.52,0.17,0.81,0.17,0.64,-0.32,1.78,0.55,0.56,1931.0,0.62,0.16,0.86,0.26,0.6,-0.44,1.82,0.64,0.66,1931.0,0.62,0.17,0.89,0.19,0.7,-0.08,1.75,0.65,0.63,1931.0,0.66,0.18,0.9,0.27,0.63,-0.32,1.77,0.68,0.67,1931.0,0.63,0.21,0.89,0.23,0.66,-0.35,1.57,0.67,0.7,1931.0,0.55,0.21,0.88,0.2,0.69,0.06,1.56,0.59,0.51,1931.0,0.58,0.26,0.88,0.18,0.7,-0.19,1.24,0.64,0.7,1931.0,0.57,0.27,0.88,0.17,0.71,-0.1,1.23,0.63,0.63,1931.0,0.55,0.25,0.88,0.17,0.71,-0.06,1.28,0.6,0.58,1931.0,0.54,0.25,0.88,0.15,0.73,0.04,1.28,0.6,0.48,1931.0,0.54,0.22,0.88,0.17,0.71,-0.07,1.49,0.58,0.53,1931.0,0.6,0.24,0.89,0.19,0.71,-0.24,1.42,0.65,0.68,1931.0
BO-H = 0.61,0.23,0.89,0.12,0.76,-0.57,1.94,0.65,0.68,1769.0,0.65,0.21,0.9,0.16,0.74,-0.71,2.17,0.68,0.72,1769.0,0.65,0.21,0.9,0.16,0.73,-0.7,2.17,0.68,0.72,1769.0,0.62,0.21,0.89,0.15,0.74,-0.54,1.98,0.65,0.66,1769.0,0.53,0.21,0.86,0.12,0.74,-0.22,1.82,0.57,0.55,1769.0,0.47,0.2,0.82,0.1,0.72,-0.05,1.75,0.51,0.48,1769.0,0.4,0.18,0.77,0.09,0.68,0.11,1.85,0.44,0.39,1769.0,0.38,0.16,0.75,0.09,0.67,0.18,1.97,0.42,0.38,1769.0,0.4,0.18,0.82,0.09,0.74,0.16,1.94,0.43,0.41,1769.0,0.44,0.2,0.84,0.09,0.75,-0.0,1.7,0.48,0.44,1769.0,0.51,0.24,0.88,0.08,0.8,-0.14,1.52,0.56,0.53,1769.0,0.54,0.24,0.88,0.09,0.8,-0.2,1.59,0.59,0.56,1769.0
BO-L = 0.42,0.21,0.83,-0.02,0.85,-0.14,1.61,0.47,0.46,4412.0,0.55,0.23,0.9,0.01,0.89,-0.43,1.72,0.6,0.65,4412.0,0.54,0.22,0.9,-0.02,0.92,-0.26,1.76,0.58,0.59,4412.0,0.61,0.24,0.9,0.04,0.86,-0.47,1.75,0.65,0.69,4412.0,0.59,0.26,0.9,0.03,0.87,-0.52,1.65,0.65,0.71,4412.0,0.51,0.24,0.9,0.03,0.87,-0.12,1.65,0.56,0.54,4412.0,0.59,0.28,0.9,0.05,0.85,-0.49,1.47,0.65,0.74,4412.0,0.58,0.29,0.89,0.05,0.84,-0.38,1.39,0.64,0.71,4412.0,0.57,0.28,0.89,0.05,0.84,-0.38,1.4,0.64,0.7,4412.0,0.57,0.28,0.9,0.02,0.88,-0.32,1.38,0.64,0.69,4412.0,0.55,0.26,0.9,0.08,0.82,-0.34,1.49,0.61,0.64,4412.0,0.55,0.27,0.9,0.05,0.85,-0.35,1.41,0.62,0.68,4412.0
BO-N = 0.67,0.1,0.87,0.39,0.48,-0.44,2.39,0.68,0.69,2075.0,0.75,0.05,0.89,0.62,0.27,0.13,2.5,0.75,0.75,2075.0,0.72,0.06,0.88,0.53,0.36,-0.02,3.06,0.72,0.71,2075.0,0.85,0.04,0.9,0.68,0.22,-1.38,4.75,0.86,0.87,2075.0,0.87,0.03,0.9,0.7,0.2,-1.67,6.82,0.87,0.88,2075.0,0.86,0.03,0.9,0.68,0.22,-1.19,4.45,0.86,0.86,2075.0,0.86,0.03,0.9,0.66,0.24,-2.36,9.98,0.87,0.88,2075.0,0.86,0.03,0.9,0.63,0.26,-2.55,12.43,0.86,0.87,2075.0,0.86,0.03,0.9,0.64,0.26,-2.81,14.51,0.86,0.87,2075.0,0.83,0.04,0.9,0.64,0.26,-0.96,3.89,0.83,0.84,2075.0,0.8,0.07,0.9,0.53,0.37,-1.06,3.79,0.8,0.82,2075.0,0.79,0.04,0.89,0.62,0.28,-0.26,2.68,0.79,0.79,2075.0
BO-O = 0.15,0.06,0.32,-0.08,0.4,-1.23,5.77,0.16,0.16,1859.0,0.18,0.08,0.42,-0.06,0.48,-0.63,3.53,0.2,0.19,1859.0,0.2,0.09,0.42,-0.1,0.52,-0.83,3.85,0.22,0.21,1859.0,0.19,0.08,0.38,-0.08,0.46,-0.91,4.06,0.2,0.2,1859.0,0.16,0.06,0.29,-0.1,0.39,-1.19,4.75,0.17,0.17,1859.0,0.14,0.06,0.25,-0.1,0.35,-1.75,6.5,0.15,0.16,1859.0,0.13,0.06,0.23,-0.1,0.33,-1.78,6.39,0.14,0.14,1858.0,0.13,0.06,0.23,-0.1,0.33,-1.79,6.31,0.14,0.15,1859.0,0.13,0.06,0.22,-0.1,0.32,-1.89,6.71,0.14,0.15,1859.0,0.13,0.06,0.22,-0.1,0.32,-1.98,7.13,0.15,0.15,1846.0,0.13,0.07,0.22,-0.1,0.32,-2.0,6.9,0.15,0.15,1859.0,0.15,0.07,0.26,-0.1,0.36,-1.76,6.37,0.16,0.16,1859.0
BO-P = 0.15,0.1,0.69,-0.1,0.79,0.36,4.98,0.18,0.14,4098.0,0.18,0.12,0.74,-0.1,0.84,0.43,3.96,0.22,0.17,4098.0,0.19,0.12,0.75,-0.1,0.85,0.25,3.85,0.22,0.18,4098.0,0.17,0.11,0.67,-0.1,0.77,0.12,4.15,0.2,0.15,4098.0,0.14,0.09,0.59,-0.1,0.69,-0.16,4.8,0.17,0.14,4098.0,0.13,0.08,0.47,-0.1,0.57,-0.52,5.1,0.15,0.13,4096.0,0.12,0.07,0.38,-0.1,0.48,-0.57,5.17,0.14,0.12,4097.0,0.11,0.06,0.35,-0.1,0.45,-0.59,4.78,0.13,0.12,4098.0,0.11,0.05,0.34,-0.1,0.44,-0.35,4.45,0.13,0.12,4098.0,0.12,0.06,0.41,-0.1,0.5,0.06,4.84,0.13,0.12,4098.0,0.12,0.06,0.47,-0.09,0.57,0.34,5.05,0.14,0.12,4098.0,0.13,0.07,0.56,-0.08,0.63,0.47,5.17,0.15,0.13,4098.0
BO-S = 0.76,0.07,0.9,0.4,0.5,-0.43,3.16,0.76,0.76,12344.0,0.8,0.07,0.9,0.4,0.5,-1.02,3.71,0.8,0.82,12344.0,0.8,0.06,0.9,0.41,0.49,-0.92,3.84,0.8,0.81,12344.0,0.81,0.08,0.9,0.42,0.48,-1.07,3.64,0.81,0.83,12344.0,0.78,0.1,0.9,0.39,0.51,-1.01,3.41,0.79,0.81,12344.0,0.74,0.11,0.9,0.34,0.56,-0.76,3.09,0.75,0.76,12344.0,0.68,0.13,0.9,0.27,0.63,-0.27,2.32,0.69,0.68,12344.0,0.6,0.15,0.9,0.23,0.67,0.42,2.01,0.62,0.57,12344.0,0.63,0.15,0.9,0.28,0.62,0.23,2.14,0.64,0.61,12344.0,0.73,0.13,0.9,0.29,0.61,-0.83,2.84,0.74,0.76,12344.0,0.76,0.09,0.9,0.36,0.54,-1.04,4.17,0.77,0.78,12344.0,0.77,0.09,0.9,0.4,0.5,-0.63,2.87,0.78,0.78,12344.0
BO-T = 0.7,0.2,0.9,0.16,0.74,-1.26,3.39,0.72,0.77,1287.0,0.71,0.18,0.9,0.19,0.71,-1.24,3.52,0.73,0.77,1287.0,0.71,0.18,0.9,0.21,0.69,-1.24,3.49,0.73,0.78,1287.0,0.68,0.19,0.89,0.19,0.7,-1.07,3.06,0.71,0.74,1287.0,0.61,0.2,0.86,0.16,0.7,-0.8,2.57,0.64,0.65,1287.0,0.54,0.19,0.85,0.13,0.72,-0.48,2.32,0.57,0.57,1287.0,0.48,0.18,0.83,0.11,0.71,-0.15,2.32,0.51,0.5,1287.0,0.44,0.17,0.8,0.1,0.7,0.09,2.44,0.47,0.44,1287.0,0.47,0.18,0.83,0.1,0.73,-0.05,2.41,0.5,0.48,1287.0,0.55,0.2,0.85,0.1,0.75,-0.68,2.34,0.58,0.6,1287.0,0.62,0.22,0.89,0.1,0.79,-0.86,2.67,0.65,0.67,1287.0,0.63,0.21,0.9,0.12,0.78,-0.88,2.86,0.66,0.68,1287.0
