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

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

# 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 = 12.68,1.27,14.69,10.83,3.86,0.28,2.18,12.74,12.76,9.0,14.87,1.06,16.2,13.03,3.17,-0.63,2.2,14.9,15.1,9.0,16.59,1.31,18.27,14.41,3.86,-0.45,1.9,16.64,16.89,9.0,21.45,1.47,23.78,19.65,4.13,0.23,1.89,21.5,21.44,9.0,26.21,1.31,27.36,24.06,3.31,-0.82,2.08,26.24,26.74,9.0,28.83,0.36,29.29,28.19,1.1,-0.52,2.15,28.83,29.02,9.0,28.95,0.6,29.7,27.91,1.79,-0.52,2.11,28.95,29.08,9.0,30.39,0.94,31.36,28.74,2.62,-0.75,2.02,30.4,30.81,9.0,27.78,0.98,28.74,26.12,2.62,-0.82,2.18,27.79,28.05,9.0,23.68,1.2,25.43,21.71,3.72,-0.04,2.08,23.71,24.06,9.0,19.32,1.27,21.44,17.44,4.0,0.41,2.26,19.35,19.09,9.0,15.37,1.51,17.72,13.31,4.41,0.51,2.27,15.43,15.24,9.0
AE-AZ = 10.13,1.24,16.89,7.8,9.09,1.94,7.58,10.2,9.72,2435.0,13.14,1.34,18.27,10.28,7.99,0.58,2.92,13.2,12.89,2435.0,14.77,1.34,21.57,8.62,12.95,0.21,3.72,14.84,14.69,2436.0,19.9,1.61,24.06,16.34,7.72,0.01,2.15,19.96,19.99,2435.0,25.15,1.45,28.74,20.47,8.27,-0.38,2.48,25.2,25.36,2436.0,26.4,1.63,30.67,21.85,8.82,-0.48,2.52,26.45,26.67,2436.0,26.87,1.12,31.22,22.68,8.54,-0.06,2.61,26.89,26.95,2436.0,29.44,0.91,32.6,26.54,6.06,-0.09,2.82,29.46,29.5,2436.0,27.7,0.91,32.32,24.88,7.44,0.17,4.45,27.71,27.78,2436.0,22.71,1.24,30.39,19.37,11.02,1.39,7.36,22.75,22.61,2436.0,17.77,1.52,27.09,11.93,15.16,1.24,7.0,17.84,17.65,2436.0,12.54,1.73,23.78,6.69,17.09,1.23,7.19,12.66,12.34,2435.0
AE-DU = 10.21,1.13,13.86,8.62,5.24,1.64,4.98,10.27,9.72,144.0,12.96,1.08,16.61,10.28,6.34,1.04,4.54,13.0,12.76,144.0,13.7,1.2,17.99,11.38,6.61,1.01,4.4,13.76,13.58,144.0,18.99,1.19,24.88,16.89,7.99,2.44,12.5,19.03,18.89,144.0,23.52,1.2,29.84,21.85,7.99,3.06,15.37,23.55,23.23,144.0,26.9,0.81,29.98,25.16,4.82,1.19,4.61,26.91,26.74,144.0,26.87,1.05,30.67,23.78,6.89,0.33,5.29,26.9,26.95,144.0,29.37,0.6,32.05,27.64,4.41,0.43,5.27,29.37,29.29,144.0,26.18,0.8,28.74,25.16,3.58,1.57,4.88,26.19,25.98,144.0,21.81,1.11,25.02,19.37,5.65,1.05,4.06,21.84,21.57,144.0,16.25,1.76,21.57,11.93,9.65,0.95,3.81,16.34,15.79,144.0,12.63,1.58,17.72,10.0,7.72,1.14,3.83,12.73,12.2,144.0
AE-FU = 13.55,1.05,16.34,11.24,5.1,0.47,2.93,13.59,13.44,58.0,16.15,0.76,18.27,13.72,4.55,-0.04,4.18,16.17,16.13,58.0,17.78,0.67,19.23,15.24,4.0,-1.62,7.98,17.79,17.85,58.0,24.66,1.21,27.09,21.71,5.37,-0.58,2.97,24.69,24.81,58.0,29.03,1.08,30.67,26.26,4.41,-0.92,2.89,29.05,29.53,58.0,29.41,0.39,30.39,28.46,1.93,0.17,3.21,29.41,29.29,58.0,30.0,0.36,30.39,28.88,1.52,-1.09,3.75,30.0,30.12,58.0,30.31,0.46,31.22,29.15,2.07,-0.05,2.58,30.31,30.39,58.0,29.15,0.61,30.12,27.64,2.48,-0.75,3.02,29.16,29.29,58.0,24.95,0.87,26.54,22.68,3.86,-0.48,3.04,24.96,24.88,58.0,21.17,1.23,23.23,18.34,4.89,-0.36,2.2,21.21,21.3,58.0,17.34,1.34,20.06,14.69,5.37,-0.07,2.25,17.4,17.23,58.0
AE-NEU = 11.42,1.58,12.76,9.24,3.51,-0.65,1.54,11.51,12.24,6.0,14.95,1.35,16.06,13.17,2.89,-0.61,1.51,15.0,15.55,6.0,15.79,1.78,17.44,13.44,4.0,-0.63,1.52,15.87,16.68,6.0,22.36,2.71,24.61,18.82,5.79,-0.65,1.5,22.49,23.71,6.0,27.11,2.97,29.29,23.23,6.06,-0.68,1.5,27.24,28.74,6.0,28.76,1.78,30.67,26.54,4.13,-0.44,1.5,28.81,29.39,6.0,28.84,2.36,30.67,25.71,4.96,-0.68,1.51,28.92,30.12,6.0,29.88,0.49,30.39,29.08,1.31,-0.6,2.1,29.88,29.98,6.0,27.86,1.25,29.02,26.26,2.76,-0.62,1.51,27.88,28.5,6.0,22.79,1.91,24.61,20.27,4.34,-0.61,1.52,22.86,23.75,6.0,18.88,2.19,20.47,16.06,4.41,-0.69,1.5,18.98,20.09,6.0,15.4,2.12,17.17,12.48,4.69,-0.67,1.54,15.52,16.48,6.0
AE-RK = 11.75,0.95,14.0,9.17,4.82,-0.21,2.89,11.79,11.72,104.0,14.72,1.02,16.61,10.55,6.06,-1.34,6.1,14.76,14.82,104.0,16.09,1.14,18.27,13.03,5.24,-0.37,2.45,16.13,16.27,104.0,22.56,1.54,25.16,19.51,5.65,-0.19,1.84,22.61,22.61,104.0,27.15,1.65,30.39,23.78,6.61,-0.23,2.31,27.2,27.36,104.0,29.16,0.68,31.5,27.64,3.86,0.33,3.35,29.17,29.05,104.0,29.31,0.7,30.67,27.64,3.03,-0.24,2.5,29.32,29.33,104.0,30.36,0.69,31.77,28.74,3.03,0.08,2.21,30.37,30.36,104.0,28.07,0.96,30.39,25.71,4.69,-0.24,2.73,28.08,28.19,104.0,23.39,1.1,26.12,21.02,5.1,-0.29,2.46,23.41,23.64,104.0,19.49,1.15,21.85,16.89,4.96,-0.28,2.6,19.52,19.65,104.0,15.72,1.11,18.27,12.76,5.51,0.16,2.71,15.75,15.68,104.0
AE-SH = 10.69,1.68,16.06,8.76,7.3,1.48,4.28,10.82,10.07,92.0,13.86,1.2,17.72,12.2,5.51,1.24,3.98,13.91,13.55,92.0,14.84,1.61,19.09,12.2,6.89,0.77,2.73,14.93,14.41,92.0,20.34,1.89,26.54,18.82,7.72,1.97,5.9,20.42,19.65,92.0,25.01,1.79,29.84,22.95,6.89,1.44,4.3,25.07,24.33,92.0,28.24,0.71,29.84,26.81,3.03,-0.13,2.27,28.25,28.33,92.0,27.93,0.98,30.12,25.98,4.13,0.51,2.7,27.95,27.64,92.0,29.72,0.66,32.05,28.74,3.31,1.5,5.37,29.72,29.57,92.0,26.6,1.25,29.84,25.16,4.69,1.2,3.51,26.63,26.12,92.0,21.38,2.05,27.09,18.54,8.54,1.26,3.55,21.47,20.75,92.0,17.33,2.32,23.5,13.58,9.92,0.92,3.3,17.48,16.75,92.0,14.48,1.76,20.2,11.65,8.54,1.4,4.53,14.59,14.13,92.0
AE-UQ = 11.5,1.76,14.69,9.45,5.24,0.58,1.92,11.63,10.93,42.0,14.05,0.96,16.06,12.48,3.58,0.85,2.84,14.08,13.86,38.0,15.07,1.71,17.99,11.38,6.61,-0.25,2.16,15.16,14.89,37.0,20.08,0.77,21.85,19.09,2.76,1.17,3.37,20.09,19.78,42.0,24.76,0.82,26.12,23.5,2.62,0.36,1.78,24.77,24.61,42.0,28.02,0.37,28.81,27.36,1.45,0.55,2.3,28.02,27.91,42.0,28.35,0.36,28.88,27.64,1.24,-0.09,1.8,28.36,28.33,42.0,29.75,0.29,30.26,28.74,1.52,-0.74,5.59,29.75,29.7,38.0,26.78,1.32,29.84,25.43,4.41,1.13,3.31,26.81,26.33,42.0,22.39,2.32,28.46,20.06,8.41,1.64,4.91,22.51,21.4,42.0,18.89,2.2,24.06,16.34,7.72,1.12,3.43,19.01,18.3,42.0,15.4,1.96,20.2,13.44,6.75,1.35,3.88,15.52,14.41,42.0
