# YEM.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 = YEM temperature data for combined 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=combined

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

# ISO3166-1 alpha3 code for the country
ISOKEY = YEM
ADMIN_LEVEL = 1
UNITS = C
DATA_TYPE = temperature

# 120 calculations comma-separated, 10 consecutive calculations for each month (from January to December). Combined data from multiple years. Only Fields 1, 3, 4, and 5 are valid. All other Fields are NaN.
# 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

YE-N = 31.34,NaN,42.8,20.75,22.05,NaN,NaN,NaN,NaN,NaN,34.36,NaN,44.17,22.13,22.04,NaN,NaN,NaN,NaN,NaN,37.31,NaN,45.0,20.75,24.25,NaN,NaN,NaN,NaN,NaN,39.0,NaN,45.0,23.5,21.5,NaN,NaN,NaN,NaN,NaN,39.83,NaN,45.0,24.88,20.12,NaN,NaN,NaN,NaN,NaN,38.89,NaN,45.0,23.23,21.77,NaN,NaN,NaN,NaN,NaN,35.64,NaN,45.0,19.37,25.63,NaN,NaN,NaN,NaN,NaN,36.16,NaN,45.0,19.92,25.08,NaN,NaN,NaN,NaN,NaN,38.65,NaN,45.0,22.95,22.05,NaN,NaN,NaN,NaN,NaN,38.5,NaN,45.0,22.68,22.32,NaN,NaN,NaN,NaN,NaN,35.88,NaN,45.0,23.23,21.77,NaN,NaN,NaN,NaN,NaN,32.46,NaN,45.0,19.37,25.63,NaN,NaN,NaN,NaN,NaN
YE-S = 29.77,NaN,39.21,18.27,20.94,NaN,NaN,NaN,NaN,NaN,33.42,NaN,43.9,22.68,21.22,NaN,NaN,NaN,NaN,NaN,37.6,NaN,45.0,24.88,20.12,NaN,NaN,NaN,NaN,NaN,41.21,NaN,45.0,28.19,16.81,NaN,NaN,NaN,NaN,NaN,42.56,NaN,45.0,24.33,20.67,NaN,NaN,NaN,NaN,NaN,41.35,NaN,45.0,21.57,23.43,NaN,NaN,NaN,NaN,NaN,39.4,NaN,45.0,20.2,24.8,NaN,NaN,NaN,NaN,NaN,39.9,NaN,45.0,20.61,24.39,NaN,NaN,NaN,NaN,NaN,41.6,NaN,45.0,20.47,24.53,NaN,NaN,NaN,NaN,NaN,40.35,NaN,45.0,25.71,19.29,NaN,NaN,NaN,NaN,NaN,36.04,NaN,45.0,24.33,20.67,NaN,NaN,NaN,NaN,NaN,31.53,NaN,41.69,21.3,20.39,NaN,NaN,NaN,NaN,NaN
