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

# 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 = 9.52,0.9,11.65,6.97,4.69,-0.34,2.47,9.56,9.66,506.0,11.37,0.92,14.13,7.52,6.61,-0.72,4.48,11.41,11.48,506.0,14.47,1.22,17.17,10.55,6.61,-0.46,3.19,14.52,14.58,506.0,21.31,1.09,24.33,18.27,6.06,-0.01,2.48,21.33,21.44,506.0,25.79,1.74,29.02,21.02,7.99,-0.27,2.16,25.85,25.98,506.0,29.83,3.22,35.63,21.02,14.61,-0.55,2.22,30.0,30.94,506.0,35.3,3.58,42.24,25.16,17.09,-0.54,2.41,35.48,35.8,506.0,35.4,3.06,41.42,25.16,16.26,-0.84,3.3,35.53,35.97,506.0,30.63,2.56,36.18,22.68,13.5,-0.7,2.69,30.74,31.36,506.0,20.75,1.11,23.5,17.72,5.79,-0.04,2.23,20.78,20.75,506.0,14.81,0.89,16.89,11.65,5.24,-0.65,3.22,14.84,14.96,506.0,10.24,0.87,12.89,7.8,5.1,-0.01,3.49,10.28,10.28,506.0
PT-10 = 7.07,1.82,11.1,0.08,11.02,-0.33,2.9,7.3,7.11,1011.0,8.62,2.14,13.31,0.08,13.23,-0.34,2.79,8.88,8.48,1011.0,12.23,1.53,16.61,7.8,8.82,-0.06,2.59,12.32,12.2,1011.0,19.07,1.52,23.23,15.51,7.72,0.21,2.17,19.13,18.82,1011.0,24.24,1.87,31.5,19.09,12.4,0.48,3.29,24.32,24.06,1011.0,28.84,3.57,37.97,21.99,15.98,0.74,2.45,29.06,27.64,1011.0,35.63,4.36,45.0,25.98,19.02,0.44,2.17,35.89,34.53,1011.0,35.15,3.62,44.04,23.23,20.81,0.24,2.43,35.34,34.39,1011.0,29.05,3.0,37.56,23.23,14.33,0.56,2.59,29.21,28.4,1011.0,19.49,1.85,25.43,14.69,10.75,0.65,3.41,19.57,19.23,1011.0,12.74,1.68,16.06,8.07,7.99,-0.05,2.08,12.85,12.69,1011.0,7.52,1.61,11.1,3.39,7.72,-0.18,2.38,7.69,7.52,1011.0
PT-11 = 6.59,1.42,10.55,2.56,7.99,0.14,3.05,6.75,6.69,922.0,6.96,1.79,12.2,0.63,11.57,-0.34,3.4,7.19,7.07,922.0,11.48,1.27,15.51,7.52,7.99,0.25,2.91,11.55,11.38,922.0,18.32,1.31,22.95,15.24,7.72,0.39,2.8,18.37,18.27,922.0,24.0,1.69,29.29,19.37,9.92,0.08,2.97,24.06,24.06,922.0,28.02,2.48,35.35,21.3,14.06,0.39,2.62,28.13,27.78,922.0,34.22,3.23,40.87,24.61,16.26,0.08,2.3,34.38,33.98,922.0,33.57,2.75,40.18,23.5,16.67,0.06,2.82,33.68,33.01,922.0,27.61,2.16,32.87,20.89,11.99,-0.02,2.58,27.7,27.36,922.0,18.01,1.45,21.85,13.31,8.54,0.07,2.69,18.07,17.99,922.0,11.0,1.41,14.96,7.66,7.3,0.52,2.93,11.09,10.69,922.0,6.5,1.64,11.24,3.11,8.13,0.5,2.57,6.71,6.28,922.0
PT-14 = 10.43,1.1,13.86,4.76,9.09,-0.58,4.91,10.49,10.55,1105.0,11.55,1.17,14.13,4.21,9.92,-0.68,4.96,11.61,11.58,1105.0,14.93,1.02,17.72,11.38,6.34,-0.09,2.83,14.96,14.96,1105.0,20.91,1.22,25.98,16.06,9.92,0.28,3.91,20.94,20.82,1105.0,27.18,1.86,33.15,21.3,11.85,0.12,2.74,27.24,27.09,1105.0,35.16,2.86,41.56,25.85,15.71,-0.46,3.54,35.28,35.22,1105.0,41.04,2.78,45.0,28.33,16.67,-1.53,5.89,41.14,41.69,1105.0,40.78,2.42,45.0,29.29,15.71,-1.35,5.49,40.85,41.28,1105.0,34.89,2.28,39.49,25.16,14.33,-1.17,4.26,34.96,35.49,1105.0,23.92,1.58,27.36,17.99,9.37,-0.51,2.62,23.97,24.26,1105.0,16.01,0.87,18.82,12.76,6.06,-0.1,3.35,16.03,16.06,1105.0,11.04,0.89,13.86,7.24,6.61,-0.29,3.75,11.07,11.1,1105.0
PT-15 = 11.65,1.09,14.69,8.76,5.93,0.09,2.7,11.7,11.65,202.0,12.56,1.36,16.06,9.04,7.03,-0.05,2.78,12.63,12.48,202.0,15.42,1.04,17.72,12.76,4.96,-0.18,2.67,15.45,15.41,202.0,21.05,1.53,23.78,16.48,7.3,-0.36,2.25,21.11,21.16,202.0,26.07,2.18,30.67,20.47,10.2,-0.13,2.9,26.16,26.09,202.0,32.2,3.88,41.69,24.06,17.64,-0.07,2.61,32.44,32.74,202.0,36.26,3.97,44.45,26.4,18.05,-0.32,2.54,36.47,37.01,202.0,36.91,3.3,43.9,27.36,16.54,-0.52,3.21,37.06,37.28,202.0,31.35,2.56,37.56,24.19,13.37,-0.24,3.34,31.45,31.5,202.0,21.8,1.64,25.16,17.72,7.44,0.2,2.71,21.86,21.85,202.0,17.31,1.18,20.47,13.86,6.61,0.11,2.79,17.35,17.3,202.0,11.92,1.38,15.79,8.9,6.89,-0.1,2.55,12.0,12.03,202.0
