# KWT.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 nighttemp data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = KWT nighttemp data for 2007 at admin level 0

# 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 = KWT
ADMIN_LEVEL = 0
UNITS = C
DATA_TYPE = nighttemp

# 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

KWT = 4.8,1.1,8.14,2.56,5.58,0.76,3.09,4.92,4.52,650.0,9.0,1.11,12.2,6.97,5.24,0.58,2.77,9.07,8.9,650.0,11.2,1.41,14.75,7.52,7.23,0.07,2.21,11.29,11.1,650.0,15.15,0.97,18.54,11.93,6.61,0.18,3.38,15.18,15.1,650.0,22.81,1.26,27.36,19.09,8.27,0.08,3.35,22.84,22.81,650.0,29.26,0.92,32.05,26.54,5.51,0.36,3.05,29.27,29.15,650.0,29.87,0.89,33.15,27.36,5.79,0.13,3.76,29.88,29.84,650.0,29.92,0.97,33.56,27.64,5.93,0.36,3.34,29.94,29.84,650.0,27.11,1.67,31.5,23.23,8.27,-0.13,2.5,27.16,27.36,650.0,21.2,1.09,25.23,18.82,6.41,0.61,3.74,21.23,21.16,650.0,12.34,1.84,18.61,7.24,11.37,0.28,3.19,12.47,12.41,650.0,5.59,2.05,11.93,0.63,11.3,0.33,3.08,5.95,5.59,650.0
