# MWI.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 = MWI 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 = MWI
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

MW-C = 23.06,NaN,32.46,10.0,22.46,NaN,NaN,NaN,NaN,NaN,22.94,NaN,29.15,14.41,14.74,NaN,NaN,NaN,NaN,NaN,22.81,NaN,29.02,16.34,12.68,NaN,NaN,NaN,NaN,NaN,24.55,NaN,31.5,19.37,12.13,NaN,NaN,NaN,NaN,NaN,25.57,NaN,33.43,18.54,14.89,NaN,NaN,NaN,NaN,NaN,24.47,NaN,31.22,17.44,13.78,NaN,NaN,NaN,NaN,NaN,25.22,NaN,32.6,16.89,15.71,NaN,NaN,NaN,NaN,NaN,29.17,NaN,36.73,19.65,17.08,NaN,NaN,NaN,NaN,NaN,34.12,NaN,41.42,21.02,20.4,NaN,NaN,NaN,NaN,NaN,37.04,NaN,45.0,22.68,22.32,NaN,NaN,NaN,NaN,NaN,36.45,NaN,45.0,20.47,24.53,NaN,NaN,NaN,NaN,NaN,27.58,NaN,43.9,14.41,29.49,NaN,NaN,NaN,NaN,NaN
MW-N = 21.69,NaN,30.39,13.58,16.81,NaN,NaN,NaN,NaN,NaN,21.65,NaN,35.35,8.62,26.73,NaN,NaN,NaN,NaN,NaN,21.35,NaN,27.36,12.76,14.6,NaN,NaN,NaN,NaN,NaN,22.08,NaN,28.19,11.93,16.26,NaN,NaN,NaN,NaN,NaN,22.91,NaN,29.29,14.13,15.16,NaN,NaN,NaN,NaN,NaN,22.25,NaN,29.29,13.86,15.43,NaN,NaN,NaN,NaN,NaN,22.45,NaN,30.12,13.03,17.09,NaN,NaN,NaN,NaN,NaN,25.05,NaN,33.7,16.61,17.09,NaN,NaN,NaN,NaN,NaN,28.6,NaN,41.14,19.65,21.49,NaN,NaN,NaN,NaN,NaN,31.56,NaN,43.9,22.13,21.77,NaN,NaN,NaN,NaN,NaN,31.63,NaN,45.0,19.92,25.08,NaN,NaN,NaN,NaN,NaN,25.7,NaN,43.62,11.65,31.97,NaN,NaN,NaN,NaN,NaN
MW-S = 25.42,NaN,45.0,14.69,30.31,NaN,NaN,NaN,NaN,NaN,24.9,NaN,35.35,14.41,20.94,NaN,NaN,NaN,NaN,NaN,24.04,NaN,32.32,15.24,17.08,NaN,NaN,NaN,NaN,NaN,25.66,NaN,35.08,14.69,20.39,NaN,NaN,NaN,NaN,NaN,25.72,NaN,35.35,14.41,20.94,NaN,NaN,NaN,NaN,NaN,24.51,NaN,33.43,13.03,20.4,NaN,NaN,NaN,NaN,NaN,24.83,NaN,32.87,13.03,19.84,NaN,NaN,NaN,NaN,NaN,29.18,NaN,37.56,17.44,20.12,NaN,NaN,NaN,NaN,NaN,34.3,NaN,42.8,19.09,23.71,NaN,NaN,NaN,NaN,NaN,38.09,NaN,45.0,22.13,22.87,NaN,NaN,NaN,NaN,NaN,37.48,NaN,45.0,20.89,24.11,NaN,NaN,NaN,NaN,NaN,29.28,NaN,44.72,14.96,29.76,NaN,NaN,NaN,NaN,NaN
