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

RS-CGO = 230.11,58.58,299.07,92.33,206.74,-0.8,2.37,237.38,257.32,99.0,104.65,7.29,113.97,85.55,28.42,-0.78,2.59,104.9,107.25,99.0,136.13,30.37,181.84,64.23,117.61,-0.68,2.56,139.44,145.01,99.0,208.0,21.14,234.95,136.52,98.43,-1.41,4.58,209.06,214.72,99.0,68.06,11.81,86.86,38.53,48.33,-0.43,2.16,69.06,70.31,99.0,70.61,26.71,125.78,26.53,99.25,0.05,1.81,75.45,73.21,99.0,28.64,14.36,64.23,8.84,55.39,0.67,2.48,32.01,25.83,99.0,34.03,16.33,80.61,11.19,69.42,0.95,3.16,37.7,30.17,99.0,173.7,22.57,221.3,94.16,127.14,-1.0,4.22,175.14,179.3,99.0,33.69,5.33,41.49,20.29,21.19,-0.16,1.93,34.11,33.61,99.0,213.6,24.72,257.2,145.07,112.13,-0.56,2.64,215.01,215.02,99.0,132.74,15.47,154.02,93.9,60.12,-0.76,2.45,133.63,136.52,99.0
RS-KOS = 57.45,21.03,124.71,28.45,96.26,1.0,3.95,61.13,52.99,76.0,88.05,16.77,117.41,56.13,61.28,0.07,1.92,89.61,87.55,76.0,50.29,14.87,101.38,30.68,70.71,1.2,4.26,52.41,45.43,76.0,164.06,14.95,218.11,142.85,75.26,1.34,5.38,164.73,162.61,76.0,68.7,12.04,85.58,50.46,35.13,-0.11,1.49,69.73,71.1,76.0,91.05,22.22,126.67,46.28,80.4,-0.1,1.84,93.69,92.61,76.0,47.36,6.58,63.91,36.08,27.83,0.42,2.43,47.81,46.8,76.0,43.08,6.54,64.72,35.13,29.59,1.11,4.11,43.57,42.46,76.0,112.38,37.14,182.0,52.85,129.16,0.11,1.76,118.28,112.37,76.0,13.64,6.11,26.0,5.1,20.9,0.19,1.85,14.93,14.12,76.0,99.99,37.36,173.77,39.64,134.14,-0.06,1.88,106.66,108.09,76.0,76.23,11.4,107.25,59.62,47.63,0.68,2.95,77.07,75.35,76.0
RS-SRB = 46.7,17.65,125.18,26.78,98.4,1.5,4.87,49.92,40.85,398.0,54.62,15.16,110.58,26.78,83.8,0.49,3.62,56.68,56.46,398.0,55.51,9.75,79.32,30.22,49.11,-0.25,2.51,56.35,57.77,398.0,131.59,22.16,190.23,53.24,136.99,-1.15,5.18,133.43,136.52,398.0,71.53,10.58,89.5,50.46,39.04,-0.03,1.82,72.3,70.31,398.0,120.83,29.42,193.14,52.0,141.14,-0.13,2.74,124.36,126.65,398.0,57.36,14.2,86.84,30.22,56.62,0.12,2.06,59.09,54.17,398.0,56.29,17.24,92.24,23.04,69.19,0.11,1.94,58.86,56.94,398.0,150.71,46.68,249.56,48.98,200.58,-0.34,2.12,157.75,163.68,398.0,13.34,6.39,30.71,5.1,25.61,0.4,1.99,14.78,12.8,398.0,78.99,34.42,171.35,26.78,144.57,0.57,2.49,86.15,74.68,398.0,55.06,16.82,109.49,17.07,92.41,0.46,3.46,57.57,53.59,398.0
RS-VOJ = 55.89,12.5,100.97,40.04,60.93,0.93,3.5,57.26,53.62,159.0,26.22,6.55,44.8,14.33,30.47,0.8,3.45,27.02,25.99,159.0,70.36,8.41,86.84,55.67,31.17,0.16,1.83,70.86,69.33,159.0,106.65,14.75,132.52,68.34,64.18,-0.55,2.56,107.66,109.04,159.0,66.03,11.74,92.24,48.96,43.28,0.47,1.91,67.06,63.27,159.0,182.05,30.08,227.97,138.76,89.21,0.16,1.49,184.5,176.43,159.0,53.3,10.01,81.75,34.47,47.29,0.61,2.8,54.22,51.44,159.0,38.41,7.95,57.8,21.04,36.76,0.74,2.68,39.22,35.7,159.0,176.16,16.79,221.2,147.36,73.84,0.55,2.78,176.95,173.77,159.0,13.87,2.18,18.39,9.9,8.49,-0.09,1.83,14.04,14.02,159.0,68.98,11.36,100.97,48.89,52.08,0.54,2.55,69.9,66.19,159.0,33.0,8.67,56.13,19.22,36.91,0.67,2.97,34.12,32.05,159.0
