# SDN.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 = SDN 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 = SDN
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

SD-BEG = 1.64,1.47,12.22,1.0,11.22,3.52,18.34,2.2,1.0,1067.0,1.19,0.79,11.17,1.0,10.17,6.3,52.6,1.43,1.0,1067.0,35.32,25.19,132.46,1.0,131.46,0.7,3.06,43.38,32.09,1067.0,67.22,31.68,257.2,14.65,242.55,1.35,6.27,74.31,59.73,1067.0,42.32,14.22,86.84,13.13,73.7,0.48,2.68,44.65,39.71,1067.0,94.98,26.85,179.1,35.13,143.96,0.36,2.64,98.7,92.24,1067.0,62.83,27.54,149.45,18.65,130.8,0.63,2.31,68.6,54.91,1067.0,158.13,59.06,404.36,50.46,353.9,1.05,4.37,168.79,149.45,1067.0,123.02,68.62,347.75,23.03,324.72,0.66,2.77,140.85,113.92,1067.0,131.62,59.26,392.34,36.21,356.13,0.71,3.12,144.34,122.79,1067.0,2.32,2.74,23.03,1.0,22.03,3.03,14.33,3.59,1.0,1067.0,1.3,1.13,12.22,1.0,11.22,4.85,29.48,1.73,1.0,1067.0
SD-C = 1.11,0.73,11.17,1.0,10.17,9.61,104.84,1.33,1.0,765.0,1.0,0.0,1.08,1.0,0.08,27.59,767.57,1.0,1.0,765.0,1.03,0.28,5.75,1.0,4.75,13.15,190.13,1.06,1.0,765.0,21.72,8.09,50.22,5.93,44.29,0.13,2.41,23.18,22.04,765.0,17.49,11.92,48.96,1.0,47.96,0.51,2.1,21.16,15.65,765.0,60.4,42.82,179.1,2.06,177.03,0.38,2.06,74.03,54.41,765.0,71.54,24.32,142.85,18.09,124.76,0.18,2.23,75.56,69.61,765.0,115.01,66.61,327.39,33.77,293.63,0.97,3.06,132.89,93.73,765.0,40.19,14.96,89.5,10.51,78.98,0.49,3.26,42.89,40.85,765.0,42.12,61.59,318.24,1.0,317.24,2.21,7.4,74.59,15.86,765.0,1.01,0.1,3.05,1.0,2.05,16.02,288.58,1.01,1.0,765.0,1.04,0.44,9.78,1.0,8.78,14.42,243.27,1.13,1.0,765.0
SD-DAF = 1.21,0.7,12.22,1.0,11.22,7.25,85.04,1.4,1.0,2733.0,1.06,0.24,5.58,1.0,4.58,7.01,76.72,1.08,1.0,2733.0,2.27,5.39,97.97,1.0,96.97,7.56,80.22,5.85,1.0,2733.0,8.2,9.43,58.67,1.0,57.67,1.88,6.9,12.49,4.13,2733.0,12.98,13.03,92.24,1.0,91.24,1.12,4.24,18.39,9.55,2733.0,38.53,47.98,227.97,1.0,226.97,1.46,4.38,61.53,16.15,2733.0,35.42,32.9,221.2,1.0,220.2,1.23,4.43,48.34,28.91,2733.0,60.42,58.08,308.23,1.0,307.23,0.97,3.34,83.8,43.39,2733.0,57.16,66.03,337.42,1.0,336.42,1.64,5.67,87.32,34.09,2733.0,20.11,28.93,149.45,1.0,148.45,1.58,4.65,35.23,2.13,2733.0,1.08,0.63,15.56,1.0,14.56,12.49,200.15,1.25,1.0,2733.0,1.0,0.02,1.48,1.0,0.48,13.18,210.76,1.0,1.0,2733.0
SD-E = 1.57,1.24,13.79,1.0,12.79,3.16,16.53,2.0,1.0,1862.0,1.01,0.07,3.05,1.0,2.05,18.43,408.21,1.01,1.0,1862.0,1.0,0.03,1.68,1.0,0.68,15.96,285.22,1.0,1.0,1862.0,11.89,11.19,53.59,1.0,52.59,0.91,2.68,16.32,7.32,1862.0,9.08,10.46,48.27,1.0,47.27,1.48,4.5,13.85,4.04,1862.0,16.44,34.02,221.2,1.0,220.2,2.83,11.03,37.78,1.0,1862.0,18.22,32.63,158.74,1.0,157.74,2.01,5.8,37.37,1.0,1862.0,40.74,55.96,305.34,1.0,304.34,1.53,4.75,69.21,10.92,1862.0,31.25,28.23,145.01,1.0,144.01,0.88,3.04,42.1,21.7,1862.0,5.54,12.19,157.47,1.0,156.47,5.76,47.63,13.38,1.0,1862.0,1.03,0.32,8.62,1.0,7.62,16.54,334.33,1.08,1.0,1862.0,1.01,0.12,3.84,1.0,2.84,18.19,368.21,1.02,1.0,1862.0
SD-EQ = 17.22,14.37,85.62,1.0,84.62,1.22,4.17,22.43,12.79,1021.0,7.46,8.78,86.84,1.0,85.84,3.29,20.47,11.52,4.61,1021.0,74.33,35.11,242.15,16.04,226.11,0.98,3.89,82.2,66.46,1021.0,131.61,69.64,456.21,23.74,432.47,0.75,3.54,148.89,124.93,1021.0,63.32,36.09,190.23,1.0,189.23,0.19,2.92,72.87,66.17,1021.0,88.17,44.63,202.06,1.12,200.94,0.16,2.42,98.81,83.0,1021.0,34.05,13.71,90.87,1.0,89.87,0.73,5.28,36.71,32.59,1021.0,142.96,78.72,470.18,1.1,469.08,0.69,3.17,163.18,124.93,1021.0,97.63,52.61,299.21,4.38,294.82,0.36,2.84,110.89,93.65,1021.0,187.81,51.04,347.75,49.53,298.23,-0.15,2.66,194.62,190.32,1021.0,23.95,16.42,74.96,1.0,73.96,0.63,2.39,29.04,19.95,1021.0,4.06,4.89,36.36,1.0,35.36,3.13,14.72,6.35,2.36,1021.0
SD-KHA = 1.0,0.01,1.11,1.0,0.11,10.07,104.81,1.0,1.0,113.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,113.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,113.0,4.83,3.0,12.82,1.0,11.82,0.93,2.81,5.68,3.61,113.0,4.76,2.19,12.22,1.02,11.21,0.71,3.63,5.24,4.56,113.0,5.33,2.4,11.17,2.0,9.17,0.42,2.19,5.84,5.15,113.0,16.74,7.29,31.14,4.8,26.34,0.06,2.0,18.24,16.53,113.0,32.81,15.78,86.84,10.51,76.32,1.41,4.88,36.38,27.65,113.0,17.79,4.69,27.09,7.1,19.98,-0.35,2.36,18.39,17.87,113.0,9.51,6.09,28.45,1.0,27.45,0.4,2.63,11.27,9.04,113.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,113.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,113.0
SD-KOR = 1.18,0.69,11.17,1.0,10.17,6.13,54.08,1.37,1.0,1992.0,1.03,0.25,5.93,1.0,4.93,11.78,163.19,1.06,1.0,1992.0,1.11,0.52,10.84,1.0,9.84,8.35,100.69,1.22,1.0,1992.0,19.74,22.34,89.5,1.0,88.5,1.22,3.37,29.81,8.18,1992.0,10.16,8.83,42.1,1.0,41.1,0.84,2.86,13.46,7.78,1992.0,44.04,39.02,190.23,1.0,189.23,0.96,3.43,58.83,32.35,1992.0,36.85,16.27,100.97,5.58,95.39,0.64,3.12,40.28,34.65,1992.0,44.25,16.62,104.06,9.04,95.02,0.38,2.91,47.26,44.06,1992.0,36.05,14.29,90.96,7.54,83.42,0.69,3.19,38.78,34.61,1992.0,33.23,34.55,221.2,1.0,220.2,1.4,5.66,47.93,19.53,1992.0,1.0,0.05,2.95,1.0,1.95,38.52,1576.41,1.0,1.0,1992.0,1.03,0.26,5.75,1.0,4.75,11.24,149.67,1.06,1.0,1992.0
SD-N = 1.25,0.55,6.89,1.0,5.89,4.5,31.61,1.36,1.0,2604.0,1.05,0.36,6.92,1.0,5.92,10.36,124.99,1.11,1.0,2604.0,1.01,0.15,5.25,1.0,4.25,17.52,376.01,1.02,1.0,2604.0,1.87,3.58,35.13,1.0,34.13,5.86,41.92,4.04,1.0,2604.0,1.53,1.5,15.1,1.0,14.1,4.54,28.06,2.14,1.0,2604.0,1.22,0.72,7.55,1.0,6.55,4.89,30.85,1.42,1.0,2604.0,2.76,4.77,42.27,1.0,41.27,4.75,29.92,5.51,1.0,2604.0,5.64,10.27,70.31,1.0,69.31,3.06,13.37,11.71,1.0,2604.0,6.25,9.64,81.75,1.0,80.75,3.3,18.1,11.49,1.22,2604.0,1.7,2.22,17.56,1.0,16.56,3.65,16.6,2.8,1.0,2604.0,1.01,0.05,2.06,1.0,1.06,10.48,140.21,1.01,1.0,2604.0,1.04,0.31,6.3,1.0,5.3,9.72,112.71,1.09,1.0,2604.0
SD-UPN = 10.53,18.1,124.71,1.0,123.71,2.79,11.39,20.93,2.63,1271.0,1.39,1.43,15.1,1.0,14.1,5.24,33.82,2.0,1.0,1271.0,16.92,19.5,107.25,1.0,106.25,1.3,4.09,25.81,7.21,1271.0,68.46,33.82,184.58,19.04,165.54,1.26,4.32,76.35,62.32,1271.0,30.41,11.5,72.46,6.11,66.35,0.28,3.38,32.51,31.1,1271.0,74.45,28.45,161.32,17.03,144.28,0.48,2.66,79.7,70.32,1271.0,34.44,13.35,89.5,11.51,77.99,1.12,4.4,36.94,32.09,1271.0,105.92,34.47,214.62,40.85,173.77,0.66,2.93,111.38,99.72,1271.0,44.89,15.08,92.24,15.1,77.14,0.45,2.72,47.35,42.95,1271.0,145.21,60.86,347.75,20.41,327.34,0.23,2.33,157.44,145.6,1271.0,6.39,8.83,48.96,1.0,47.96,1.78,5.54,10.9,1.24,1271.0,4.98,7.6,52.1,1.0,51.1,2.81,11.54,9.08,1.18,1271.0
