# 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 temperature data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = GNB temperature 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 = GNB
ADMIN_LEVEL = 1
UNITS = C
DATA_TYPE = temperature

# 120 calculations comma-separated, 10 consecutive calculations for each month (from January to December)
# Field 1: Mean
# 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: 45 degrees
# Minimum: -25 degrees

GW-BA = 27.13,1.36,29.7,23.5,6.2,-0.22,2.06,27.16,27.22,192.0,29.6,1.75,33.01,25.98,7.03,0.21,2.06,29.65,29.57,192.0,34.02,1.62,37.01,29.57,7.44,-0.31,2.6,34.06,34.05,192.0,34.17,1.76,37.42,29.84,7.58,-0.47,2.54,34.22,34.53,192.0,34.42,2.56,38.39,29.57,8.82,-0.43,1.75,34.51,35.35,192.0,25.85,2.18,30.12,21.85,8.27,-0.24,1.63,25.94,26.54,192.0,22.06,0.82,24.06,19.92,4.13,-0.42,2.57,22.07,22.13,192.0,21.05,0.74,22.26,19.09,3.17,-0.76,2.92,21.06,21.2,192.0,22.04,0.57,23.5,19.65,3.86,-0.62,4.0,22.05,22.13,192.0,23.5,0.83,25.43,20.75,4.69,-0.6,3.42,23.52,23.5,192.0,27.29,0.66,29.02,25.71,3.31,0.21,2.33,27.3,27.22,192.0,25.34,0.89,27.64,23.23,4.41,0.05,2.46,25.35,25.3,192.0
GW-BL = 24.41,1.33,28.19,22.68,5.51,1.17,3.42,24.44,23.92,85.0,24.6,1.81,29.29,19.65,9.65,0.66,3.83,24.67,24.33,85.0,25.96,1.77,30.81,21.57,9.23,0.86,3.82,26.01,25.71,85.0,24.81,1.67,29.15,19.37,9.78,0.14,4.74,24.86,24.61,85.0,25.59,1.49,29.29,22.95,6.34,0.52,3.32,25.64,25.43,85.0,22.72,1.51,26.54,17.44,9.09,-0.06,4.1,22.77,22.68,84.0,22.48,1.2,26.81,19.37,7.44,0.57,4.45,22.52,22.4,85.0,20.18,1.0,22.95,16.61,6.34,-0.54,4.4,20.21,20.2,84.0,23.46,0.9,25.16,21.02,4.13,-0.72,3.01,23.48,23.57,85.0,23.66,1.07,25.98,19.92,6.06,-0.41,3.96,23.69,23.71,84.0,26.88,0.89,30.12,23.37,6.75,-0.09,6.42,26.9,26.85,84.0,25.32,1.04,27.91,23.96,3.95,0.78,2.64,25.34,25.02,85.0
GW-BM = 26.24,0.97,27.91,23.5,4.41,-0.92,4.0,26.26,26.29,30.0,26.61,1.08,28.46,23.23,5.24,-1.01,5.09,26.63,26.78,30.0,29.12,1.35,31.77,25.85,5.93,0.12,3.07,29.15,28.95,30.0,27.89,1.64,31.5,24.61,6.89,0.39,2.8,27.93,27.64,30.0,28.7,1.74,32.05,25.16,6.89,0.02,2.68,28.75,28.64,30.0,22.74,0.91,24.33,21.02,3.31,-0.21,2.45,22.76,22.75,30.0,20.65,2.97,24.06,14.96,9.09,-1.02,2.65,20.85,22.06,30.0,20.59,1.05,22.13,18.54,3.58,0.03,2.04,20.62,20.61,30.0,24.61,0.67,25.43,23.5,1.93,-0.13,1.67,24.62,24.61,30.0,24.73,1.41,27.64,21.85,5.79,0.14,2.78,24.77,24.47,30.0,27.41,0.62,28.46,25.98,2.48,-0.16,2.64,27.42,27.5,30.0,25.62,0.77,27.64,24.06,3.58,0.32,3.24,25.63,25.54,30.0
GW-BS = 26.87,0.67,27.36,25.85,1.52,-0.77,1.96,26.87,27.22,5.0,27.73,0.65,28.46,26.95,1.52,0.03,1.42,27.74,27.64,5.0,30.88,0.99,31.77,29.43,2.34,-0.58,1.8,30.89,31.22,5.0,29.48,1.23,30.67,27.78,2.89,-0.39,1.66,29.5,29.7,5.0,30.35,1.5,31.63,28.05,3.58,-0.76,2.0,30.38,31.22,5.0,23.79,1.02,25.43,22.81,2.62,0.86,2.39,23.81,23.44,5.0,23.48,0.38,24.06,23.09,0.96,0.62,2.03,23.48,23.37,5.0,21.69,0.59,22.68,21.16,1.52,1.1,2.75,21.69,21.44,5.0,24.83,0.97,25.71,23.37,2.34,-0.69,1.93,24.84,25.3,5.0,25.05,0.55,25.57,24.19,1.38,-0.73,2.22,25.05,25.16,5.0,28.0,0.29,28.46,27.78,0.69,0.97,2.48,28.0,27.91,5.0,25.63,0.29,25.98,25.3,0.69,0.16,1.51,25.63,25.57,5.0
GW-CA = 26.79,1.21,29.29,24.33,4.96,0.04,2.16,26.81,26.81,165.0,27.37,1.09,29.57,24.61,4.96,0.05,2.33,27.39,27.36,165.0,30.32,1.87,35.01,26.67,8.34,0.33,2.34,30.37,30.26,165.0,29.99,2.35,35.08,23.78,11.3,0.22,2.3,30.08,29.7,165.0,30.9,2.81,36.46,24.88,11.57,0.14,1.9,31.03,30.81,165.0,23.34,1.5,26.81,17.72,9.09,-0.45,3.83,23.39,23.37,165.0,22.52,0.81,25.98,20.2,5.79,0.57,5.27,22.54,22.54,165.0,20.81,0.79,22.4,17.44,4.96,-0.87,4.85,20.82,20.89,165.0,23.63,1.11,27.36,20.75,6.61,-0.05,3.71,23.65,23.78,165.0,23.56,1.06,25.71,19.92,5.79,-1.04,3.91,23.58,23.78,165.0,28.04,0.6,29.84,26.81,3.03,0.34,3.05,28.05,27.91,165.0,25.31,0.72,27.64,23.78,3.86,0.58,2.88,25.32,25.16,165.0
GW-GA = 29.34,1.74,33.7,25.98,7.72,0.55,2.42,29.39,29.02,300.0,32.78,1.3,35.91,29.84,6.06,-0.14,2.13,32.8,32.87,300.0,36.19,0.9,38.66,33.7,4.96,-0.05,2.87,36.2,36.22,300.0,35.34,0.96,37.28,32.6,4.69,-0.76,3.55,35.36,35.49,300.0,34.71,1.5,37.56,30.12,7.44,-0.7,2.91,34.75,34.94,300.0,26.9,1.45,30.53,22.95,7.58,-0.07,2.82,26.93,26.81,300.0,22.62,0.95,24.88,20.2,4.69,-0.47,2.95,22.64,22.81,300.0,21.09,0.57,22.68,19.65,3.03,-0.28,2.79,21.1,21.16,300.0,22.08,0.67,23.5,19.09,4.41,-0.12,3.62,22.09,22.13,300.0,23.02,0.98,25.16,20.47,4.69,0.28,2.35,23.04,22.95,300.0,28.26,0.72,30.26,26.54,3.72,0.29,2.58,28.27,28.19,300.0,27.42,1.63,31.5,24.88,6.61,0.78,2.55,27.47,26.95,300.0
GW-OI = 27.02,1.15,29.29,23.78,5.51,-0.49,2.7,27.04,27.22,184.0,29.4,1.22,33.15,25.98,7.17,0.4,3.31,29.43,29.15,184.0,34.21,1.46,38.11,30.67,7.44,0.44,2.73,34.24,34.01,184.0,34.27,1.15,37.01,29.57,7.44,-0.87,4.65,34.28,34.25,184.0,35.05,1.26,38.25,30.94,7.3,-0.63,4.02,35.07,35.22,184.0,26.21,1.27,28.74,22.68,6.06,-0.3,2.37,26.24,26.26,184.0,21.7,0.83,24.06,19.37,4.69,0.08,2.87,21.72,21.71,184.0,21.03,0.77,23.78,19.37,4.41,0.59,3.31,21.04,20.89,184.0,22.61,1.06,25.71,20.47,5.24,0.48,3.07,22.64,22.57,184.0,23.79,0.63,26.26,21.85,4.41,0.54,4.98,23.8,23.78,184.0,27.88,0.81,29.57,25.43,4.13,-0.46,2.97,27.89,27.91,184.0,25.75,0.72,27.36,24.06,3.31,0.08,2.43,25.76,25.71,184.0
GW-QU = 25.28,1.02,27.91,23.64,4.27,0.96,3.5,25.3,25.09,103.0,27.03,1.21,29.84,24.06,5.79,0.3,2.85,27.06,26.81,103.0,30.05,2.0,34.25,25.98,8.27,-0.04,2.34,30.12,30.12,103.0,29.72,2.48,33.84,24.88,8.96,-0.42,2.16,29.82,29.98,103.0,29.69,2.17,34.53,24.88,9.65,-0.15,2.53,29.77,29.7,103.0,22.76,1.1,24.61,19.65,4.96,-0.76,3.07,22.79,22.95,103.0,21.55,0.84,23.78,19.09,4.69,-0.24,3.1,21.56,21.57,103.0,21.37,0.86,24.33,18.68,5.65,0.09,4.25,21.38,21.3,103.0,21.88,1.13,25.16,19.09,6.06,0.68,3.59,21.91,21.78,103.0,23.85,0.85,26.26,21.48,4.78,-0.02,3.3,23.87,23.85,103.0,26.63,0.82,29.02,24.88,4.13,0.56,3.09,26.64,26.54,103.0,25.21,0.67,27.09,23.78,3.31,0.36,2.77,25.22,25.16,103.0
GW-TO = 25.53,0.87,28.19,23.78,4.41,0.48,3.14,25.54,25.43,119.0,27.27,1.32,32.05,24.61,7.44,1.62,6.16,27.31,26.95,119.0,29.34,2.1,36.46,25.16,11.3,0.88,4.52,29.42,29.29,119.0,29.0,2.27,34.67,23.09,11.57,0.05,2.98,29.09,28.74,119.0,28.48,1.42,32.05,25.71,6.34,0.19,2.36,28.51,28.33,119.0,23.2,0.71,25.98,21.85,4.13,0.81,4.09,23.22,23.09,119.0,22.07,0.79,24.88,19.37,5.51,0.07,4.68,22.09,22.13,119.0,21.75,1.03,24.88,17.44,7.44,0.02,5.59,21.78,21.57,118.0,22.75,1.1,26.54,20.2,6.34,0.28,3.8,22.78,22.81,119.0,23.29,1.05,25.43,19.09,6.34,-0.6,4.46,23.31,23.37,119.0,26.42,0.61,28.46,24.88,3.58,-0.06,3.61,26.43,26.54,119.0,25.9,0.64,27.36,24.33,3.03,-0.03,2.7,25.9,25.98,119.0
