# NER.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 = NER nighttemp data for 2009 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=2009

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

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

NE-2 = 11.03,2.13,16.82,3.11,13.71,-0.19,2.34,11.23,11.1,4916.0,14.08,1.93,19.65,6.97,12.68,-0.47,2.41,14.21,14.62,4916.0,15.79,2.52,21.3,4.76,16.54,-0.31,2.31,15.99,16.06,4916.0,19.78,1.39,24.06,13.31,10.75,-0.29,3.17,19.83,19.89,4916.0,20.75,1.18,25.43,11.93,13.5,-0.37,4.32,20.79,20.75,4916.0,22.98,1.53,28.74,15.79,12.95,-0.67,3.83,23.03,23.23,4916.0,23.67,1.61,28.19,16.34,11.85,-0.59,3.96,23.73,23.78,4916.0,24.86,1.13,28.19,17.58,10.61,-0.6,4.57,24.88,24.88,4915.0,23.17,0.86,25.98,15.24,10.75,-0.72,6.19,23.19,23.23,4916.0,20.92,1.29,27.09,14.41,12.68,-0.01,4.05,20.96,20.89,4915.0,13.9,2.35,20.2,3.39,16.81,-0.21,2.51,14.1,13.86,4916.0,10.98,2.52,17.44,2.01,15.43,0.02,2.01,11.26,10.83,4916.0
NE-3 = 15.17,1.07,18.27,11.93,6.34,0.17,2.56,15.2,15.1,1021.0,17.38,1.25,22.4,12.76,9.65,-0.27,3.98,17.42,17.44,1021.0,19.71,0.94,23.5,16.34,7.17,-0.02,3.04,19.73,19.65,1021.0,22.06,1.05,25.16,19.09,6.06,0.01,3.07,22.08,22.13,1021.0,23.98,1.09,27.64,19.92,7.72,-0.42,3.91,24.01,24.06,1021.0,21.71,2.02,27.09,15.51,11.57,0.0,2.71,21.8,21.57,1016.0,21.92,0.97,24.61,16.89,7.72,-0.67,4.78,21.94,21.99,1021.0,21.93,2.01,26.81,7.52,19.29,-2.2,10.57,22.02,22.54,1014.0,22.84,0.84,25.98,18.82,7.17,-0.28,4.37,22.86,22.95,1021.0,24.1,0.83,27.09,20.75,6.34,-0.03,3.97,24.12,24.06,1021.0,18.83,0.73,21.57,16.34,5.24,-0.12,3.77,18.84,18.82,1021.0,16.75,1.31,20.47,13.58,6.89,0.24,2.38,16.81,16.55,1021.0
NE-4 = 13.45,0.86,16.34,10.0,6.34,0.4,3.52,13.47,13.31,1323.0,15.29,1.26,19.65,10.83,8.82,-0.19,3.08,15.34,15.37,1323.0,18.02,0.89,20.47,15.24,5.24,-0.19,2.92,18.04,17.99,1323.0,19.92,1.37,25.43,14.96,10.47,-0.23,3.65,19.96,20.06,1323.0,19.68,1.49,23.78,14.13,9.65,0.02,2.73,19.74,19.65,1323.0,20.95,1.23,25.16,16.06,9.09,-0.34,3.28,20.98,21.02,1323.0,21.23,1.16,24.88,15.24,9.65,-0.46,4.23,21.26,21.3,1322.0,21.53,0.98,24.61,14.41,10.2,-1.14,7.55,21.55,21.57,1323.0,22.89,0.97,25.71,18.54,7.17,0.14,2.86,22.91,22.75,1323.0,21.77,0.8,24.61,18.82,5.79,-0.24,3.59,21.78,21.85,1323.0,16.16,0.88,18.82,12.76,6.06,-0.29,3.24,16.18,16.2,1323.0,13.76,1.01,17.44,10.28,7.17,-0.2,3.13,13.8,13.79,1323.0
NE-5 = 13.55,1.6,18.54,8.07,10.47,-0.34,2.86,13.64,13.79,3601.0,17.14,1.53,21.85,9.17,12.68,-0.76,4.99,17.21,17.17,3601.0,18.6,1.4,23.5,13.58,9.92,-0.07,3.42,18.65,18.61,3601.0,21.02,1.73,25.98,14.96,11.02,-0.55,2.9,21.1,21.3,3601.0,22.54,1.22,26.54,17.17,9.37,-0.59,3.9,22.57,22.68,3601.0,22.95,1.33,28.19,17.44,10.75,-0.07,3.27,22.99,22.95,3600.0,22.32,1.4,28.74,15.79,12.95,-0.26,3.63,22.36,22.4,3601.0,22.77,1.27,26.81,17.44,9.37,-0.36,3.19,22.81,22.81,3600.0,24.31,1.09,27.91,19.92,7.99,-0.22,2.7,24.34,24.33,3601.0,23.23,1.13,26.81,18.13,8.68,-0.25,2.99,23.26,23.23,3601.0,17.2,1.7,21.85,10.28,11.57,-0.52,3.09,17.28,17.44,3601.0,14.55,1.98,19.37,7.52,11.85,-0.51,3.09,14.68,14.69,3601.0
NE-6 = 14.49,1.06,17.72,11.38,6.34,0.15,2.73,14.53,14.41,3094.0,18.36,1.53,24.06,11.65,12.4,-0.26,3.2,18.42,18.41,3093.0,19.75,1.15,24.33,16.06,8.27,0.38,3.29,19.78,19.65,3094.0,23.02,1.16,26.81,18.54,8.27,-0.02,2.68,23.05,22.95,3094.0,24.45,1.15,30.67,19.65,11.02,-0.03,3.6,24.47,24.47,3094.0,23.1,1.6,29.57,12.76,16.81,-0.52,4.73,23.16,23.23,3091.0,22.57,1.24,27.36,16.61,10.75,-0.38,3.83,22.61,22.68,3094.0,22.98,1.1,26.54,15.51,11.02,-0.73,5.11,23.0,23.09,3040.0,24.09,1.33,27.91,19.09,8.82,-0.12,2.73,24.13,24.19,3094.0,24.65,1.03,28.19,19.92,8.27,-0.37,3.97,24.67,24.71,3094.0,18.79,1.33,23.23,10.28,12.95,-0.69,6.47,18.83,18.82,3093.0,16.33,1.16,20.47,11.65,8.82,0.24,3.21,16.37,16.27,3094.0
NE-7 = 12.35,2.07,19.92,2.56,17.36,-0.79,3.35,12.52,12.76,4861.0,15.34,1.44,20.47,10.55,9.92,-0.36,2.99,15.41,15.51,4861.0,17.22,1.62,22.4,8.07,14.33,-1.1,5.61,17.3,17.44,4861.0,19.5,1.68,24.33,11.93,12.4,-0.38,3.51,19.57,19.65,4861.0,20.73,1.33,25.98,14.41,11.57,-0.06,3.39,20.78,20.75,4861.0,21.74,1.86,26.54,14.69,11.85,-0.22,2.71,21.82,21.78,4857.0,22.36,1.38,27.91,14.96,12.95,-0.31,3.97,22.4,22.4,4861.0,23.1,1.56,27.09,16.34,10.75,-0.12,2.53,23.16,23.09,4859.0,23.18,1.11,27.09,17.72,9.37,-0.39,3.47,23.21,23.23,4861.0,21.1,1.11,24.88,16.61,8.27,-0.08,2.89,21.13,21.09,4861.0,14.94,1.69,19.65,9.45,10.2,-0.74,3.12,15.04,15.24,4861.0,12.08,1.83,17.17,5.31,11.85,-0.52,2.85,12.22,12.41,4861.0
NE-9 = 8.53,2.47,16.34,1.18,15.16,0.26,2.75,8.88,8.35,21528.0,11.8,2.74,20.75,0.63,20.12,0.19,2.95,12.12,11.38,21525.0,14.28,2.65,24.61,5.87,18.74,0.27,2.85,14.52,13.86,21528.0,19.08,1.99,26.81,11.38,15.43,-0.05,3.55,19.19,19.09,21528.0,21.03,1.82,27.91,13.03,14.88,0.05,3.43,21.11,21.02,21527.0,22.99,1.53,28.46,15.79,12.68,-0.28,3.32,23.04,23.02,21528.0,24.27,1.83,31.22,14.41,16.81,-0.15,3.2,24.34,24.33,21526.0,24.43,1.5,30.67,17.17,13.5,-0.48,3.48,24.48,24.61,21528.0,24.26,1.29,29.29,19.09,10.2,0.04,3.44,24.3,24.33,21528.0,20.29,2.0,27.91,10.83,17.09,0.1,3.06,20.38,20.2,21527.0,12.55,2.38,21.3,2.56,18.74,-0.01,3.44,12.78,12.48,21528.0,9.0,2.89,19.65,0.35,19.29,0.63,3.14,9.45,8.42,21528.0
