# GIN.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 = GIN vegetation data for 2005 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=2005

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

# ISO3166-1 alpha3 code for the country
ISOKEY = GIN
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

GN-KA = 0.41,0.07,0.6,0.25,0.36,0.4,2.12,0.41,0.39,3326.0,0.39,0.06,0.55,0.24,0.31,0.37,2.29,0.39,0.38,3326.0,0.45,0.09,0.66,0.24,0.43,0.26,1.96,0.46,0.43,3326.0,0.49,0.11,0.72,0.24,0.48,0.12,1.63,0.51,0.47,3326.0,0.58,0.1,0.79,0.33,0.46,-0.15,1.95,0.59,0.57,3326.0,0.69,0.06,0.83,0.45,0.38,-0.78,3.84,0.69,0.7,3326.0,0.66,0.07,0.81,0.44,0.37,-0.31,2.72,0.66,0.67,3326.0,0.69,0.05,0.8,0.48,0.32,-0.95,4.21,0.69,0.69,3326.0,0.71,0.03,0.79,0.56,0.23,-0.85,3.6,0.71,0.72,3326.0,0.71,0.06,0.83,0.5,0.32,-0.36,2.43,0.71,0.71,3326.0,0.61,0.08,0.78,0.4,0.39,0.09,1.99,0.61,0.6,3326.0,0.48,0.08,0.7,0.29,0.41,0.34,2.06,0.49,0.47,3326.0
GN-KD = 0.54,0.07,0.71,0.07,0.65,-1.62,11.14,0.54,0.54,1479.0,0.5,0.07,0.68,0.01,0.67,-1.56,10.81,0.5,0.51,1480.0,0.56,0.08,0.71,0.08,0.63,-1.63,9.46,0.56,0.57,1480.0,0.56,0.09,0.71,0.05,0.67,-1.55,8.3,0.56,0.57,1480.0,0.59,0.09,0.77,0.14,0.63,-1.14,5.04,0.6,0.6,1479.0,0.62,0.09,0.75,0.05,0.7,-2.03,9.91,0.62,0.63,1479.0,0.64,0.1,0.83,0.17,0.66,-1.03,4.37,0.65,0.66,1480.0,0.59,0.08,0.8,0.19,0.61,-1.26,5.77,0.6,0.61,1479.0,0.73,0.09,0.85,0.2,0.65,-2.35,10.39,0.74,0.76,1479.0,0.75,0.08,0.85,0.17,0.68,-3.33,18.73,0.75,0.77,1479.0,0.7,0.07,0.81,0.19,0.61,-2.48,12.79,0.7,0.71,1479.0,0.61,0.07,0.75,0.09,0.66,-2.54,16.53,0.62,0.63,1479.0
GN-LA = 0.45,0.07,0.67,0.3,0.37,0.26,2.28,0.46,0.44,1819.0,0.41,0.07,0.64,0.26,0.38,0.23,2.28,0.42,0.41,1819.0,0.49,0.08,0.73,0.3,0.43,0.08,2.38,0.5,0.49,1819.0,0.5,0.09,0.73,0.3,0.42,0.37,2.5,0.51,0.49,1819.0,0.57,0.07,0.8,0.36,0.44,0.51,3.55,0.58,0.57,1819.0,0.65,0.05,0.79,0.46,0.33,-0.39,3.32,0.66,0.66,1819.0,0.69,0.05,0.81,0.51,0.31,-0.07,2.31,0.69,0.69,1819.0,0.69,0.06,0.81,0.51,0.3,-0.18,2.56,0.69,0.69,1819.0,0.74,0.04,0.83,0.63,0.2,-0.03,2.54,0.74,0.74,1819.0,0.73,0.05,0.84,0.57,0.26,0.03,2.53,0.73,0.73,1819.0,0.65,0.06,0.79,0.49,0.3,0.12,2.48,0.65,0.64,1819.0,0.54,0.07,0.72,0.38,0.35,0.19,2.29,0.54,0.53,1819.0
GN-NZ = 0.59,0.12,0.8,0.34,0.45,-0.06,1.93,0.6,0.6,1500.0,0.56,0.11,0.77,0.34,0.43,-0.14,1.73,0.58,0.57,1500.0,0.65,0.08,0.81,0.38,0.42,-0.98,3.45,0.65,0.67,1500.0,0.66,0.05,0.8,0.5,0.3,-0.51,3.0,0.66,0.67,1500.0,0.69,0.05,0.8,0.48,0.32,-0.76,3.64,0.69,0.7,1500.0,0.59,0.11,0.8,0.36,0.43,0.16,1.84,0.6,0.57,1500.0,0.51,0.12,0.75,0.21,0.54,0.01,2.29,0.52,0.5,1500.0,0.6,0.07,0.77,0.31,0.46,-0.43,2.72,0.6,0.61,1500.0,0.74,0.04,0.84,0.55,0.29,-0.23,2.91,0.74,0.74,1500.0,0.75,0.04,0.84,0.55,0.29,-0.74,3.67,0.76,0.76,1500.0,0.7,0.08,0.83,0.5,0.33,-0.3,2.01,0.7,0.71,1500.0,0.65,0.1,0.81,0.4,0.41,-0.6,2.22,0.65,0.68,1500.0
