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

# The title
TITLE = KGZ rainfall 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 = KGZ
ADMIN_LEVEL = 1
UNITS = MM
DATA_TYPE = rainfall

# 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: 2000.0
# Minimum: 1.0
# Data not available for locations above 35 degrees N and below 35 degrees S Latitude

KG-ISK = 19.1,5.74,37.32,7.32,30.0,0.4,2.55,19.94,18.65,653.0,21.09,8.76,55.23,9.6,45.63,1.31,4.39,22.84,18.09,653.0,44.03,9.38,79.32,16.53,62.79,-0.3,3.47,45.01,44.72,653.0,37.71,26.21,190.23,3.66,186.57,1.48,6.34,45.91,32.59,653.0,78.72,32.06,227.97,29.32,198.65,1.26,5.04,84.99,71.45,653.0,46.59,11.8,104.06,25.21,78.85,1.02,4.89,48.06,44.72,653.0,17.68,8.71,53.59,4.52,49.08,0.82,3.31,19.71,16.53,653.0,57.26,13.14,110.53,27.27,83.26,0.61,3.3,58.75,55.23,653.0,12.65,5.69,36.21,2.19,34.02,0.45,3.06,13.87,12.6,653.0,12.62,4.98,25.99,3.77,22.22,0.3,2.29,13.56,12.22,653.0,12.65,9.43,51.68,2.13,49.55,1.4,4.71,15.78,9.49,653.0,35.19,9.97,60.47,8.77,51.69,-0.49,2.65,36.57,37.32,653.0
KG-KIT = 29.62,2.91,39.41,23.03,16.37,0.59,4.87,29.76,29.33,130.0,35.57,6.67,43.41,16.8,26.62,-1.5,4.51,36.19,37.34,130.0,59.45,8.39,79.32,38.41,40.92,0.2,3.38,60.04,58.67,130.0,90.41,43.05,281.56,34.09,247.47,1.37,5.78,100.06,80.71,130.0,170.65,49.08,299.07,84.6,214.47,0.07,2.27,177.52,168.96,130.0,62.09,25.2,128.53,13.79,114.73,0.34,2.95,66.98,61.32,130.0,13.71,6.13,33.08,4.13,28.95,0.58,3.19,15.0,13.14,130.0,71.93,15.23,107.25,46.57,60.68,0.42,2.03,73.51,67.7,130.0,8.3,5.22,27.6,1.0,26.6,1.12,4.18,9.79,7.44,130.0,14.02,4.93,25.22,5.1,20.13,0.24,2.26,14.86,13.51,130.0,42.35,13.25,76.03,23.41,52.62,0.4,2.31,44.36,40.91,130.0,43.91,3.84,54.56,31.14,23.42,-0.67,4.05,44.08,44.62,130.0
KG-O = 37.53,20.04,128.58,15.1,113.49,2.21,8.36,42.54,33.58,600.0,50.21,16.63,117.41,28.46,88.95,2.05,7.5,52.89,46.8,600.0,58.17,16.75,145.01,31.14,113.87,2.38,10.4,60.53,53.79,600.0,57.1,37.02,265.08,15.1,249.98,2.03,7.52,68.04,46.09,600.0,77.74,46.17,308.23,23.07,285.15,1.44,5.21,90.4,64.99,600.0,36.86,12.9,95.06,9.56,85.5,0.56,3.39,39.05,36.21,600.0,10.04,6.63,38.46,1.16,37.3,1.18,4.48,12.03,8.15,600.0,28.49,13.45,72.46,6.58,65.88,0.74,2.76,31.5,25.21,600.0,3.0,2.68,22.35,1.0,21.35,3.14,17.07,4.02,2.16,600.0,14.95,5.67,36.21,5.41,30.79,0.57,2.78,15.98,14.23,600.0,29.32,20.23,110.53,3.52,107.02,1.34,5.1,35.61,25.22,600.0,37.04,11.06,72.46,11.86,60.6,0.09,2.64,38.65,36.78,600.0
