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

SL-E = 1.24,0.54,3.24,1.0,2.24,2.41,7.75,1.35,1.0,81.0,1.04,0.18,2.33,1.0,1.33,5.31,33.27,1.06,1.0,81.0,27.54,9.42,56.93,9.51,47.42,0.89,4.23,29.09,26.25,81.0,58.54,20.53,107.57,24.84,82.73,0.4,2.51,61.99,56.85,81.0,104.37,26.81,168.61,64.34,104.27,0.73,2.76,107.72,100.97,81.0,193.15,36.53,273.2,121.0,152.19,0.27,2.28,196.54,187.41,81.0,169.19,28.14,227.97,100.97,127.0,-0.01,2.47,171.48,168.92,81.0,387.58,43.98,470.18,281.56,188.62,-0.44,2.32,390.04,392.35,81.0,234.21,30.89,369.38,184.58,184.8,1.5,6.98,236.21,231.46,81.0,127.8,19.79,184.32,84.26,100.07,0.19,3.05,129.31,127.79,81.0,103.56,43.29,221.2,32.09,189.1,0.73,2.89,112.14,94.56,81.0,4.88,2.66,14.65,1.72,12.93,1.11,4.16,5.55,4.0,81.0
SL-N = 1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,190.0,1.04,0.17,2.13,1.0,1.13,4.6,25.07,1.06,1.0,190.0,7.94,10.49,55.23,1.0,54.23,2.26,8.36,13.13,3.4,190.0,13.69,13.98,74.68,1.16,73.52,2.04,7.32,19.54,8.0,190.0,61.36,14.83,123.19,32.09,91.1,0.82,4.38,63.12,60.47,190.0,194.02,31.67,324.29,132.46,191.83,0.85,4.91,196.57,192.38,190.0,254.62,34.95,392.34,168.61,223.73,1.42,6.6,256.99,249.56,190.0,428.11,60.72,616.82,318.97,297.85,0.82,3.76,432.37,422.05,190.0,259.26,48.87,369.38,132.46,236.91,-0.15,2.53,263.8,259.76,190.0,182.86,52.52,337.42,89.66,247.76,0.22,2.54,190.21,185.13,190.0,57.26,18.4,97.97,21.04,76.93,0.27,2.22,60.13,55.35,190.0,1.55,0.8,5.25,1.0,4.25,1.7,5.7,1.75,1.06,190.0
SL-S = 1.87,2.12,16.55,1.0,15.55,3.77,20.78,2.82,1.0,141.0,1.11,0.5,5.1,1.0,4.1,5.42,35.79,1.22,1.0,141.0,8.77,5.27,24.55,1.0,23.55,0.81,3.12,10.23,7.81,141.0,44.26,34.48,117.41,3.01,114.4,0.71,2.04,56.03,28.59,141.0,125.67,42.82,202.06,29.32,172.74,-0.29,2.59,132.72,125.14,141.0,271.08,84.08,695.91,154.3,541.61,1.48,7.02,283.73,257.2,141.0,233.37,63.0,380.69,105.75,274.93,0.32,2.5,241.66,227.97,141.0,377.06,88.09,546.71,176.63,370.09,-0.32,2.67,387.14,374.83,141.0,261.17,62.99,392.34,184.58,207.76,0.77,2.32,268.6,241.98,141.0,130.8,32.41,225.2,68.22,156.98,0.37,2.66,134.72,126.96,141.0,84.41,35.2,196.06,25.99,170.07,1.29,4.14,91.41,74.82,141.0,6.29,5.59,28.1,1.0,27.1,1.93,6.34,8.4,5.1,141.0
SL-W = 1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,5.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,5.0,1.39,0.88,2.97,1.0,1.97,1.5,3.25,1.6,1.0,5.0,5.25,3.8,11.98,2.87,9.11,1.43,3.16,6.25,3.55,5.0,56.01,32.73,113.22,36.21,77.01,1.34,3.01,63.2,41.15,5.0,172.4,35.16,226.62,145.01,81.61,0.76,2.02,175.25,156.81,5.0,268.78,27.12,315.12,249.56,65.56,1.19,2.82,269.87,261.38,5.0,445.96,77.86,508.45,309.81,198.63,-1.32,3.06,451.37,470.18,5.0,238.55,35.39,294.47,208.25,86.22,0.75,2.28,240.64,236.66,5.0,126.71,24.03,151.52,100.97,50.54,-0.27,1.25,128.52,137.37,5.0,78.64,18.84,109.12,64.23,44.9,0.93,2.37,80.42,71.77,5.0,2.89,1.25,4.98,1.94,3.04,1.05,2.61,3.1,2.54,5.0
