# NAM.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 = NAM temperature data for 2010 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=2010

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

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

NAM = 35.02,6.49,45.0,22.4,22.6,0.01,1.61,35.61,35.22,28778.0,37.3,5.2,45.0,24.61,20.39,-0.14,1.64,37.66,37.97,28778.0,34.39,5.91,45.0,21.02,23.98,-0.01,1.57,34.9,34.8,28778.0,31.3,4.61,43.35,20.47,22.87,0.13,1.9,31.64,31.43,28778.0,28.47,3.14,41.42,20.47,20.94,0.76,3.38,28.64,27.91,28778.0,25.21,3.16,37.28,15.79,21.5,0.4,3.42,25.4,24.88,28778.0,25.24,2.68,35.08,16.61,18.46,0.24,3.05,25.39,25.02,28778.0,30.53,2.32,38.11,19.65,18.46,-0.36,3.52,30.62,30.67,28778.0,36.35,2.86,43.35,20.75,22.6,-1.42,6.1,36.47,36.87,28778.0,42.39,3.07,45.0,22.68,22.32,-1.99,8.07,42.51,43.35,28778.0,42.54,2.83,45.0,25.16,19.84,-1.31,4.8,42.64,43.48,28778.0,40.7,4.97,45.0,24.61,20.39,-0.84,2.29,41.0,43.21,28778.0
