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

TG-C = 1.14,0.57,4.38,1.0,3.38,4.29,21.24,1.28,1.0,72.0,3.06,2.0,8.01,1.0,7.01,0.64,2.32,3.65,2.55,72.0,51.51,12.82,81.75,33.08,48.68,0.7,2.45,53.06,47.6,72.0,78.4,14.64,124.71,58.67,66.04,1.15,4.25,79.73,73.96,72.0,40.44,7.22,66.19,28.45,37.75,1.16,4.82,41.08,39.65,72.0,169.37,22.01,234.95,136.52,98.43,0.73,3.31,170.78,168.16,72.0,251.27,17.58,317.67,221.2,96.47,1.28,5.31,251.87,247.14,72.0,213.5,32.61,281.56,157.6,123.96,0.17,2.26,215.94,214.87,72.0,242.98,21.07,299.07,208.25,90.82,0.84,3.0,243.88,238.77,72.0,89.55,36.52,182.04,38.46,143.58,0.6,2.28,96.62,83.0,72.0,5.83,4.74,17.33,1.0,16.33,0.67,2.22,7.49,3.35,72.0,26.18,11.84,52.0,10.14,41.86,0.48,1.95,28.69,22.39,72.0
TG-K = 1.97,2.18,11.86,1.0,10.86,2.67,10.15,2.92,1.0,62.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,62.0,43.47,10.88,81.75,23.6,58.15,0.83,4.38,44.79,42.19,62.0,63.33,10.28,92.24,48.96,43.28,0.62,3.11,64.15,64.08,62.0,42.13,8.22,61.56,26.09,35.47,0.34,2.59,42.91,41.77,62.0,175.69,28.55,242.15,136.58,105.57,0.81,2.63,177.96,164.39,62.0,198.78,25.47,273.2,158.74,114.46,0.43,2.63,200.38,199.24,62.0,291.72,22.91,337.42,224.79,112.63,-0.38,3.62,292.6,290.28,62.0,210.39,22.96,249.67,168.61,81.06,0.24,2.14,211.62,208.25,62.0,119.77,34.19,173.77,59.54,114.24,-0.44,1.71,124.48,134.52,62.0,6.81,3.68,20.41,1.06,19.35,1.07,4.72,7.72,6.54,62.0,4.18,4.53,18.09,1.0,17.09,1.5,4.34,6.14,1.67,62.0
TG-M = 40.14,18.11,76.97,13.44,63.53,0.09,1.85,43.92,42.12,32.0,4.88,4.83,20.92,1.34,19.58,2.14,6.55,6.81,3.21,32.0,33.92,12.58,64.14,18.65,45.49,1.14,3.38,36.11,30.71,32.0,45.53,7.82,63.85,36.21,27.64,0.99,3.01,46.18,43.01,32.0,31.4,6.31,48.96,21.04,27.92,0.91,3.6,32.01,29.32,32.0,250.89,38.38,347.75,198.08,149.67,0.78,2.92,253.72,243.06,32.0,126.9,28.31,193.32,92.24,101.08,0.74,2.5,129.92,116.89,32.0,46.48,9.94,66.46,31.14,35.33,0.19,1.95,47.5,44.46,32.0,113.99,35.52,200.87,84.26,116.62,1.22,3.18,119.23,96.14,32.0,126.03,46.31,227.97,47.36,180.61,0.32,2.58,134.02,122.99,32.0,16.58,2.3,24.01,12.99,11.02,1.38,5.24,16.73,16.01,32.0,64.41,6.63,79.32,48.96,30.37,-0.01,2.9,64.74,63.76,32.0
TG-P = 7.82,5.83,25.21,1.0,24.21,0.72,2.88,9.74,7.12,94.0,7.97,7.04,29.32,1.2,28.12,1.78,4.99,10.61,5.3,94.0,48.94,17.55,124.71,25.21,99.49,1.59,6.39,51.96,44.65,94.0,73.16,22.24,124.71,47.85,76.86,0.94,2.84,76.43,68.17,94.0,42.81,7.3,58.67,25.21,33.46,-0.12,3.01,43.42,42.87,94.0,226.84,34.04,299.28,168.61,130.67,0.3,2.28,229.35,223.72,94.0,293.0,48.0,358.4,171.42,186.98,-0.59,2.38,296.86,301.5,94.0,135.16,32.57,196.06,59.57,136.49,-0.5,2.17,138.99,142.85,94.0,238.64,37.05,290.18,131.68,158.5,-0.92,3.53,241.47,242.15,94.0,122.67,52.54,221.2,35.13,186.06,0.06,1.85,133.34,125.63,94.0,10.54,4.14,19.68,2.33,17.35,0.01,2.26,11.32,10.32,94.0,58.63,13.91,92.24,25.21,67.02,0.27,2.61,60.24,58.2,94.0
TG-S = 1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,46.0,1.63,1.49,8.26,1.0,7.26,2.68,10.38,2.2,1.0,46.0,20.81,8.08,38.46,11.72,26.74,0.67,2.07,22.29,18.49,46.0,64.29,8.62,81.79,49.05,32.74,0.31,2.41,64.86,63.27,46.0,40.62,10.65,60.47,23.74,36.73,0.36,2.18,41.96,40.38,46.0,141.53,27.43,214.62,92.24,122.39,0.76,3.21,144.11,135.5,46.0,182.81,17.3,211.44,156.38,55.05,0.04,1.63,183.61,182.83,46.0,298.01,14.46,317.67,257.89,59.77,-0.91,3.31,298.36,299.37,46.0,143.55,22.22,208.25,121.0,87.25,1.16,3.45,145.22,136.81,46.0,50.53,30.39,154.02,20.41,133.61,1.93,6.52,58.8,43.19,46.0,5.77,4.94,15.56,1.0,14.56,0.59,1.79,7.56,3.38,46.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,46.0
