# EGY.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 = EGY temperature data for 2008 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=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 = EGY
ADMIN_LEVEL = 1
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

EG-FRG = 18.58,3.39,29.84,10.28,19.57,0.85,3.2,18.88,17.72,30500.0,22.48,3.6,33.98,14.69,19.29,0.76,3.1,22.76,21.71,30501.0,32.35,3.83,44.17,21.85,22.32,0.6,2.84,32.58,31.63,30501.0,36.43,3.91,45.0,22.4,22.6,0.55,2.83,36.64,35.77,30501.0,40.19,3.17,45.0,25.71,19.29,-0.02,2.25,40.32,40.04,30501.0,43.72,1.65,45.0,28.74,16.26,-1.81,7.91,43.76,44.31,30501.0,44.09,1.44,45.0,30.39,14.61,-2.28,9.94,44.12,44.86,30501.0,44.4,1.16,45.0,30.94,14.06,-2.95,16.14,44.42,45.0,30501.0,41.38,2.41,45.0,29.29,15.71,-0.2,2.69,41.45,41.14,30501.0,35.4,3.72,45.0,26.26,18.74,0.72,3.02,35.6,34.6,30501.0,29.59,3.7,40.87,21.02,19.84,0.92,3.11,29.82,28.6,30501.0,23.68,3.88,35.91,14.41,21.5,0.72,2.98,24.0,22.95,30501.0
EG-LOE = 16.07,1.06,20.47,12.48,7.99,-0.03,4.79,16.11,16.06,1406.0,19.02,2.06,24.61,14.69,9.92,0.1,2.1,19.13,18.82,1406.0,25.88,3.44,32.87,20.2,12.68,0.17,1.61,26.11,24.88,1406.0,29.72,3.4,36.73,20.47,16.26,-0.06,2.03,29.92,28.91,1406.0,36.23,3.34,42.38,25.16,17.22,-0.53,3.38,36.39,35.63,1406.0,39.39,4.27,45.0,29.57,15.43,-0.18,1.86,39.62,38.94,1406.0,37.53,5.41,45.0,30.12,14.88,0.25,1.37,37.92,35.49,1406.0,36.97,5.62,45.0,29.29,15.71,0.34,1.41,37.39,34.39,1406.0,35.65,4.17,42.52,27.64,14.88,0.18,1.58,35.89,34.6,1406.0,29.47,2.5,35.35,22.68,12.68,-0.09,2.46,29.57,29.02,1406.0,25.75,1.92,30.67,20.75,9.92,-0.08,2.48,25.82,25.23,1406.0,21.19,1.57,25.16,16.48,8.68,-0.07,2.51,21.24,21.16,1406.0
EG-UPE = 18.13,2.57,29.29,12.07,17.22,1.56,5.42,18.31,17.44,3403.0,22.28,2.5,32.05,16.89,15.16,1.18,4.69,22.42,21.99,3403.0,30.72,3.05,43.35,20.75,22.6,0.76,5.05,30.88,30.39,3403.0,34.9,3.03,45.0,22.4,22.6,0.28,5.4,35.03,34.8,3403.0,38.93,2.85,45.0,25.43,19.57,-0.23,5.04,39.04,38.8,3403.0,43.22,2.26,45.0,28.19,16.81,-2.72,13.75,43.28,43.76,3403.0,43.4,2.27,45.0,29.57,15.43,-2.19,8.86,43.46,44.31,3403.0,43.61,2.46,45.0,29.84,15.16,-2.23,7.88,43.68,44.86,3403.0,40.26,2.59,45.0,27.36,17.64,-1.21,6.02,40.35,40.59,3403.0,33.92,2.8,45.0,26.26,18.74,1.48,5.82,34.04,33.43,3403.0,28.3,3.01,40.45,21.02,19.43,1.58,5.31,28.46,27.5,3403.0,23.04,2.97,35.35,16.89,18.46,1.34,4.86,23.23,22.47,3403.0
EG-URG = 16.18,1.65,20.2,10.55,9.65,-0.75,3.73,16.26,16.34,547.0,20.82,1.98,24.61,15.79,8.82,-0.65,2.43,20.91,21.3,547.0,29.97,2.59,34.53,21.44,13.09,-1.31,4.53,30.08,30.67,547.0,33.56,2.46,37.28,24.61,12.68,-1.45,5.43,33.65,33.98,547.0,38.73,2.27,42.52,29.57,12.95,-1.01,4.19,38.79,39.07,547.0,43.38,2.04,45.0,35.08,9.92,-1.64,5.77,43.43,44.17,547.0,43.52,2.35,45.0,33.98,11.02,-2.14,7.45,43.59,44.72,547.0,43.4,2.38,45.0,33.63,11.37,-2.1,7.46,43.47,44.45,547.0,40.02,2.41,44.72,31.5,13.23,-1.01,4.18,40.1,40.31,547.0,32.47,1.99,37.28,26.12,11.16,-0.82,3.88,32.53,32.87,547.0,27.34,1.74,31.22,22.68,8.54,-0.54,2.76,27.4,27.64,547.0,22.72,1.78,26.26,17.17,9.09,-0.77,3.11,22.79,23.23,547.0
