# JOR.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 = JOR temperature data for 2008 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=2008

# The data is derived from the following primary source
#SOURCE = http://neo.sci.gsfc.nasa.gov/

# ISO3166-1 alpha3 code for the country
ISOKEY = JOR
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

JO-AM = 10.99,1.72,18.68,7.8,10.89,1.62,7.39,11.13,10.69,387.0,15.85,1.62,19.23,12.76,6.48,0.11,1.95,15.93,15.79,387.0,28.17,1.96,32.05,21.85,10.2,-0.73,3.79,28.24,28.19,387.0,34.9,1.96,38.94,23.78,15.16,-2.27,11.87,34.96,35.08,387.0,39.89,2.26,43.07,28.74,14.33,-2.48,11.66,39.95,40.11,387.0,44.54,1.8,45.0,32.74,12.26,-4.85,26.93,44.58,45.0,387.0,44.62,1.41,45.0,35.35,9.65,-4.92,27.72,44.64,45.0,387.0,43.85,1.8,45.0,33.7,11.3,-3.37,16.32,43.89,44.31,387.0,41.16,1.98,43.9,31.5,12.4,-2.36,10.13,41.21,41.56,387.0,34.15,1.3,37.01,29.02,7.99,-1.4,6.26,34.17,34.32,387.0,26.5,1.33,29.02,21.57,7.44,-0.71,3.47,26.54,26.54,387.0,19.13,1.22,22.68,15.79,6.89,-0.25,3.05,19.17,19.09,387.0
JO-AT = 10.89,2.28,16.34,7.52,8.82,0.59,2.28,11.12,10.21,82.0,16.11,3.2,22.13,11.38,10.75,0.51,1.97,16.42,15.34,82.0,27.79,1.75,32.6,25.98,6.61,1.21,3.61,27.85,27.22,82.0,33.93,1.38,37.28,31.5,5.79,0.62,3.07,33.96,33.84,82.0,39.18,1.54,43.35,37.01,6.34,1.09,4.05,39.21,39.04,82.0,44.43,0.79,45.0,42.24,2.76,-1.26,3.39,44.44,44.86,82.0,44.5,0.66,45.0,42.8,2.2,-1.2,3.33,44.51,44.86,82.0,43.83,1.11,45.0,41.42,3.58,-0.62,2.1,43.85,44.04,82.0,40.25,1.38,42.38,37.28,5.1,-0.48,2.14,40.27,40.59,82.0,32.62,1.48,36.18,30.39,5.79,0.71,2.86,32.65,32.46,82.0,25.54,1.83,30.12,22.95,7.17,1.0,3.05,25.6,25.12,82.0,19.67,2.0,24.33,17.72,6.61,1.17,3.02,19.77,18.82,82.0
JO-AZ = 10.8,1.03,13.31,8.07,5.24,0.24,2.76,10.85,10.69,195.0,16.63,1.66,19.65,12.76,6.89,-0.61,2.82,16.71,16.89,195.0,28.21,1.65,31.5,22.26,9.23,-1.17,4.66,28.26,28.46,195.0,35.08,1.16,37.28,31.08,6.2,-0.59,3.9,35.09,35.08,195.0,40.27,1.19,43.07,36.59,6.48,0.11,3.41,40.29,40.11,195.0,44.95,0.24,45.0,42.8,2.2,-6.44,48.12,44.95,45.0,195.0,44.98,0.15,45.0,43.62,1.38,-7.2,56.7,44.98,45.0,195.0,44.19,0.77,45.0,41.28,3.72,-1.12,4.25,44.2,44.31,195.0,41.77,1.16,44.17,37.56,6.61,-1.0,4.18,41.79,41.97,195.0,34.25,1.07,36.73,31.36,5.37,0.14,2.63,34.27,34.11,195.0,27.01,1.26,29.84,22.95,6.89,-0.41,3.68,27.04,27.09,195.0,19.11,1.09,22.4,17.17,5.24,0.5,3.0,19.14,19.09,195.0
JO-BA = 13.25,2.37,17.58,8.9,8.68,-0.23,2.15,13.45,13.65,40.0,17.02,2.11,20.47,12.76,7.72,-0.45,2.23,17.15,17.41,40.0,26.27,2.94,32.05,21.3,10.75,-0.13,2.13,26.43,26.6,40.0,34.76,2.81,40.04,30.6,9.44,0.14,2.0,34.87,34.8,40.0,39.6,2.35,45.0,35.22,9.78,0.19,2.56,39.66,39.49,40.0,43.84,1.24,45.0,40.31,4.69,-0.82,2.73,43.86,44.38,40.0,44.24,0.93,45.0,41.76,3.24,-0.97,2.81,44.25,44.72,40.0,42.64,1.46,45.0,39.56,5.44,-0.05,2.23,42.67,42.8,40.0,39.67,2.04,43.9,36.73,7.17,0.34,2.04,39.73,39.56,40.0,34.44,2.42,40.04,30.81,9.23,0.27,2.29,34.52,34.42,40.0,26.66,2.23,30.67,21.99,8.68,-0.26,2.38,26.75,26.85,40.0,20.6,2.08,24.61,16.06,8.54,-0.28,2.58,20.7,20.82,40.0
JO-IR = 11.48,1.63,14.69,8.62,6.06,0.37,1.91,11.59,11.24,97.0,14.74,1.5,17.58,11.65,5.93,0.06,1.89,14.82,14.69,97.0,23.67,1.38,26.81,20.47,6.34,0.17,2.69,23.71,23.57,97.0,32.8,1.85,36.18,27.91,8.27,-0.24,2.43,32.86,32.87,97.0,38.72,1.67,41.69,33.7,7.99,-0.42,2.91,38.75,38.66,97.0,43.6,1.46,45.0,38.66,6.34,-1.24,3.97,43.63,44.04,97.0,43.74,1.16,45.0,40.04,4.96,-0.9,3.46,43.75,43.9,97.0,42.16,1.7,45.0,37.56,7.44,-0.14,2.67,42.19,41.97,97.0,38.86,1.58,41.69,34.53,7.17,-0.45,2.91,38.89,38.94,97.0,33.1,1.78,36.18,27.91,8.27,-0.64,2.93,33.15,33.29,97.0,25.43,1.5,28.19,21.85,6.34,-0.52,2.68,25.47,25.57,97.0,18.29,1.65,21.85,14.41,7.44,-0.25,2.74,18.36,18.27,97.0
JO-KA = 11.33,1.99,17.58,8.76,8.82,0.99,3.11,11.5,10.76,147.0,15.88,2.15,22.68,12.48,10.2,1.11,3.6,16.02,15.24,147.0,27.36,1.09,30.53,23.5,7.03,-0.26,5.28,27.38,27.22,147.0,33.76,1.29,37.28,27.64,9.65,-1.76,8.89,33.78,33.98,147.0,38.84,1.53,42.52,31.98,10.54,-1.69,8.84,38.87,38.94,147.0,44.17,1.59,45.0,36.04,8.96,-2.94,12.75,44.2,45.0,147.0,44.45,1.14,45.0,38.25,6.75,-3.28,15.22,44.46,45.0,147.0,43.46,1.58,45.0,36.46,8.54,-2.13,8.63,43.49,43.76,147.0,40.21,1.61,43.9,34.25,9.65,-0.93,4.73,40.24,40.45,147.0,33.0,1.09,35.63,30.39,5.24,-0.24,3.14,33.02,33.08,147.0,25.62,1.26,29.29,23.23,6.06,0.86,3.52,25.65,25.43,147.0,19.34,1.62,24.06,15.79,8.27,0.58,3.27,19.41,19.09,147.0
JO-MA = 9.72,1.05,12.48,7.24,5.24,0.13,1.93,9.77,9.66,1018.0,15.63,0.99,18.54,12.89,5.65,-0.14,2.65,15.66,15.65,1018.0,28.02,1.49,31.5,23.23,8.27,-0.46,3.06,28.06,27.91,1018.0,35.49,1.05,38.94,32.6,6.34,0.08,2.85,35.5,35.49,1018.0,41.74,1.21,45.0,38.8,6.2,0.45,2.71,41.76,41.49,1018.0,45.0,0.01,45.0,44.72,0.28,-13.48,45.66,45.0,45.0,1018.0,45.0,0.0,45.0,45.0,0.0,NaN,NaN,45.0,45.0,1018.0,44.91,0.27,45.0,42.8,2.2,-4.36,25.25,44.91,45.0,1018.0,42.87,0.94,45.0,39.35,5.65,-0.48,3.48,42.89,42.93,1018.0,34.26,1.17,37.28,30.67,6.61,-0.55,3.3,34.28,34.53,1018.0,25.12,1.43,28.74,22.13,6.61,0.38,2.35,25.16,25.05,1018.0,17.71,1.4,21.02,14.41,6.61,-0.01,1.9,17.77,17.85,1018.0
JO-MN = 12.56,1.75,18.96,8.62,10.33,0.56,3.15,12.68,12.48,1443.0,18.21,1.98,24.12,11.93,12.19,0.02,3.28,18.32,18.06,1443.0,29.45,1.43,34.25,25.43,8.82,0.12,2.89,29.49,29.29,1443.0,35.9,1.7,41.42,30.67,10.75,0.38,3.46,35.95,35.77,1443.0,40.3,1.73,45.0,35.35,9.65,0.14,3.25,40.33,40.31,1443.0,44.82,0.45,45.0,41.56,3.44,-3.4,15.95,44.83,45.0,1443.0,44.94,0.25,45.0,42.8,2.2,-5.72,39.77,44.94,45.0,1443.0,44.73,0.6,45.0,41.42,3.58,-2.84,11.36,44.74,45.0,1443.0,42.29,1.48,45.0,37.01,7.99,-0.51,3.28,42.32,42.52,1443.0,34.24,1.6,38.11,28.19,9.92,-0.59,3.85,34.28,34.39,1443.0,26.74,1.35,30.32,21.02,9.3,-0.37,3.26,26.77,26.81,1443.0,19.77,1.39,26.54,16.61,9.92,0.96,4.6,19.82,19.65,1443.0
