# STP.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 = STP nighttemp 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 = STP
ADMIN_LEVEL = 2
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

ST-P-G010001 = 19.96,0.51,20.75,19.51,1.24,0.62,2.08,19.97,19.92,5.0,20.17,1.03,21.71,19.23,2.48,0.53,2.02,20.19,20.2,5.0,21.67,0.13,21.85,21.57,0.28,0.59,1.55,21.67,21.57,5.0,20.17,0.37,20.75,19.92,0.83,0.84,2.08,20.17,19.92,5.0,20.57,1.43,22.68,19.23,3.44,0.44,1.95,20.61,20.75,5.0,18.03,0.89,19.37,17.17,2.2,0.65,1.96,18.05,17.58,5.0,18.87,0.69,19.92,18.27,1.65,0.62,2.08,18.88,18.82,5.0,19.37,0.39,19.65,18.82,0.83,-0.59,1.56,19.37,19.65,5.0,18.31,1.01,19.65,17.3,2.34,0.13,1.58,18.33,18.47,5.0,19.85,0.58,20.2,18.82,1.38,-1.46,3.2,19.86,20.06,5.0,20.93,0.59,21.44,19.92,1.52,-1.18,2.88,20.93,21.02,5.0,20.0,1.26,21.85,18.82,3.03,0.42,1.92,20.04,20.2,5.0
ST-S-G020001 = 19.57,1.26,22.68,17.72,4.96,0.42,2.86,19.61,19.65,30.0,19.34,1.26,21.57,17.44,4.13,0.09,1.96,19.38,19.51,30.0,20.36,1.12,21.99,18.27,3.72,-0.24,1.79,20.39,20.64,30.0,19.66,0.69,21.3,18.54,2.76,0.65,2.87,19.67,19.58,30.0,20.11,0.95,21.85,18.27,3.58,0.07,2.38,20.13,20.16,30.0,18.01,0.61,19.37,17.17,2.2,0.43,2.24,18.02,17.92,30.0,17.56,0.88,19.65,16.2,3.44,0.57,2.53,17.58,17.3,30.0,16.07,1.19,18.82,14.41,4.41,0.76,2.45,16.11,15.72,30.0,16.85,0.92,19.09,15.51,3.58,0.77,2.77,16.88,16.61,30.0,17.1,1.07,19.23,14.69,4.55,0.14,2.72,17.13,16.82,30.0,18.68,0.9,20.47,17.17,3.31,0.29,2.34,18.7,18.61,30.0,18.84,1.09,21.02,16.61,4.41,0.19,2.4,18.87,18.68,30.0
