# KGZ.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 = KGZ vegetation data for 2010 at admin level 2

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

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

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

KG-ISK-G040001 = 0.01,0.05,0.26,-0.04,0.3,2.18,7.03,0.05,-0.01,4128.0,0.0,0.04,0.19,-0.03,0.22,2.12,6.69,0.04,-0.02,4128.0,0.0,0.06,0.28,-0.06,0.34,1.58,4.8,0.06,-0.02,4128.0,0.07,0.1,0.4,-0.06,0.47,0.81,2.8,0.12,0.04,4128.0,0.2,0.15,0.66,-0.05,0.7,0.48,2.46,0.25,0.18,4128.0,0.32,0.18,0.83,-0.04,0.88,0.18,2.27,0.37,0.32,4128.0,0.37,0.18,0.8,-0.03,0.83,0.01,2.14,0.41,0.37,4128.0,0.32,0.15,0.7,-0.03,0.73,-0.0,2.34,0.35,0.32,4128.0,0.22,0.13,0.58,-0.04,0.62,0.11,2.25,0.26,0.23,4128.0,0.1,0.11,0.41,-0.04,0.44,0.46,2.16,0.15,0.09,4128.0,0.1,0.09,0.35,-0.04,0.39,0.41,2.07,0.13,0.09,4128.0,0.03,0.06,0.3,-0.05,0.35,1.55,4.98,0.07,0.01,4128.0
KG-KIT-G060001 = 0.04,0.06,0.25,-0.03,0.27,1.13,3.29,0.07,0.01,793.0,0.04,0.07,0.27,-0.03,0.29,1.16,3.19,0.08,0.0,793.0,0.09,0.12,0.37,-0.03,0.4,0.7,1.95,0.16,0.03,793.0,0.25,0.25,0.63,-0.06,0.69,0.13,1.31,0.35,0.21,793.0,0.41,0.23,0.75,-0.03,0.79,-0.3,1.6,0.47,0.46,793.0,0.49,0.16,0.81,0.04,0.77,-0.7,3.13,0.52,0.52,793.0,0.48,0.12,0.76,0.08,0.69,-0.5,3.27,0.5,0.47,793.0,0.41,0.09,0.64,0.07,0.57,-0.68,3.77,0.42,0.42,793.0,0.32,0.1,0.51,0.01,0.5,-1.0,3.54,0.33,0.34,793.0,0.23,0.12,0.42,-0.03,0.46,-0.33,1.83,0.26,0.25,793.0,0.19,0.12,0.37,-0.03,0.39,-0.17,1.56,0.22,0.19,793.0,0.05,0.06,0.26,-0.03,0.29,1.3,4.58,0.07,0.03,793.0
KG-O-G080001 = 0.02,0.05,0.23,-0.05,0.28,1.73,5.4,0.06,-0.0,3686.0,0.02,0.07,0.27,-0.04,0.31,1.77,5.13,0.07,-0.01,3686.0,0.08,0.13,0.44,-0.06,0.5,0.8,2.21,0.15,0.02,3686.0,0.22,0.2,0.67,-0.08,0.75,0.19,1.71,0.3,0.21,3686.0,0.35,0.22,0.83,-0.06,0.89,-0.08,1.99,0.41,0.38,3686.0,0.42,0.2,0.81,-0.05,0.86,-0.32,2.47,0.46,0.43,3686.0,0.4,0.17,0.75,-0.04,0.8,-0.32,2.74,0.43,0.4,3686.0,0.34,0.13,0.65,-0.03,0.67,-0.18,2.72,0.36,0.34,3686.0,0.28,0.12,0.59,-0.03,0.62,-0.21,2.75,0.3,0.28,3686.0,0.2,0.12,0.5,-0.03,0.53,-0.17,2.29,0.23,0.21,3686.0,0.18,0.1,0.45,-0.04,0.49,-0.2,2.2,0.21,0.19,3686.0,0.1,0.09,0.34,-0.03,0.37,0.33,1.8,0.13,0.08,3686.0
