# COM.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 = COM rainfall 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 = COM
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

KM-G = 599.46,15.25,616.82,580.71,36.11,0.12,1.44,599.62,596.4,6.0,374.09,22.97,416.74,358.4,58.34,1.2,3.01,374.67,364.36,6.0,156.94,14.77,184.58,143.24,41.34,1.19,3.17,157.52,152.96,6.0,90.34,8.3,99.47,76.97,22.5,-0.48,2.16,90.66,90.81,6.0,13.99,3.19,17.56,10.09,7.47,-0.13,1.39,14.29,14.28,6.0,36.47,3.61,43.39,33.56,9.83,1.37,3.39,36.62,35.13,6.0,8.8,2.71,12.53,5.24,7.28,0.07,1.74,9.14,8.71,6.0,4.39,1.49,6.6,3.01,3.59,0.38,1.61,4.59,4.12,6.0,6.04,3.27,11.17,2.64,8.53,0.57,1.94,6.74,5.23,6.0,22.13,3.09,26.41,18.09,8.31,0.28,1.83,22.31,21.07,6.0,47.15,5.52,54.47,38.28,16.19,-0.37,2.38,47.42,47.57,6.0,71.21,15.71,92.4,53.81,38.59,0.31,1.51,72.64,67.77,6.0
KM-ILM = 589.74,12.77,598.76,580.71,18.05,0.0,1.0,589.8,589.74,2.0,209.98,6.56,214.62,205.34,9.28,-0.0,1.0,210.03,209.98,2.0,149.45,0.0,149.45,149.45,0.0,NaN,NaN,149.45,149.45,2.0,33.75,5.05,37.32,30.17,7.14,-0.0,1.0,33.93,33.75,2.0,10.38,1.11,11.17,9.59,1.58,0.0,1.0,10.41,10.38,2.0,6.15,2.3,7.78,4.52,3.25,0.0,1.0,6.36,6.15,2.0,13.14,1.53,14.21,12.06,2.16,-0.0,1.0,13.18,13.14,2.0,12.41,0.26,12.6,12.23,0.37,-0.0,1.0,12.42,12.41,2.0,9.35,2.57,11.17,7.53,3.64,-0.0,1.0,9.52,9.35,2.0,44.72,0.0,44.72,44.72,0.0,-2.400983919E7,3.8263097023133075E14,44.72,44.72,2.0,97.68,22.97,113.92,81.44,32.48,0.0,1.0,99.02,97.68,2.0,229.87,7.19,234.95,224.79,10.16,0.0,1.0,229.93,229.87,2.0
KM-M = 598.49,NaN,598.49,598.49,0.0,NaN,NaN,598.49,598.49,1.0,358.4,NaN,358.4,358.4,0.0,NaN,NaN,358.4,358.4,1.0,168.61,NaN,168.61,168.61,0.0,NaN,NaN,168.61,168.61,1.0,163.6,NaN,163.6,163.6,0.0,NaN,NaN,163.6,163.6,1.0,23.74,NaN,23.74,23.74,0.0,NaN,NaN,23.74,23.74,1.0,44.72,NaN,44.72,44.72,0.0,NaN,NaN,44.72,44.72,1.0,12.6,NaN,12.6,12.6,0.0,NaN,NaN,12.6,12.6,1.0,19.81,NaN,19.81,19.81,0.0,NaN,NaN,19.81,19.81,1.0,11.51,NaN,11.51,11.51,0.0,NaN,NaN,11.51,11.51,1.0,29.32,NaN,29.32,29.32,0.0,NaN,NaN,29.32,29.32,1.0,17.56,NaN,17.56,17.56,0.0,NaN,NaN,17.56,17.56,1.0,95.06,NaN,95.06,95.06,0.0,NaN,NaN,95.06,95.06,1.0
KM-NZ = 523.06,NaN,523.06,523.06,0.0,NaN,NaN,523.06,523.06,1.0,224.58,NaN,224.58,224.58,0.0,NaN,NaN,224.58,224.58,1.0,231.67,NaN,231.67,231.67,0.0,NaN,NaN,231.67,231.67,1.0,83.76,NaN,83.76,83.76,0.0,NaN,NaN,83.76,83.76,1.0,15.66,NaN,15.66,15.66,0.0,NaN,NaN,15.66,15.66,1.0,18.81,NaN,18.81,18.81,0.0,NaN,NaN,18.81,18.81,1.0,7.05,NaN,7.05,7.05,0.0,NaN,NaN,7.05,7.05,1.0,14.65,NaN,14.65,14.65,0.0,NaN,NaN,14.65,14.65,1.0,8.65,NaN,8.65,8.65,0.0,NaN,NaN,8.65,8.65,1.0,31.34,NaN,31.34,31.34,0.0,NaN,NaN,31.34,31.34,1.0,22.32,NaN,22.32,22.32,0.0,NaN,NaN,22.32,22.32,1.0,245.85,NaN,245.85,245.85,0.0,NaN,NaN,245.85,245.85,1.0
