# SYC.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 = SYC temperature data for 2008 at admin level 2

# 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 = SYC
ADMIN_LEVEL = 2
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

SC-M-G010001 = 23.77,0.68,24.47,22.68,1.79,-0.83,2.45,23.78,23.96,5.0,24.68,0.26,25.02,24.33,0.69,0.03,2.02,24.68,24.61,5.0,24.35,0.49,24.79,23.5,1.29,-1.22,2.96,24.36,24.47,5.0,25.11,0.88,25.92,23.78,2.14,-0.59,1.98,25.12,25.25,5.0,24.38,0.47,25.16,24.06,1.1,1.08,2.57,24.38,24.15,5.0,22.1,0.63,22.68,21.02,1.65,-1.11,2.81,22.11,22.26,5.0,19.99,0.4,20.47,19.37,1.1,-0.53,2.43,19.99,20.06,5.0,21.36,0.56,21.99,20.75,1.24,0.23,1.3,21.36,21.12,5.0,24.02,0.36,24.61,23.64,0.96,0.82,2.54,24.03,23.96,5.0,24.4,0.57,24.88,23.5,1.38,-0.73,2.21,24.4,24.47,5.0,24.77,0.44,25.23,24.06,1.17,-0.8,2.49,24.77,24.79,5.0,25.02,0.53,25.85,24.61,1.24,0.82,2.14,25.02,24.79,5.0
SC-P-G020001 = 25.09,0.29,25.3,24.88,0.41,0.0,1.0,25.09,25.09,2.0,23.16,0.1,23.23,23.09,0.14,-0.0,1.0,23.16,23.16,2.0,25.3,0.19,25.43,25.16,0.28,0.0,1.0,25.3,25.3,2.0,25.98,0.78,26.54,25.43,1.1,0.0,1.0,25.99,25.98,2.0,24.4,0.49,24.74,24.06,0.69,-0.0,1.0,24.4,24.4,2.0,22.88,0.1,22.95,22.81,0.14,-0.0,1.0,22.88,22.88,2.0,20.27,0.88,20.89,19.65,1.24,0.0,1.0,20.28,20.27,2.0,23.64,0.19,23.78,23.5,0.28,-0.0,1.0,23.64,23.64,2.0,25.16,0.0,25.16,25.16,0.0,NaN,NaN,25.16,25.16,2.0,24.47,0.19,24.61,24.33,0.28,0.0,1.0,24.47,24.47,2.0,25.16,0.39,25.43,24.88,0.55,0.0,1.0,25.16,25.16,2.0,24.06,0.39,24.33,23.78,0.55,0.0,1.0,24.06,24.06,2.0
