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

# 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.19,1.05,14.69,8.62,6.06,0.09,2.7,11.24,11.24,506.0,15.02,0.53,16.34,13.03,3.31,-0.63,3.65,15.03,15.1,506.0,15.55,1.19,17.72,11.65,6.06,-0.53,2.86,15.6,15.65,506.0,22.61,1.55,25.98,17.99,7.99,-0.18,2.3,22.67,22.68,506.0,26.19,2.24,30.39,19.37,11.02,-0.58,2.5,26.29,26.81,506.0,30.59,3.09,36.18,22.13,14.06,-0.49,2.23,30.75,31.15,506.0,31.07,3.13,38.39,21.85,16.54,-0.42,2.52,31.23,31.22,506.0,31.99,2.69,37.56,23.5,14.06,-0.76,3.11,32.1,32.56,506.0,30.6,1.96,35.08,22.68,12.4,-1.28,4.87,30.66,30.98,506.0,18.26,0.87,20.47,13.86,6.61,-0.64,3.94,18.28,18.41,506.0,15.43,0.52,17.17,13.86,3.31,-0.23,3.36,15.44,15.48,506.0,10.47,0.76,12.62,8.35,4.27,0.35,2.99,10.49,10.41,506.0
PT-10 = 8.41,1.65,11.65,2.56,9.09,-0.26,2.45,8.57,8.35,1011.0,13.31,1.17,17.99,8.9,9.09,-0.14,3.03,13.36,13.31,1011.0,12.44,1.72,16.61,5.04,11.57,-0.17,3.35,12.56,12.41,1011.0,21.02,1.62,25.71,17.17,8.54,0.67,2.72,21.08,20.68,1011.0,25.33,1.97,31.77,20.33,11.44,0.59,2.9,25.4,24.88,1011.0,30.08,4.38,42.52,22.26,20.26,0.57,2.22,30.4,28.88,1011.0,30.34,5.14,43.62,21.57,22.05,0.43,1.98,30.77,29.29,1011.0,31.75,4.54,42.93,23.5,19.43,0.31,1.94,32.08,31.08,1011.0,29.31,2.82,38.25,22.95,15.3,0.69,2.84,29.44,28.74,1011.0,16.63,1.68,22.4,12.2,10.2,0.55,3.24,16.72,16.61,1011.0,13.46,1.31,15.79,8.62,7.17,-0.3,2.27,13.52,13.31,1011.0,8.63,1.58,12.07,4.76,7.3,-0.43,2.56,8.77,8.62,1011.0
PT-11 = 7.23,1.54,12.76,1.46,11.3,-0.23,4.17,7.39,7.24,922.0,12.61,1.37,16.06,9.45,6.61,0.41,2.1,12.68,12.31,922.0,12.21,1.92,22.13,4.76,17.36,-0.35,4.05,12.36,12.62,922.0,19.92,1.39,24.88,16.34,8.54,0.23,2.95,19.97,19.85,922.0,24.99,1.75,29.02,19.09,9.92,-0.01,2.42,25.05,24.88,922.0,28.99,3.69,38.52,22.68,15.85,0.38,1.96,29.22,28.4,922.0,28.55,3.85,38.11,21.57,16.54,0.48,1.92,28.8,27.5,922.0,30.7,4.08,39.63,23.23,16.4,0.21,1.72,30.97,30.39,922.0,26.89,1.98,33.43,22.13,11.3,0.69,2.75,26.96,26.4,922.0,15.92,1.27,19.37,12.48,6.89,0.27,2.97,15.97,15.79,922.0,12.59,1.31,16.34,10.28,6.06,0.65,2.53,12.66,12.27,922.0,7.52,1.97,12.48,4.76,7.72,0.63,1.95,7.77,6.42,922.0
PT-14 = 11.55,0.79,13.58,7.52,6.06,-0.71,4.48,11.58,11.65,1105.0,14.89,0.7,16.89,12.48,4.41,-0.3,2.7,14.91,14.96,1105.0,16.88,1.18,19.65,11.93,7.72,-0.16,3.08,16.92,16.89,1105.0,24.48,1.77,29.57,20.75,8.82,0.45,2.43,24.54,24.19,1105.0,29.43,2.49,38.39,22.68,15.71,0.24,3.36,29.54,29.29,1105.0,37.23,3.15,44.72,25.71,19.02,-0.16,3.14,37.36,37.28,1105.0,37.43,2.91,42.8,26.26,16.54,-1.11,4.41,37.54,37.97,1105.0,38.24,2.73,43.07,26.67,16.4,-0.9,4.1,38.34,38.52,1105.0,33.9,2.41,38.11,24.88,13.23,-0.91,3.57,33.98,34.25,1105.0,19.86,1.13,22.95,16.34,6.61,0.09,2.6,19.89,19.85,1105.0,16.18,0.8,17.99,13.31,4.69,-0.16,2.6,16.2,16.06,1105.0,11.13,1.35,14.55,7.8,6.75,0.37,2.15,11.21,10.83,1105.0
PT-15 = 12.86,0.86,14.96,10.28,4.69,-0.59,2.91,12.89,13.03,202.0,15.87,0.76,17.72,13.44,4.27,-0.28,2.89,15.89,16.06,202.0,18.34,1.07,20.75,14.41,6.34,-0.64,3.63,18.37,18.41,202.0,24.89,2.16,29.02,19.37,9.65,-0.3,2.51,24.99,25.02,202.0,28.27,2.9,36.73,21.57,15.16,0.23,2.94,28.42,28.19,202.0,36.04,3.89,44.17,25.98,18.19,-0.45,2.89,36.24,36.66,202.0,34.02,4.1,41.69,23.37,18.33,-0.35,2.76,34.27,34.56,202.0,35.11,3.65,41.97,24.33,17.64,-0.63,3.24,35.3,35.66,202.0,29.97,2.49,35.91,23.23,12.68,-0.27,3.32,30.07,30.12,202.0,20.28,1.14,24.61,17.72,6.89,0.26,3.72,20.31,20.33,202.0,16.6,0.55,17.72,14.55,3.17,-0.77,3.59,16.61,16.61,202.0,13.77,0.87,15.51,11.38,4.13,-0.82,2.99,13.8,14.0,202.0
