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

# The title
TITLE = AUT nighttemp data for 2002 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=2002

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

AT-10 = -6.73,0.91,-4.88,-8.46,3.58,0.19,2.3,6.79,-6.81,198.0,-0.41,1.03,2.56,-2.68,5.24,0.4,2.92,1.11,-0.47,198.0,2.14,0.87,4.21,0.08,4.13,-0.2,2.5,2.31,2.28,198.0,3.65,0.88,6.42,1.73,4.69,0.57,3.41,3.75,3.52,198.0,11.6,0.51,13.31,10.28,3.03,0.37,3.29,11.61,11.65,198.0,14.78,0.51,16.06,13.86,2.2,0.55,2.79,14.79,14.69,198.0,16.45,0.51,18.27,14.96,3.31,-0.15,3.94,16.45,16.48,198.0,15.93,0.66,17.99,14.69,3.31,0.58,3.26,15.94,15.86,198.0,10.65,1.13,13.86,5.59,8.27,-0.49,5.04,10.71,10.69,198.0,3.79,0.87,6.14,0.63,5.51,-0.15,3.76,3.89,3.8,198.0,1.46,0.98,3.39,-1.85,5.24,-0.58,3.4,1.76,1.59,198.0,-7.01,1.09,-4.06,-10.39,6.34,0.07,3.49,7.09,-7.09,198.0
AT-2 = -7.3,1.23,-5.3,-13.15,7.85,-1.69,7.06,7.41,-7.02,458.0,-3.73,2.87,0.91,-14.25,15.16,-1.04,3.83,4.71,-2.95,458.0,-0.12,2.68,3.94,-9.84,13.78,-1.04,3.78,2.68,0.35,458.0,-2.53,3.45,4.49,-9.57,14.06,0.05,1.83,4.27,-2.95,458.0,6.08,4.14,11.93,-4.61,16.54,-0.74,2.37,7.36,7.52,458.0,12.28,3.28,16.89,0.91,15.98,-1.15,3.91,12.71,13.03,458.0,11.74,2.6,15.79,2.7,13.09,-0.99,3.48,12.03,12.24,458.0,10.85,3.19,15.24,-0.33,15.57,-1.28,4.25,11.31,11.65,458.0,5.69,2.93,10.28,-4.33,14.61,-0.91,3.3,6.4,6.42,458.0,0.93,3.38,5.59,-8.46,14.06,-0.78,2.35,3.5,2.15,458.0,-1.49,3.49,3.11,-12.32,15.43,-0.99,3.13,3.79,-0.2,458.0,-9.63,1.6,-5.71,-16.18,10.47,-1.0,4.76,9.76,-9.39,458.0
AT-3 = -6.08,1.55,-2.13,-9.29,7.17,0.24,2.43,6.27,-6.26,997.0,-0.81,1.22,2.56,-5.43,7.99,-0.58,3.6,1.46,-0.75,997.0,1.65,1.21,4.21,-1.57,5.79,-0.48,2.72,2.05,1.73,997.0,2.49,1.37,6.42,-2.13,8.54,-0.12,3.09,2.84,2.7,997.0,11.46,1.27,14.41,7.8,6.61,-0.65,3.0,11.53,11.72,997.0,13.56,1.19,16.34,10.14,6.2,-0.68,2.84,13.61,13.86,997.0,15.08,1.35,19.09,10.41,8.68,-0.36,2.82,15.14,15.31,997.0,14.87,1.46,18.54,10.0,8.54,-0.51,3.16,14.94,15.24,997.0,9.61,1.72,14.13,4.76,9.37,-0.43,2.69,9.76,9.72,997.0,3.37,1.11,5.59,-1.02,6.61,-0.69,4.44,3.55,3.39,997.0,0.46,1.22,4.21,-4.61,8.82,0.06,3.39,1.31,0.49,997.0,-8.02,1.31,-5.16,-12.32,7.17,-0.59,2.93,8.12,-7.78,997.0
AT-4 = -7.84,1.1,-5.43,-12.32,6.89,-0.29,3.34,7.92,-7.91,581.0,-1.58,1.9,3.39,-10.67,14.06,-1.78,7.73,2.47,-1.23,581.0,0.68,1.05,3.11,-6.26,9.37,-1.82,10.99,1.25,0.77,581.0,1.68,2.14,5.04,-7.36,12.4,-2.04,7.63,2.72,2.08,581.0,10.11,1.74,13.31,0.63,12.68,-2.28,9.8,10.26,10.41,581.0,12.74,1.52,15.24,3.11,12.13,-2.65,12.13,12.83,13.1,581.0,13.43,1.74,16.34,4.49,11.85,-1.76,7.28,13.54,13.79,581.0,13.52,2.02,16.89,3.94,12.95,-1.86,7.14,13.67,14.0,581.0,8.11,1.58,12.48,0.35,12.13,-1.35,7.43,8.26,8.21,581.0,3.36,1.87,6.14,-4.33,10.47,-1.97,7.03,3.84,3.94,581.0,-0.42,1.84,3.94,-7.64,11.57,-1.44,5.74,1.89,-0.06,581.0,-7.51,1.1,-4.33,-11.77,7.44,-0.87,5.26,7.59,-7.36,581.0
AT-5 = -10.26,1.86,-7.09,-15.91,8.82,-0.87,3.17,10.43,-9.84,348.0,-7.6,3.3,0.22,-15.08,15.3,0.3,2.76,8.28,-7.64,348.0,-3.66,3.2,2.01,-10.94,12.95,-0.2,2.37,4.86,-3.37,348.0,-4.53,3.99,3.39,-12.6,15.98,0.14,1.92,6.04,-4.61,348.0,3.53,4.36,11.38,-5.43,16.81,-0.07,2.0,5.6,3.8,348.0,8.17,3.74,14.0,-0.33,14.33,-0.44,2.21,8.99,9.17,348.0,8.29,3.19,14.13,0.63,13.5,-0.4,2.43,8.88,8.62,348.0,7.5,3.98,14.69,-1.02,15.71,-0.32,2.28,8.49,7.8,348.0,1.71,3.52,9.45,-5.71,15.16,-0.04,2.23,3.91,1.73,348.0,-2.12,3.82,4.76,-10.39,15.16,-0.04,2.21,4.37,-2.4,348.0,-5.64,3.79,2.01,-12.6,14.61,0.08,2.09,6.79,-5.57,348.0,-10.39,2.81,-4.06,-16.18,12.13,0.13,2.2,10.76,-10.39,348.0
AT-6 = -7.65,1.19,-5.16,-11.22,6.06,-0.88,3.4,7.74,-7.36,783.0,-3.43,2.89,1.87,-11.5,13.37,-0.58,2.79,4.48,-3.23,783.0,0.7,2.26,4.21,-5.71,9.92,-0.62,2.44,2.37,1.18,783.0,-0.56,3.93,6.14,-9.02,15.16,-0.36,2.0,3.96,0.01,783.0,8.23,2.8,12.2,-0.75,12.95,-0.91,3.33,8.69,8.62,783.0,12.1,2.62,15.79,3.66,12.13,-0.81,3.28,12.38,12.34,783.0,12.69,2.72,17.44,4.21,13.23,-0.66,2.85,12.98,12.89,783.0,11.63,2.85,16.34,4.49,11.85,-0.18,2.07,11.98,11.38,783.0,6.67,2.67,12.2,-0.47,12.68,-0.04,2.53,7.18,6.42,783.0,1.85,2.47,6.14,-5.43,11.57,-0.54,2.43,3.09,2.35,783.0,-0.78,2.55,4.21,-9.02,13.23,-0.86,3.34,2.67,-0.2,783.0,-8.79,1.66,-3.78,-13.15,9.37,-0.15,2.54,8.95,-8.6,783.0
AT-7 = -10.54,2.25,-6.4,-17.28,10.89,-0.55,2.5,10.78,-10.12,603.0,-9.02,3.32,-1.85,-16.18,14.33,0.15,2.03,9.61,-9.15,603.0,-6.03,3.18,1.73,-14.25,15.98,0.11,2.64,6.82,-5.98,603.0,-5.81,3.48,3.11,-13.43,16.54,0.55,2.64,6.77,-6.33,603.0,0.21,4.52,10.83,-7.91,18.74,0.42,2.1,4.52,-0.75,603.0,6.27,3.48,13.86,-1.57,15.43,0.23,2.15,7.16,5.94,603.0,5.44,2.91,13.03,-0.47,13.5,0.61,2.72,6.17,4.76,603.0,4.22,4.13,14.41,-3.78,18.19,0.46,2.22,5.9,3.25,603.0,0.22,2.98,7.52,-6.81,14.33,0.05,2.61,2.98,0.35,603.0,-4.16,3.04,4.21,-10.39,14.61,0.86,3.18,5.15,-4.74,603.0,-7.82,3.27,1.18,-13.15,14.33,0.85,3.15,8.47,-8.46,603.0,-10.65,2.83,-4.61,-17.01,12.4,-0.04,2.1,11.02,-10.39,603.0
AT-8 = -9.46,2.38,-6.26,-15.63,9.37,-0.6,2.36,9.75,-8.88,123.0,-8.21,3.27,-0.75,-14.8,14.06,0.06,2.08,8.83,-8.05,123.0,-4.06,3.92,1.59,-12.05,13.64,-0.15,1.73,5.63,-4.06,123.0,-3.82,3.75,3.39,-10.12,13.5,0.16,1.78,5.34,-4.33,123.0,1.54,4.1,10.0,-6.26,16.26,0.09,1.95,4.36,1.25,123.0,7.5,3.18,13.86,0.63,13.23,-0.02,1.86,8.14,7.38,123.0,5.56,3.37,14.13,-0.47,14.61,0.42,2.29,6.49,4.9,123.0,4.13,4.3,12.48,-3.5,15.98,0.14,1.74,5.95,4.07,123.0,2.15,3.38,8.35,-5.71,14.06,-0.27,1.95,4.0,2.42,123.0,-1.98,2.66,2.56,-7.36,9.92,-0.2,1.89,3.31,-1.44,123.0,-6.81,2.81,-1.02,-11.77,10.75,0.04,1.89,7.36,-6.54,123.0,-9.16,2.42,-3.5,-15.77,12.26,-0.25,2.82,9.47,-8.74,123.0
AT-9 = -3.96,1.02,-2.4,-5.98,3.58,-0.26,1.71,4.08,-3.57,57.0,0.34,0.59,1.46,-0.75,2.2,-0.11,2.08,0.67,0.35,57.0,2.47,0.87,4.21,0.91,3.31,-0.01,1.9,2.62,2.49,57.0,4.21,1.18,6.42,1.18,5.24,-0.09,2.56,4.37,4.21,57.0,13.0,0.6,14.41,11.93,2.48,0.31,2.39,13.02,12.96,57.0,14.68,0.68,16.34,13.31,3.03,0.5,2.85,14.69,14.55,57.0,16.69,0.84,19.09,14.96,4.13,0.42,2.98,16.71,16.61,57.0,16.64,0.91,18.54,14.96,3.58,0.23,2.07,16.66,16.41,57.0,10.51,1.26,13.03,6.97,6.06,-0.46,3.4,10.58,10.55,57.0,4.24,0.94,5.59,1.73,3.86,-0.6,2.69,4.34,4.49,57.0,1.83,0.8,3.66,0.08,3.58,0.37,2.84,1.99,1.73,57.0,-6.65,0.54,-5.43,-8.74,3.31,-0.83,6.17,6.67,-6.67,57.0
