# PRT.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 = PRT temperature 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 = PRT
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

PT-01 = 11.25,0.73,12.89,8.07,4.82,-0.76,3.86,11.28,11.38,506.0,12.37,0.74,14.69,9.17,5.51,0.16,3.29,12.39,12.27,506.0,18.15,1.1,20.47,15.24,5.24,-0.31,2.02,18.18,18.41,506.0,21.74,1.48,25.43,17.44,7.99,-0.4,2.69,21.79,21.78,506.0,25.39,2.31,29.84,17.17,12.68,-0.48,2.51,25.49,25.71,506.0,28.08,2.64,35.08,20.47,14.61,-0.35,2.34,28.21,28.43,506.0,33.78,3.34,42.24,24.61,17.64,-0.47,2.53,33.94,34.25,506.0,33.57,2.79,40.04,23.5,16.54,-0.75,3.39,33.69,33.98,506.0,29.72,2.18,34.8,21.85,12.95,-0.96,4.05,29.8,30.12,506.0,24.25,1.16,26.54,20.47,6.06,-0.4,3.03,24.28,24.33,506.0,19.14,0.85,21.3,16.34,4.96,0.13,3.21,19.16,19.09,506.0,12.63,0.54,14.13,11.1,3.03,0.09,2.77,12.64,12.62,506.0
PT-10 = 9.18,1.44,12.89,5.31,7.58,-0.12,2.47,9.29,9.31,1011.0,10.7,1.72,14.13,5.87,8.27,-0.17,2.26,10.83,10.69,1011.0,16.04,1.47,19.09,11.38,7.72,-0.12,2.39,16.11,15.93,1011.0,18.81,1.85,23.5,11.93,11.57,-0.57,3.26,18.9,19.09,1011.0,23.4,2.29,29.7,15.24,14.47,0.31,3.15,23.51,23.09,1011.0,26.06,3.33,35.49,19.37,16.12,0.69,2.56,26.27,25.16,1011.0,32.44,4.53,43.76,23.23,20.53,0.62,2.3,32.75,31.22,1011.0,31.53,3.85,42.38,23.78,18.6,0.61,2.58,31.76,30.67,1011.0,28.75,2.72,36.32,23.64,12.68,0.89,3.1,28.88,28.19,1011.0,21.02,1.98,25.16,16.06,9.09,-0.16,2.18,21.11,21.02,1011.0,16.01,1.78,19.92,11.38,8.54,-0.24,2.04,16.11,16.06,1011.0,10.75,1.28,13.31,6.97,6.34,-0.28,1.99,10.83,10.83,1011.0
PT-11 = 7.76,1.51,12.48,4.35,8.13,0.61,3.04,7.9,7.52,922.0,10.16,1.38,13.58,6.0,7.58,-0.33,2.8,10.25,10.28,922.0,15.12,1.22,17.99,11.1,6.89,0.02,2.43,15.17,15.1,922.0,20.88,1.62,25.43,15.24,10.2,-0.28,3.08,20.94,20.92,922.0,23.43,1.79,27.91,17.17,10.75,-0.09,2.33,23.5,23.4,922.0,24.18,2.47,30.12,18.82,11.3,0.3,2.2,24.3,23.92,922.0,30.47,3.71,39.21,22.4,16.81,0.33,1.93,30.7,29.57,922.0,29.15,3.19,36.73,22.95,13.78,0.32,2.04,29.32,28.46,922.0,27.92,1.91,32.6,23.5,9.09,0.38,2.25,27.98,27.64,922.0,19.47,1.8,24.61,14.96,9.65,0.36,2.75,19.55,19.37,922.0,14.26,1.61,18.54,11.1,7.44,0.72,2.52,14.35,13.86,922.0,8.72,1.27,12.76,5.87,6.89,0.82,2.88,8.81,8.35,922.0
PT-14 = 10.97,0.63,13.31,8.62,4.69,-0.2,3.59,10.99,10.96,1105.0,13.45,1.1,17.17,10.0,7.17,0.18,2.89,13.5,13.31,1105.0,18.8,1.04,22.4,15.79,6.61,0.57,3.95,18.83,18.68,1105.0,21.27,1.47,25.98,14.13,11.85,-0.24,4.62,21.32,21.3,1105.0,28.92,2.15,35.91,21.99,13.92,0.48,3.57,29.0,28.74,1105.0,33.77,2.78,41.42,24.33,17.09,-0.08,3.11,33.88,33.98,1105.0,40.58,2.95,45.0,27.5,17.5,-1.19,4.93,40.69,41.14,1105.0,38.76,2.5,42.8,27.78,15.02,-1.45,5.5,38.84,39.35,1105.0,32.37,2.41,36.46,22.26,14.19,-1.21,4.05,32.46,33.15,1105.0,25.82,1.51,29.57,21.57,7.99,0.22,2.48,25.86,25.85,1105.0,19.97,0.97,22.95,16.34,6.61,0.15,3.6,20.0,19.92,1105.0,13.11,0.79,15.58,10.83,4.75,0.15,2.87,13.13,13.03,1105.0
PT-15 = 12.55,0.72,14.41,10.55,3.86,-0.42,3.05,12.57,12.55,202.0,15.72,0.85,17.72,13.58,4.13,-0.19,2.66,15.75,15.79,202.0,19.32,1.28,22.13,15.93,6.2,-0.33,2.93,19.37,19.37,202.0,21.72,1.43,24.06,17.03,7.03,-0.47,2.86,21.77,21.85,202.0,29.0,2.47,35.35,21.44,13.92,-0.55,3.65,29.11,29.5,202.0,32.1,3.52,40.31,22.68,17.64,0.02,3.08,32.29,32.05,202.0,37.13,3.97,45.0,25.57,19.43,-0.67,3.41,37.34,37.97,202.0,34.81,3.28,40.87,24.61,16.26,-0.78,3.61,34.96,35.63,202.0,28.57,1.83,32.6,23.37,9.23,-0.25,3.5,28.62,28.53,202.0,25.07,1.21,26.81,21.3,5.51,-0.75,3.31,25.1,25.16,202.0,19.33,1.21,21.85,16.89,4.96,-0.24,2.1,19.37,19.51,202.0,15.02,0.83,16.61,12.48,4.13,-0.92,3.48,15.05,15.24,202.0
