# GNB.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 = GNB rainfall data for 2010 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=2010

# The data is derived from the following primary source
#SOURCE = http://neo.sci.gsfc.nasa.gov/

# ISO3166-1 alpha3 code for the country
ISOKEY = GNB
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

GW-BA = 1.17,0.2,1.9,1.0,0.9,1.98,6.82,1.19,1.11,34.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,34.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,34.0,1.62,0.56,3.31,1.0,2.31,1.03,4.03,1.71,1.53,34.0,17.48,3.47,25.18,11.86,13.32,0.43,2.51,17.81,17.13,34.0,89.98,10.33,115.98,70.31,45.67,0.39,3.05,90.55,89.55,34.0,295.51,33.4,347.75,218.51,129.25,-0.62,2.58,297.33,302.71,34.0,379.28,21.84,416.74,337.42,79.32,-0.16,2.2,379.89,380.69,34.0,395.61,45.42,516.82,317.67,199.15,0.67,3.16,398.13,392.34,34.0,142.78,23.82,184.92,110.66,74.26,0.09,1.51,144.69,141.18,34.0,29.42,17.82,62.32,6.15,56.17,0.07,1.65,34.26,32.91,34.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,34.0
GW-BL = 2.04,1.52,6.92,1.0,5.92,2.07,6.3,2.54,1.51,49.0,1.55,0.47,2.55,1.0,1.55,0.23,1.91,1.61,1.63,49.0,1.37,0.37,2.4,1.0,1.4,0.57,2.48,1.42,1.27,49.0,1.92,0.84,4.8,1.0,3.8,0.84,3.78,2.1,1.89,49.0,27.2,17.39,86.84,10.37,76.47,1.79,6.43,32.18,23.03,49.0,95.63,15.84,127.31,70.31,57.0,0.1,2.1,96.91,97.51,49.0,289.42,37.24,358.4,214.62,143.78,-0.09,2.08,291.76,294.63,49.0,348.55,19.43,392.34,308.23,84.12,0.38,2.71,349.08,345.25,49.0,378.82,32.53,420.12,299.61,120.51,-0.98,2.93,380.19,386.51,49.0,187.79,23.09,228.07,145.87,82.21,0.38,1.96,189.18,181.75,49.0,41.29,9.75,58.78,19.81,38.97,-0.4,2.13,42.4,43.14,49.0,3.2,3.1,15.56,1.0,14.56,2.77,11.16,4.43,2.13,49.0
GW-BM = 1.1,0.25,1.61,1.0,0.61,1.79,4.2,1.13,1.0,6.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,6.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,6.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,6.0,9.68,0.38,10.3,9.32,0.99,0.69,2.28,9.68,9.61,6.0,71.75,0.88,72.48,70.31,2.17,-0.62,2.03,71.75,71.92,6.0,271.3,6.23,281.56,265.08,16.48,0.55,2.24,271.36,271.38,6.0,337.47,12.92,358.4,325.84,32.56,0.6,2.0,337.68,335.15,6.0,382.19,3.68,389.7,380.69,9.01,1.79,4.2,382.2,380.69,6.0,154.05,8.88,168.61,145.01,23.6,0.51,2.25,154.27,154.45,6.0,40.03,7.02,50.46,32.09,18.36,0.1,1.96,40.54,41.27,6.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,6.0
GW-BS = 2.21,0.02,2.22,2.19,0.03,-0.0,1.02,2.21,2.21,2.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,2.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,2.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,2.0,11.22,0.3,11.43,11.0,0.43,-0.0,1.0,11.22,11.22,2.0,77.56,5.64,81.55,73.57,7.98,0.0,1.0,77.66,77.56,2.0,266.52,1.35,267.47,265.56,1.91,0.0,1.0,266.52,266.52,2.0,314.69,8.35,320.6,308.79,11.81,0.0,1.0,314.75,314.69,2.0,413.29,20.62,427.88,398.71,29.16,-0.0,1.0,413.55,413.29,2.0,149.31,2.75,151.25,147.36,3.89,-0.0,1.0,149.32,149.31,2.0,44.91,0.35,45.16,44.66,0.5,0.0,1.0,44.91,44.91,2.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,2.0
GW-CA = 1.39,0.76,3.84,1.0,2.84,2.36,7.57,1.58,1.0,28.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,28.0,1.01,0.08,1.41,1.0,0.41,5.0,26.04,1.02,1.0,28.0,1.05,0.21,2.07,1.0,1.07,4.57,22.8,1.07,1.0,28.0,8.5,2.49,12.22,3.34,8.88,-0.63,2.4,8.84,8.94,28.0,86.23,11.26,122.25,71.38,50.87,1.05,4.76,86.94,84.87,28.0,317.65,22.8,369.38,265.08,104.3,-0.47,3.52,318.43,322.42,28.0,346.9,25.16,398.35,308.79,89.56,0.75,2.5,347.78,340.23,28.0,435.83,41.92,518.76,380.69,138.08,0.74,2.42,437.77,423.31,28.0,156.22,16.16,194.7,132.7,61.99,1.16,3.6,157.03,152.91,28.0,22.48,9.36,41.27,7.32,33.95,-0.02,2.12,24.28,23.08,28.0,1.01,0.03,1.14,1.0,0.14,4.58,22.98,1.01,1.0,28.0
GW-GA = 1.16,0.28,2.19,1.0,1.19,2.14,7.25,1.19,1.0,46.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,46.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,46.0,3.3,1.58,7.9,1.05,6.86,0.83,3.5,3.65,3.12,46.0,27.63,3.79,36.85,19.81,17.04,-0.02,2.7,27.89,27.95,46.0,113.13,10.4,138.61,88.17,50.44,0.14,3.1,113.6,112.38,46.0,284.76,28.32,327.39,231.46,95.93,-0.46,1.93,286.14,294.61,46.0,357.71,40.54,443.46,278.14,165.32,0.04,2.23,359.95,358.73,46.0,442.4,61.23,563.45,358.56,204.89,0.35,1.79,446.53,436.48,46.0,156.18,16.99,190.23,127.31,62.92,0.47,2.21,157.09,151.87,46.0,28.6,18.74,58.67,4.33,54.34,0.15,1.43,34.08,27.97,46.0,1.01,0.03,1.16,1.0,0.16,5.18,29.45,1.01,1.0,46.0
GW-OI = 1.54,0.49,2.79,1.0,1.79,0.91,2.99,1.61,1.38,29.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,29.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,29.0,1.04,0.08,1.26,1.0,0.26,1.93,5.26,1.04,1.0,29.0,15.18,2.07,17.56,10.84,6.72,-0.56,2.16,15.31,15.63,29.0,100.15,11.61,124.71,74.68,50.03,0.17,2.63,100.8,97.84,29.0,317.19,23.34,358.4,281.56,76.84,-0.03,1.73,318.02,317.67,29.0,390.07,42.13,442.65,290.18,152.47,-0.87,2.65,392.26,404.36,29.0,406.23,38.48,484.58,323.41,161.17,-0.13,2.4,407.99,410.92,29.0,133.23,15.0,173.77,108.99,64.78,0.71,3.5,134.04,132.52,29.0,26.23,9.73,40.87,7.58,33.3,-0.01,1.93,27.91,26.78,29.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,29.0
GW-QU = 2.36,0.68,4.0,1.53,2.48,1.18,3.59,2.45,2.16,16.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,16.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,16.0,1.02,0.04,1.15,1.0,0.15,2.71,9.66,1.02,1.0,16.0,14.18,2.15,17.56,11.51,6.04,0.01,1.57,14.33,14.6,16.0,87.01,6.19,102.63,77.28,25.35,0.74,3.83,87.22,87.2,16.0,253.62,17.63,280.17,227.97,52.2,-0.37,1.9,254.2,257.2,16.0,365.99,52.02,477.38,327.39,149.98,1.21,2.94,369.44,334.91,16.0,417.51,33.45,457.04,348.38,108.65,-0.59,2.28,418.76,423.12,16.0,174.2,12.37,190.23,155.15,35.09,-0.37,1.83,174.61,177.54,16.0,51.72,5.72,62.32,45.19,17.12,0.7,2.25,52.01,50.25,16.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,16.0
GW-TO = 2.01,0.7,3.4,1.0,2.4,0.06,2.24,2.12,1.96,26.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,26.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,26.0,1.28,0.54,3.41,1.0,2.41,2.86,10.78,1.38,1.09,26.0,23.27,8.56,43.39,13.41,29.99,1.0,3.08,24.74,19.81,26.0,93.96,11.06,119.53,76.03,43.5,0.77,2.91,94.58,92.78,26.0,226.13,8.01,246.52,208.25,38.28,-0.33,4.23,226.26,227.97,26.0,362.54,45.37,484.58,299.07,185.51,0.95,3.44,365.26,355.23,26.0,394.87,46.94,470.18,327.39,142.78,0.05,1.76,397.55,404.67,26.0,168.0,12.25,186.67,132.99,53.68,-0.9,3.83,168.43,168.92,26.0,41.48,8.9,57.03,23.55,33.48,-0.15,2.46,42.39,40.95,26.0,1.67,0.82,3.2,1.0,2.2,0.73,2.08,1.85,1.0,26.0
