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

AT-10 = 1.54,1.09,4.76,-1.3,6.06,0.19,3.32,1.89,1.46,198.0,7.74,1.24,10.55,2.83,7.72,-1.12,5.14,7.84,7.93,198.0,9.34,1.46,12.2,6.14,6.06,-0.14,2.21,9.45,9.45,198.0,16.79,2.23,22.95,12.48,10.47,0.25,2.62,16.93,16.89,198.0,21.79,1.87,26.54,17.99,8.54,0.16,2.46,21.87,21.44,198.0,24.35,1.91,29.57,19.92,9.65,0.55,3.12,24.42,24.06,198.0,24.93,2.26,30.39,20.47,9.92,0.5,2.76,25.03,24.57,198.0,24.14,1.91,29.29,20.2,9.09,0.84,3.28,24.21,23.92,198.0,21.97,2.61,27.91,17.44,10.47,0.5,2.41,22.13,21.71,198.0,15.21,1.25,17.72,11.93,5.79,-0.29,2.23,15.26,15.37,198.0,7.08,1.11,10.83,3.32,7.51,0.11,4.32,7.17,7.11,198.0,-1.48,2.25,5.18,-9.57,14.74,-0.91,5.4,2.69,-1.3,198.0
AT-2 = -0.52,2.48,2.56,-12.32,14.88,-2.19,8.18,2.53,0.29,458.0,2.77,2.61,6.69,-6.26,12.95,-1.11,4.03,3.8,3.25,458.0,3.98,3.72,11.1,-9.02,20.12,-0.9,3.89,5.45,4.42,458.0,9.16,3.09,15.79,-2.4,18.19,-0.97,4.49,9.67,9.62,458.0,15.74,3.38,24.33,3.39,20.94,-0.34,3.4,16.09,15.79,458.0,19.47,2.48,25.71,12.2,13.5,-0.42,2.73,19.63,19.78,458.0,19.14,2.68,25.71,12.2,13.5,-0.2,2.6,19.32,19.09,458.0,18.77,2.47,24.33,11.93,12.4,-0.24,2.51,18.93,18.82,458.0,14.4,2.54,20.2,6.69,13.5,-0.24,2.52,14.62,14.41,458.0,10.2,2.01,14.69,2.83,11.85,-0.58,3.36,10.4,10.41,458.0,2.04,2.38,6.97,-6.26,13.23,-1.03,4.05,3.13,2.56,458.0,-6.53,2.41,-1.57,-12.74,11.16,-0.21,2.63,6.96,-6.4,458.0
AT-3 = 1.02,2.29,5.59,-7.09,12.68,-0.29,2.43,2.5,1.04,997.0,5.6,2.15,9.17,-1.02,10.2,-0.61,2.81,5.99,5.87,997.0,6.5,3.55,13.31,-3.5,16.81,-0.45,2.33,7.41,6.69,997.0,15.62,3.69,23.5,4.49,19.02,-0.33,2.36,16.05,15.79,997.0,19.78,2.65,24.88,12.2,12.68,-0.32,2.33,19.95,19.92,997.0,22.17,2.41,28.74,16.06,12.68,-0.09,2.53,22.3,22.4,997.0,23.4,2.7,29.57,16.06,13.5,-0.1,2.18,23.55,23.71,997.0,23.36,3.48,32.32,14.41,17.91,0.17,2.17,23.62,22.95,997.0,21.3,3.42,28.46,12.62,15.85,0.11,2.0,21.58,20.61,997.0,12.88,1.61,17.44,8.76,8.68,0.18,2.41,12.98,12.89,997.0,5.93,1.83,11.65,0.08,11.57,0.05,3.01,6.21,5.87,997.0,-0.08,2.36,6.97,-7.36,14.33,-0.45,2.91,2.36,0.35,997.0
AT-4 = -1.12,2.08,2.56,-8.46,11.02,-0.96,3.94,2.36,-0.75,581.0,4.06,2.28,6.97,-3.78,10.75,-1.56,4.91,4.66,4.9,581.0,3.77,2.91,8.07,-10.12,18.19,-1.59,5.87,4.76,4.76,581.0,11.77,3.23,17.99,-0.47,18.46,-1.26,4.13,12.2,12.76,581.0,19.68,2.97,24.88,8.07,16.81,-1.23,4.52,19.9,20.47,581.0,21.65,2.11,26.54,15.79,10.75,-0.42,2.08,21.76,22.13,581.0,22.63,2.12,28.74,16.89,11.85,-0.32,2.47,22.73,22.95,581.0,20.96,2.42,26.26,14.96,11.3,-0.37,2.54,21.09,21.3,581.0,19.5,1.62,24.33,14.69,9.65,-0.17,2.93,19.57,19.51,581.0,11.35,1.33,14.96,5.31,9.65,-1.02,5.32,11.43,11.52,581.0,4.16,1.9,9.72,-1.57,11.3,-0.18,3.25,4.57,4.21,581.0,-0.43,2.5,3.66,-8.74,12.4,-1.08,3.61,2.54,0.22,581.0
AT-5 = -6.13,2.94,0.63,-13.15,13.78,0.05,2.72,6.8,-6.12,348.0,-2.08,3.43,6.69,-9.29,15.98,0.41,3.05,4.01,-1.99,348.0,-2.57,3.8,8.35,-11.22,19.57,0.6,3.06,4.58,-2.95,348.0,5.72,4.97,16.34,-4.88,21.22,-0.1,2.31,7.57,6.14,348.0,13.3,5.08,23.5,1.18,22.32,-0.37,2.54,14.24,14.13,348.0,17.99,2.68,25.43,11.38,14.06,-0.11,2.96,18.19,18.3,348.0,18.14,3.2,25.43,10.28,15.16,-0.03,2.71,18.42,18.41,348.0,16.26,2.77,23.5,10.0,13.5,0.32,3.24,16.5,16.34,348.0,13.04,3.69,23.78,4.21,19.57,0.11,3.13,13.55,13.31,348.0,8.01,2.83,15.24,0.91,14.33,-0.05,2.85,8.5,8.31,348.0,1.6,4.23,10.55,-9.02,19.57,-0.37,2.37,4.51,2.77,348.0,-7.16,3.75,2.56,-13.98,16.54,0.8,3.47,8.08,-7.6,348.0
AT-6 = -1.22,2.46,3.11,-8.74,11.85,-0.46,2.04,2.74,-0.75,783.0,3.77,4.12,10.83,-5.71,16.54,-0.14,1.89,5.58,4.07,783.0,3.89,5.08,13.58,-8.74,22.32,0.1,2.01,6.4,3.25,783.0,10.2,4.7,20.2,0.08,20.12,0.17,2.1,11.23,9.31,783.0,16.59,3.6,24.33,7.8,16.54,0.18,2.36,16.98,16.06,783.0,20.23,2.6,26.81,13.58,13.23,0.43,2.29,20.4,19.65,783.0,20.1,2.73,27.09,14.69,12.4,0.41,2.02,20.29,19.37,783.0,18.84,2.81,25.71,12.76,12.95,0.51,2.07,19.05,17.99,783.0,15.97,2.19,22.13,11.38,10.75,0.24,2.14,16.12,15.65,783.0,11.68,3.03,17.72,5.31,12.4,0.35,1.94,12.07,10.55,783.0,3.14,2.1,8.62,-4.33,12.95,-0.06,3.0,3.77,3.11,783.0,-5.31,2.42,1.46,-10.39,11.85,0.29,2.39,5.84,-5.57,783.0
AT-7 = -7.56,3.13,-1.3,-15.63,14.33,0.02,2.07,8.19,-7.64,603.0,-3.28,2.95,3.39,-10.94,14.33,-0.21,2.28,4.41,-2.95,603.0,-3.35,3.44,6.14,-10.12,16.26,0.22,2.29,4.8,-3.5,603.0,2.47,4.92,14.69,-6.26,20.94,0.21,2.05,5.5,2.21,603.0,11.1,4.33,21.02,0.63,20.39,0.1,2.16,11.91,10.96,603.0,16.84,2.71,24.06,10.55,13.5,0.2,2.37,17.05,16.61,603.0,15.98,2.48,22.95,10.55,12.4,0.4,2.43,16.17,15.51,603.0,15.92,1.89,21.02,10.0,11.02,-0.08,2.71,16.03,15.93,603.0,10.89,2.51,17.17,4.49,12.68,0.22,2.55,11.17,10.69,603.0,8.19,2.15,13.31,1.73,11.57,-0.25,2.59,8.47,8.35,603.0,-1.13,3.73,6.14,-10.94,17.09,-0.22,2.31,3.89,-1.16,603.0,-9.46,2.63,-1.71,-14.8,13.09,0.41,2.63,9.82,-9.7,603.0
AT-8 = -5.65,3.35,2.01,-11.91,13.92,0.31,2.22,6.56,-6.26,123.0,-1.25,3.54,5.87,-8.19,14.06,0.15,2.05,3.74,-1.44,123.0,0.4,5.13,13.58,-7.22,20.81,0.57,2.38,5.13,-0.33,123.0,4.09,6.17,16.75,-7.91,24.67,0.27,1.94,7.38,2.83,123.0,12.56,5.53,23.23,1.32,21.91,0.05,1.97,13.71,12.76,123.0,18.92,2.61,25.16,13.17,11.99,0.2,2.47,19.1,18.54,123.0,17.81,2.52,24.88,12.76,12.13,0.82,3.09,17.99,17.03,123.0,17.56,1.62,22.13,13.58,8.54,0.67,4.0,17.64,17.23,123.0,12.43,1.99,16.89,8.35,8.54,0.08,2.42,12.59,12.41,123.0,9.96,2.18,14.41,3.66,10.75,-0.42,2.87,10.19,10.14,123.0,-1.22,2.9,5.04,-5.43,10.47,0.43,1.81,3.13,-2.13,123.0,-7.65,3.0,-0.2,-13.84,13.64,0.23,2.44,8.21,-7.57,123.0
AT-9 = 3.04,1.86,5.59,-2.4,7.99,-1.01,3.43,3.55,3.45,57.0,7.33,1.28,9.17,4.49,4.69,-0.69,2.27,7.44,7.73,57.0,10.22,1.84,13.03,5.04,7.99,-1.17,3.75,10.38,10.83,57.0,18.82,1.87,22.13,14.96,7.17,-0.2,2.09,18.91,19.16,57.0,22.11,1.93,24.88,17.44,7.44,-0.98,2.91,22.19,22.81,57.0,24.96,1.73,28.74,21.85,6.89,0.32,2.62,25.02,24.81,57.0,26.11,2.16,29.57,20.47,9.09,-0.81,2.78,26.2,26.81,57.0,26.39,2.66,29.84,21.02,8.82,-0.67,2.05,26.52,27.22,57.0,24.03,2.3,26.54,19.37,7.17,-0.81,2.17,24.14,25.02,57.0,14.92,0.89,17.44,13.03,4.41,0.13,3.05,14.95,14.96,57.0,7.66,0.95,10.0,5.59,4.41,0.03,2.75,7.72,7.8,57.0,0.65,1.61,3.11,-3.78,6.89,-0.81,2.64,1.72,1.18,57.0
