# SRB.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 = SRB vegetation 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 = SRB
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

RS-CGO = 0.31,0.13,0.67,0.01,0.66,-0.05,2.44,0.34,0.31,609.0,0.33,0.11,0.61,0.02,0.59,-0.44,2.97,0.35,0.36,609.0,0.33,0.14,0.62,-0.01,0.63,-0.4,2.3,0.36,0.35,609.0,0.48,0.13,0.72,0.09,0.63,-0.55,2.82,0.49,0.49,609.0,0.67,0.08,0.83,0.3,0.53,-1.19,4.63,0.67,0.68,609.0,0.77,0.08,0.9,0.32,0.58,-1.83,7.26,0.77,0.79,610.0,0.73,0.09,0.88,0.27,0.61,-1.73,6.9,0.74,0.76,609.0,0.69,0.09,0.86,0.24,0.61,-1.3,5.23,0.7,0.71,609.0,0.64,0.06,0.79,0.27,0.52,-1.43,7.96,0.64,0.64,609.0,0.56,0.06,0.68,0.28,0.4,-1.14,6.31,0.56,0.56,610.0,0.54,0.06,0.69,0.26,0.43,-0.73,5.05,0.54,0.54,609.0,0.31,0.15,0.67,0.01,0.67,0.12,1.94,0.35,0.29,609.0
RS-KOS = 0.22,0.05,0.33,-0.02,0.35,-2.3,10.55,0.22,0.23,478.0,0.36,0.08,0.46,-0.0,0.46,-2.29,8.12,0.37,0.39,478.0,0.42,0.09,0.53,0.02,0.51,-2.09,7.46,0.42,0.44,478.0,0.57,0.1,0.73,0.17,0.55,-1.88,6.39,0.58,0.61,478.0,0.71,0.07,0.83,0.43,0.4,-1.29,4.92,0.71,0.72,478.0,0.72,0.08,0.86,0.53,0.32,-0.4,2.28,0.73,0.73,478.0,0.68,0.08,0.84,0.49,0.35,-0.29,2.22,0.69,0.69,478.0,0.66,0.07,0.81,0.45,0.36,-0.15,2.21,0.66,0.66,478.0,0.59,0.06,0.75,0.42,0.33,0.07,2.71,0.59,0.58,478.0,0.54,0.04,0.62,0.4,0.22,-0.65,3.8,0.54,0.55,478.0,0.49,0.05,0.59,0.28,0.31,-0.9,5.09,0.49,0.49,478.0,0.33,0.11,0.55,0.03,0.52,-0.19,2.6,0.35,0.32,478.0
RS-SRB = 0.23,0.06,0.41,0.01,0.4,-0.4,4.69,0.23,0.23,2491.0,0.39,0.05,0.5,0.14,0.37,-1.37,5.73,0.39,0.4,2491.0,0.46,0.04,0.59,0.21,0.38,-0.94,6.68,0.47,0.47,2491.0,0.65,0.07,0.8,0.35,0.44,-0.88,3.28,0.65,0.67,2491.0,0.77,0.06,0.88,0.53,0.35,-0.78,3.69,0.77,0.77,2491.0,0.77,0.08,0.9,0.55,0.35,-0.6,2.39,0.78,0.79,2491.0,0.75,0.08,0.89,0.44,0.45,-0.56,2.54,0.75,0.76,2491.0,0.72,0.07,0.88,0.4,0.48,-0.69,2.96,0.73,0.74,2491.0,0.62,0.08,0.78,0.37,0.41,-0.42,2.65,0.62,0.62,2491.0,0.59,0.05,0.7,0.38,0.31,-1.08,5.0,0.59,0.59,2491.0,0.49,0.06,0.66,0.26,0.4,-0.7,3.46,0.5,0.5,2491.0,0.28,0.08,0.53,0.09,0.44,0.74,3.24,0.29,0.27,2491.0
RS-VOJ = 0.21,0.07,0.44,0.14,0.3,1.28,3.78,0.22,0.19,994.0,0.35,0.03,0.46,0.21,0.26,-0.19,3.85,0.35,0.35,994.0,0.45,0.04,0.58,0.33,0.25,0.33,3.05,0.45,0.44,994.0,0.57,0.06,0.74,0.4,0.35,-0.16,2.93,0.58,0.58,994.0,0.61,0.05,0.83,0.46,0.37,0.47,3.78,0.61,0.61,994.0,0.69,0.04,0.83,0.59,0.24,0.46,3.37,0.69,0.69,994.0,0.67,0.05,0.84,0.52,0.31,0.07,3.09,0.68,0.68,994.0,0.56,0.06,0.79,0.4,0.39,0.21,2.94,0.56,0.56,994.0,0.43,0.07,0.69,0.27,0.41,0.77,3.49,0.44,0.42,994.0,0.44,0.06,0.68,0.31,0.37,0.7,3.4,0.45,0.44,994.0,0.44,0.04,0.56,0.34,0.21,-0.01,2.61,0.44,0.44,994.0,0.38,0.1,0.54,0.18,0.36,-0.57,1.82,0.4,0.43,994.0
