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

TM-CHA = 5.21,4.01,12.76,-13.15,25.91,-0.96,3.62,6.58,6.42,3995.0,12.12,3.01,21.3,-3.78,25.08,-1.19,4.69,12.48,12.82,3995.0,26.61,3.13,33.7,12.76,20.94,-0.23,2.82,26.79,26.54,3995.0,37.6,2.85,43.07,22.95,20.12,-0.68,4.42,37.71,37.28,3995.0,44.61,1.2,45.0,32.87,12.13,-4.67,30.6,44.62,45.0,3995.0,44.66,1.13,45.0,31.22,13.78,-4.66,31.41,44.68,45.0,3995.0,44.7,1.06,45.0,32.6,12.4,-4.8,31.27,44.72,45.0,3995.0,44.66,1.2,45.0,32.32,12.68,-4.64,28.06,44.68,45.0,3995.0,40.56,2.92,45.0,27.64,17.36,-0.55,3.37,40.66,40.25,3995.0,29.36,2.91,35.08,19.09,15.98,-0.5,2.6,29.5,29.84,3995.0,16.99,3.13,25.71,5.87,19.84,-0.03,2.98,17.27,17.03,3995.0,7.86,3.18,14.41,-5.71,20.12,-1.13,4.09,8.48,8.62,3995.0
TM-M = 7.94,2.43,14.13,-5.71,19.84,-0.84,4.49,8.3,8.21,3534.0,14.16,1.97,18.54,0.91,17.64,-0.78,4.88,14.29,14.41,3534.0,27.48,2.28,34.53,15.24,19.29,0.27,2.88,27.57,27.09,3534.0,38.71,3.27,45.0,25.71,19.29,-0.63,3.12,38.85,39.35,3534.0,44.58,1.4,45.0,33.7,11.3,-3.58,15.3,44.6,45.0,3534.0,44.72,1.04,45.0,36.18,8.82,-4.12,19.62,44.74,45.0,3534.0,44.85,0.64,45.0,38.66,6.34,-4.66,25.26,44.85,45.0,3534.0,44.76,0.91,45.0,38.11,6.89,-4.19,20.29,44.77,45.0,3534.0,42.9,2.57,45.0,31.5,13.5,-1.52,5.06,42.98,43.9,3534.0,32.71,2.22,36.46,21.85,14.61,-0.61,2.68,32.79,33.36,3534.0,21.52,3.02,27.91,13.03,14.88,-0.37,1.72,21.73,22.68,3534.0,10.22,1.53,15.24,1.18,14.06,-0.66,4.95,10.33,10.28,3534.0
TM-TAS = 2.05,3.58,10.55,-9.02,19.57,-0.26,2.08,4.13,2.7,3130.0,10.05,4.37,17.99,-1.02,19.02,-0.77,2.43,10.96,11.65,3130.0,23.01,4.24,30.67,3.52,27.15,-2.43,10.9,23.39,23.78,3130.0,31.53,4.31,36.18,8.9,27.28,-3.65,17.6,31.82,32.46,3130.0,42.88,4.58,45.0,18.54,26.46,-3.93,19.12,43.13,44.45,3130.0,43.55,4.25,45.0,20.06,24.94,-4.19,20.91,43.76,45.0,3130.0,43.88,3.59,45.0,24.33,20.67,-4.22,21.13,44.02,45.0,3130.0,43.68,3.68,45.0,24.88,20.12,-3.61,16.58,43.84,45.0,3130.0,36.47,3.57,40.59,19.92,20.67,-2.92,12.49,36.64,37.56,3130.0,22.9,2.56,29.84,13.86,15.98,-0.51,4.2,23.05,22.88,3130.0,12.01,2.17,17.99,5.59,12.4,0.18,2.65,12.21,11.79,3130.0,2.75,2.48,10.41,-6.81,17.22,0.33,3.08,3.7,2.7,3130.0
TM-TT = 7.29,2.77,16.06,-4.88,20.94,-0.2,3.06,7.79,7.52,9796.0,14.54,4.97,25.43,-3.5,28.94,-1.37,4.47,15.37,15.79,9796.0,23.24,5.64,32.32,5.87,26.46,-1.92,5.84,23.91,25.02,9796.0,31.95,6.44,41.83,10.0,31.83,-1.95,6.02,32.59,34.11,9796.0,40.76,6.95,45.0,13.03,31.97,-2.09,6.29,41.35,43.76,9796.0,41.93,6.29,45.0,15.51,29.49,-2.4,7.42,42.4,44.86,9796.0,42.7,5.35,45.0,20.2,24.8,-2.46,7.58,43.04,45.0,9796.0,42.28,5.37,45.0,20.75,24.25,-2.34,7.2,42.62,45.0,9796.0,36.64,5.85,45.0,16.61,28.39,-1.74,5.43,37.1,38.39,9796.0,26.24,4.78,35.91,13.03,22.87,-1.13,3.67,26.68,27.5,9796.0,15.78,3.75,27.36,4.21,23.15,-0.38,2.26,16.21,16.61,9796.0,7.52,3.16,15.79,-1.3,17.09,-0.34,2.54,8.16,8.07,9796.0
