# ARE.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 = ARE temperature data for 2009 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=2009

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

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

AE-AJ = 25.43,1.25,27.02,23.64,3.38,-0.2,1.74,25.45,25.85,9.0,30.83,1.31,32.19,28.46,3.72,-0.85,2.28,30.85,31.22,9.0,35.88,2.01,38.18,32.32,5.86,-0.76,2.22,35.93,36.73,9.0,36.94,2.1,39.14,33.29,5.86,-0.66,2.04,36.99,37.83,9.0,44.72,0.83,45.0,42.52,2.48,-2.47,7.13,44.73,45.0,9.0,44.59,0.83,45.0,42.52,2.48,-1.99,5.55,44.59,45.0,9.0,43.33,2.42,45.0,39.35,5.65,-0.93,2.09,43.39,44.72,9.0,42.6,1.57,44.59,39.76,4.82,-0.52,2.28,42.63,42.52,9.0,44.27,1.23,45.0,41.69,3.31,-1.26,3.06,44.28,45.0,9.0,41.13,1.54,42.66,38.39,4.27,-0.85,2.24,41.15,41.83,9.0,35.75,1.16,36.87,33.84,3.03,-0.79,2.06,35.77,36.46,9.0,26.7,0.7,27.5,25.71,1.79,-0.31,1.71,26.7,26.81,9.0
AE-AZ = 25.35,1.67,30.12,16.61,13.5,-0.35,5.3,25.41,25.43,2436.0,31.86,2.07,37.28,17.99,19.29,-1.36,10.25,31.92,31.77,2436.0,36.25,2.43,42.24,21.57,20.67,-1.33,9.05,36.33,36.32,2435.0,39.45,2.4,45.0,23.78,21.22,-1.63,10.56,39.52,39.49,2436.0,44.67,1.54,45.0,29.57,15.43,-5.92,41.51,44.7,45.0,2436.0,44.7,1.41,45.0,31.5,13.5,-5.68,37.63,44.72,45.0,2436.0,43.7,1.96,45.0,29.29,15.71,-2.82,13.17,43.75,44.38,2436.0,44.35,1.66,45.0,32.05,12.95,-4.14,21.14,44.38,45.0,2435.0,44.71,1.33,45.0,33.43,11.57,-5.48,34.91,44.73,45.0,2436.0,42.83,2.04,45.0,28.19,16.81,-2.29,11.31,42.88,43.07,2436.0,36.58,1.87,41.42,26.81,14.61,-0.79,6.22,36.63,36.66,2436.0,28.49,1.87,33.7,19.92,13.78,-0.2,4.55,28.55,28.33,2436.0
AE-DU = 25.86,0.85,27.64,22.68,4.96,-0.79,4.2,25.88,25.98,144.0,32.04,0.95,33.7,29.29,4.41,-0.96,3.55,32.06,32.29,144.0,36.28,1.08,38.11,32.6,5.51,-1.44,5.21,36.3,36.46,144.0,37.67,1.27,39.76,33.7,6.06,-0.75,3.47,37.69,37.83,144.0,44.97,0.17,45.0,43.28,1.72,-7.67,68.12,44.97,45.0,144.0,44.91,0.3,45.0,43.0,2.0,-4.34,22.99,44.92,45.0,144.0,44.5,1.01,45.0,40.45,4.55,-2.24,7.35,44.51,45.0,144.0,44.26,1.11,45.0,39.49,5.51,-2.19,7.76,44.27,44.72,144.0,44.88,0.4,45.0,42.52,2.48,-3.83,17.9,44.89,45.0,144.0,42.55,0.97,43.9,39.28,4.62,-1.68,5.37,42.56,42.93,144.0,36.09,0.88,37.56,33.56,4.0,-1.05,3.65,36.1,36.32,144.0,27.02,0.61,28.05,24.33,3.72,-1.54,8.06,27.02,27.09,144.0
AE-FU = 24.46,1.57,27.5,20.47,7.03,0.0,2.39,24.51,24.47,58.0,29.43,1.45,32.19,26.4,5.79,-0.04,2.14,29.46,29.57,58.0,34.48,1.53,38.39,31.22,7.17,0.68,3.44,34.51,34.39,58.0,35.41,1.4,39.14,32.19,6.96,0.8,4.02,35.43,35.15,58.0,44.97,0.2,45.0,43.48,1.52,-7.31,54.88,44.97,45.0,58.0,44.82,0.35,45.0,43.07,1.93,-2.92,12.96,44.82,45.0,58.0,41.61,2.07,45.0,38.66,6.34,0.09,1.84,41.66,41.62,58.0,38.69,2.49,43.69,33.15,10.54,0.08,2.25,38.77,38.52,58.0,41.8,2.1,45.0,38.39,6.61,0.12,1.69,41.86,41.42,58.0,39.86,1.38,42.66,37.56,5.1,0.38,2.16,39.88,39.76,58.0,34.2,1.6,37.7,30.94,6.75,0.12,2.32,34.24,34.11,58.0,25.21,1.2,27.43,22.26,5.17,-0.1,2.29,25.24,25.23,58.0
AE-NEU = 23.71,1.46,25.43,21.85,3.58,0.2,1.63,23.75,23.37,6.0,31.3,0.85,32.39,30.39,2.0,0.49,1.54,31.31,30.94,6.0,34.71,1.83,37.01,32.6,4.41,0.24,1.5,34.75,34.39,6.0,35.94,2.63,39.35,33.43,5.93,0.61,1.52,36.02,34.63,6.0,45.0,0.0,45.0,45.0,0.0,NaN,NaN,45.0,45.0,6.0,45.0,0.0,45.0,45.0,0.0,NaN,NaN,45.0,45.0,6.0,44.29,0.6,45.0,43.62,1.38,0.27,1.47,44.29,44.17,6.0,42.53,1.97,45.0,40.59,4.41,0.52,1.51,42.57,41.8,6.0,44.59,0.42,45.0,43.9,1.1,-0.57,2.24,44.59,44.59,6.0,41.27,1.37,43.0,39.49,3.51,0.21,1.7,41.29,40.94,6.0,35.21,1.42,37.01,33.43,3.58,0.18,1.61,35.23,34.98,6.0,25.36,1.46,27.22,24.06,3.17,0.64,1.51,25.4,24.61,6.0
AE-RK = 23.93,2.31,28.19,18.27,9.92,-0.42,2.74,24.04,24.06,104.0,29.42,2.7,33.7,22.54,11.16,-0.78,2.71,29.54,30.01,104.0,35.09,3.14,40.59,28.12,12.47,0.03,2.36,35.23,34.46,104.0,35.04,3.52,41.69,25.16,16.54,-0.64,3.34,35.21,35.46,104.0,44.41,1.26,45.0,38.73,6.27,-2.48,8.99,44.42,45.0,104.0,44.29,1.36,45.0,39.21,5.79,-2.02,6.15,44.31,45.0,104.0,42.91,1.86,45.0,37.9,7.1,-0.59,2.43,42.95,43.0,104.0,41.15,2.34,45.0,35.97,9.03,0.05,2.15,41.21,40.8,104.0,43.37,1.71,45.0,38.18,6.82,-0.95,3.15,43.41,43.73,104.0,40.5,2.6,44.72,33.98,10.75,-0.49,2.65,40.58,40.87,104.0,34.76,2.33,38.94,29.15,9.78,-0.34,2.55,34.84,34.8,104.0,25.06,2.08,28.6,18.82,9.78,-0.55,3.11,25.15,25.02,104.0
AE-SH = 26.71,1.45,28.74,22.95,5.79,-0.67,2.44,26.75,27.09,92.0,32.39,1.81,34.8,27.36,7.44,-1.14,3.45,32.44,32.87,92.0,36.98,1.78,39.21,31.63,7.58,-1.15,3.5,37.02,37.42,92.0,38.54,2.41,43.35,32.87,10.47,-0.51,2.63,38.62,39.04,92.0,44.88,0.51,45.0,41.42,3.58,-5.05,29.7,44.89,45.0,92.0,44.87,0.48,45.0,41.69,3.31,-4.77,27.55,44.88,45.0,92.0,44.16,1.88,45.0,37.83,7.17,-2.04,5.67,44.2,45.0,92.0,43.7,2.8,45.0,34.25,10.75,-2.39,7.44,43.79,45.0,92.0,44.41,1.52,45.0,37.83,7.17,-2.68,9.31,44.44,45.0,92.0,42.96,2.05,45.0,37.28,7.72,-1.45,3.79,43.01,43.83,92.0,36.61,1.66,38.66,32.05,6.61,-0.98,3.16,36.64,37.01,92.0,27.14,1.02,29.29,24.12,5.17,-0.78,3.76,27.16,27.36,92.0
AE-UQ = 25.09,2.25,28.19,21.3,6.89,-0.21,1.75,25.19,25.3,42.0,31.37,1.83,33.43,27.78,5.65,-0.76,2.25,31.42,32.05,38.0,36.42,4.31,40.59,25.43,15.16,-1.5,4.45,36.67,38.14,42.0,36.01,6.03,41.97,21.3,20.67,-1.24,3.83,36.5,37.32,42.0,42.91,3.39,45.0,33.98,11.02,-1.75,4.98,43.04,45.0,42.0,43.11,3.74,45.0,32.32,12.68,-2.31,6.99,43.27,45.0,42.0,42.43,3.86,45.0,32.6,12.4,-1.57,4.41,42.6,44.79,42.0,42.22,4.25,45.0,30.94,14.06,-1.75,5.08,42.43,44.62,42.0,43.23,2.88,45.0,35.63,9.37,-1.76,5.02,43.32,45.0,42.0,41.52,3.26,44.59,33.7,10.89,-1.26,3.61,41.64,42.86,42.0,35.56,2.51,38.66,30.94,7.72,-0.64,1.99,35.65,36.56,42.0,26.46,1.65,29.02,24.06,4.96,-0.2,1.67,26.51,26.81,42.0
