# MAR.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 = MAR 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 = MAR
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

MA-C = 0.36,0.17,0.71,-0.02,0.73,-0.15,2.22,0.4,0.36,1613.0,0.42,0.17,0.79,0.03,0.76,-0.18,2.26,0.46,0.42,1613.0,0.4,0.14,0.73,0.11,0.62,-0.02,2.32,0.42,0.39,1613.0,0.3,0.08,0.54,0.09,0.45,0.17,2.82,0.31,0.3,1613.0,0.23,0.06,0.43,0.09,0.34,0.68,3.35,0.24,0.23,1613.0,0.21,0.05,0.38,0.08,0.3,0.59,3.35,0.21,0.21,1613.0,0.19,0.04,0.35,0.09,0.26,0.36,3.14,0.2,0.19,1613.0,0.2,0.04,0.37,0.09,0.28,0.51,3.41,0.21,0.2,1613.0,0.21,0.05,0.39,0.09,0.3,0.52,3.45,0.21,0.2,1613.0,0.21,0.05,0.4,0.09,0.31,0.49,3.46,0.21,0.2,1613.0,0.22,0.05,0.42,0.09,0.32,0.45,3.25,0.23,0.22,1613.0,0.25,0.07,0.51,0.08,0.44,0.39,3.45,0.26,0.25,1613.0
MA-CEN = 0.31,0.16,0.69,0.02,0.67,0.64,2.02,0.35,0.25,1615.0,0.33,0.19,0.77,0.08,0.7,0.76,2.21,0.38,0.26,1615.0,0.34,0.19,0.77,0.11,0.65,0.68,2.0,0.39,0.26,1615.0,0.3,0.15,0.62,0.11,0.51,0.46,1.67,0.34,0.25,1615.0,0.23,0.1,0.57,0.1,0.48,0.76,2.63,0.25,0.21,1615.0,0.2,0.08,0.51,0.09,0.42,1.16,4.18,0.21,0.18,1615.0,0.17,0.06,0.47,0.09,0.38,1.31,4.85,0.18,0.16,1615.0,0.18,0.06,0.49,0.09,0.41,1.21,4.52,0.19,0.17,1615.0,0.19,0.07,0.52,0.09,0.43,1.24,4.6,0.2,0.18,1615.0,0.19,0.07,0.52,0.1,0.43,1.42,5.36,0.2,0.18,1615.0,0.2,0.07,0.53,0.1,0.43,1.35,5.06,0.21,0.18,1615.0,0.22,0.08,0.58,0.1,0.47,1.18,4.48,0.23,0.21,1615.0
MA-CES = 0.18,0.14,0.64,0.0,0.64,1.69,4.77,0.23,0.13,2128.0,0.2,0.15,0.72,0.03,0.69,1.61,4.49,0.25,0.13,2128.0,0.21,0.16,0.73,0.06,0.67,1.45,3.78,0.26,0.13,2128.0,0.19,0.13,0.52,0.07,0.45,1.24,3.03,0.23,0.13,2128.0,0.16,0.09,0.48,0.07,0.41,1.39,3.97,0.19,0.13,2128.0,0.15,0.07,0.45,0.06,0.39,1.48,4.69,0.16,0.12,2128.0,0.13,0.06,0.41,0.06,0.35,1.48,4.82,0.15,0.12,2128.0,0.14,0.07,0.43,0.06,0.37,1.53,4.94,0.15,0.12,2128.0,0.15,0.07,0.45,0.07,0.39,1.54,5.04,0.16,0.12,2128.0,0.15,0.07,0.44,0.07,0.37,1.56,5.07,0.16,0.12,2128.0,0.15,0.07,0.48,0.07,0.41,1.6,5.32,0.17,0.13,2128.0,0.16,0.08,0.52,0.05,0.46,1.57,4.96,0.18,0.13,2128.0
MA-N = 0.56,0.1,0.79,0.21,0.58,-0.51,3.47,0.56,0.56,1205.0,0.57,0.1,0.82,0.25,0.57,-0.11,2.95,0.58,0.57,1205.0,0.56,0.09,0.75,0.25,0.5,-0.33,2.69,0.57,0.57,1205.0,0.47,0.09,0.68,0.2,0.48,-0.28,2.45,0.48,0.47,1205.0,0.39,0.11,0.68,0.16,0.53,0.1,2.18,0.4,0.38,1205.0,0.32,0.1,0.66,0.14,0.52,0.6,2.85,0.33,0.31,1205.0,0.28,0.08,0.59,0.12,0.47,0.69,3.0,0.29,0.27,1205.0,0.28,0.08,0.59,0.12,0.46,0.75,3.17,0.29,0.27,1205.0,0.3,0.09,0.62,0.12,0.49,0.7,3.05,0.31,0.28,1205.0,0.32,0.11,0.68,0.12,0.56,0.63,2.68,0.34,0.3,1205.0,0.33,0.11,0.68,0.12,0.55,0.66,2.68,0.35,0.31,1205.0,0.37,0.11,0.68,0.17,0.51,0.54,2.52,0.39,0.36,1205.0
MA-OR = 0.18,0.1,0.64,0.08,0.57,1.88,6.37,0.21,0.14,2289.0,0.19,0.1,0.64,0.08,0.57,1.7,5.24,0.21,0.14,2289.0,0.18,0.09,0.56,0.08,0.48,1.67,5.06,0.2,0.14,2289.0,0.16,0.06,0.41,0.08,0.33,1.72,5.83,0.17,0.14,2289.0,0.14,0.04,0.37,0.08,0.3,1.94,8.02,0.15,0.13,2289.0,0.13,0.04,0.34,0.07,0.28,1.98,8.59,0.14,0.12,2289.0,0.13,0.03,0.31,0.07,0.24,1.91,8.91,0.13,0.12,2289.0,0.13,0.03,0.3,0.07,0.23,1.77,7.71,0.13,0.12,2289.0,0.14,0.03,0.31,0.07,0.24,1.74,7.98,0.14,0.13,2289.0,0.14,0.03,0.33,0.07,0.26,2.0,8.64,0.14,0.13,2289.0,0.15,0.04,0.37,0.08,0.29,1.84,7.28,0.15,0.13,2289.0,0.16,0.07,0.49,0.08,0.41,1.84,6.43,0.18,0.14,2289.0
MA-S = 0.1,0.03,0.4,0.01,0.39,3.63,20.76,0.11,0.1,14727.0,0.1,0.04,0.42,0.03,0.4,3.85,21.33,0.11,0.1,14727.0,0.1,0.03,0.38,-0.02,0.41,3.68,20.59,0.11,0.1,14727.0,0.1,0.03,0.36,-0.04,0.39,3.4,19.95,0.11,0.1,14727.0,0.1,0.03,0.33,-0.03,0.36,3.05,18.09,0.1,0.09,14727.0,0.09,0.02,0.29,-0.0,0.3,2.6,15.25,0.1,0.09,14727.0,0.09,0.02,0.28,-0.02,0.3,2.36,13.96,0.09,0.09,14727.0,0.09,0.02,0.29,-0.03,0.32,2.46,15.1,0.1,0.09,14727.0,0.1,0.02,0.3,-0.02,0.32,2.78,17.01,0.1,0.09,14727.0,0.1,0.02,0.32,-0.08,0.41,2.85,19.39,0.1,0.09,14727.0,0.1,0.03,0.33,0.02,0.31,3.19,20.69,0.1,0.09,14727.0,0.1,0.03,0.38,0.01,0.37,3.94,24.96,0.11,0.1,14727.0
MA-TE = 0.24,0.08,0.5,0.07,0.43,0.53,2.82,0.26,0.24,1493.0,0.27,0.09,0.57,0.1,0.47,0.61,3.12,0.29,0.26,1493.0,0.25,0.08,0.52,0.12,0.4,0.47,2.5,0.27,0.25,1493.0,0.21,0.06,0.43,0.09,0.34,0.56,2.99,0.21,0.2,1493.0,0.18,0.05,0.38,0.08,0.3,0.59,3.35,0.19,0.18,1493.0,0.17,0.04,0.32,0.07,0.25,0.31,2.74,0.17,0.17,1493.0,0.16,0.04,0.3,0.07,0.23,0.36,2.76,0.16,0.15,1493.0,0.16,0.04,0.32,0.07,0.25,0.37,2.9,0.16,0.16,1493.0,0.17,0.05,0.33,0.07,0.26,0.38,2.7,0.17,0.16,1493.0,0.16,0.04,0.31,0.06,0.25,0.32,2.47,0.17,0.16,1493.0,0.17,0.05,0.34,0.07,0.28,0.42,2.66,0.18,0.17,1493.0,0.19,0.06,0.38,0.03,0.35,0.35,2.43,0.2,0.18,1493.0
