# 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 2007 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=2007

# 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.03,0.07,1.31,1.0,0.31,2.94,11.39,1.03,1.0,72.0,14.13,5.89,30.22,4.38,25.83,0.97,3.53,15.29,13.17,72.0,33.31,8.51,53.59,12.99,40.61,-0.19,2.51,34.37,34.09,72.0,137.94,15.8,173.77,110.53,63.24,0.5,2.38,138.83,135.58,72.0,174.89,33.81,257.2,124.71,132.5,0.74,2.48,178.08,166.45,72.0,104.53,32.07,190.58,53.59,136.98,0.77,3.36,109.27,101.62,72.0,307.2,31.22,369.38,242.15,127.23,-0.28,2.47,308.76,311.71,72.0,234.59,21.55,273.2,199.15,74.05,0.08,1.81,235.56,235.06,72.0,260.34,19.51,308.23,209.1,99.13,0.28,3.22,261.06,257.2,72.0,64.09,11.32,117.41,43.39,74.01,2.3,10.67,65.07,63.47,72.0,8.13,6.94,46.09,3.55,42.54,3.48,16.61,10.65,5.8,72.0,24.66,10.66,42.1,5.58,36.52,-0.14,1.83,26.84,26.0,72.0
TG-K = 1.01,0.07,1.44,1.0,0.44,5.08,29.27,1.02,1.0,62.0,2.52,2.27,9.6,1.0,8.6,1.64,4.67,3.38,1.37,62.0,30.56,5.93,47.85,18.65,29.2,0.51,3.93,31.12,31.14,62.0,106.14,15.55,149.45,78.79,70.66,0.52,2.78,107.25,103.77,62.0,137.94,25.76,202.06,95.06,107.0,0.57,2.89,140.29,137.91,62.0,92.66,20.29,145.91,55.23,90.68,0.3,2.3,94.82,89.4,62.0,220.39,20.6,290.18,179.1,111.09,0.79,4.23,221.34,214.62,62.0,252.06,22.71,308.23,202.06,106.17,0.33,3.06,253.07,249.76,62.0,234.81,23.73,281.56,190.23,91.33,0.07,2.1,235.99,234.1,62.0,75.86,12.35,95.06,46.17,48.89,-0.46,2.28,76.85,78.83,62.0,9.72,3.02,18.65,3.66,14.99,0.26,2.89,10.17,9.6,62.0,8.68,6.79,29.32,1.67,27.65,1.18,4.02,10.99,7.74,62.0
TG-M = 1.13,0.3,2.32,1.0,1.32,2.81,10.53,1.16,1.0,32.0,12.74,5.4,24.32,5.93,18.39,0.82,2.45,13.8,10.78,32.0,44.05,7.57,56.93,34.09,22.84,-0.01,1.56,44.68,44.78,32.0,97.39,17.16,128.76,74.29,54.47,0.38,1.74,98.84,93.57,32.0,136.11,16.85,171.66,113.92,57.74,0.36,1.85,137.11,133.43,32.0,214.75,56.53,308.23,124.93,183.29,-0.05,1.54,221.84,214.04,32.0,171.27,27.34,257.2,138.64,118.57,1.24,4.23,173.37,158.74,32.0,47.1,8.16,69.75,35.14,34.6,1.33,4.46,47.78,45.58,32.0,165.46,55.59,273.32,96.71,176.61,0.44,1.86,174.27,152.75,32.0,157.36,15.4,196.41,132.46,63.95,0.45,2.54,158.09,156.53,32.0,17.03,8.75,46.9,8.77,38.12,1.63,5.45,19.08,12.88,32.0,28.74,13.29,61.15,13.38,47.77,0.62,2.28,31.57,24.83,32.0
TG-P = 1.28,0.5,3.34,1.0,2.34,1.97,6.58,1.38,1.0,94.0,26.9,6.87,40.85,12.88,27.97,0.06,2.41,27.76,27.23,94.0,36.25,11.72,58.67,13.39,45.28,-0.19,2.15,38.08,36.8,94.0,136.51,21.13,202.06,95.06,107.0,0.31,2.84,138.12,136.52,94.0,190.33,32.37,249.56,124.71,124.85,-0.03,2.06,193.03,189.57,94.0,147.74,41.46,265.2,89.5,175.7,0.61,2.54,153.38,141.21,94.0,301.28,45.02,392.34,182.36,209.98,-0.28,3.07,304.59,299.07,94.0,164.0,55.4,273.2,52.85,220.35,0.26,2.04,173.01,151.17,94.0,278.38,22.25,317.67,196.06,121.61,-0.78,4.05,279.26,281.56,94.0,119.13,40.8,214.62,58.67,155.96,0.43,2.07,125.86,111.89,94.0,20.79,10.52,72.46,6.21,66.25,2.24,9.54,23.28,17.62,94.0,35.71,9.39,58.67,16.04,42.63,-0.19,2.74,36.91,36.59,94.0
TG-S = 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,17.58,8.18,38.46,4.05,34.41,0.94,2.95,19.35,15.09,46.0,79.3,22.52,136.52,46.09,90.43,0.59,2.36,82.36,74.08,46.0,105.48,24.72,156.73,68.72,88.02,0.36,2.05,108.28,103.74,46.0,87.48,24.52,145.01,54.56,90.44,0.63,2.33,90.78,84.33,46.0,213.59,24.33,273.69,163.6,110.09,-0.14,2.45,214.94,214.82,46.0,369.63,77.1,563.45,235.06,328.4,0.19,2.6,377.41,375.37,46.0,244.26,42.35,337.42,143.24,194.18,-0.16,2.71,247.82,241.81,46.0,40.2,12.1,79.32,19.22,60.1,0.81,4.02,41.94,38.95,46.0,13.0,3.4,19.22,3.49,15.72,-0.55,2.92,13.43,13.49,46.0,1.2,0.46,3.55,1.0,2.55,3.46,16.23,1.28,1.0,46.0
