# UZB.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 = UZB nighttemp data for 2001 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=2001

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

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

UZB = -9.8,3.53,3.39,-25.0,28.39,0.06,2.87,10.42,-10.32,21108.0,-5.73,3.63,1.73,-23.62,25.35,-0.73,3.69,6.78,-5.43,21108.0,1.78,3.03,9.17,-18.66,27.83,-1.37,6.57,3.51,2.49,21108.0,8.27,2.72,15.51,-13.7,29.21,-2.01,11.8,8.71,8.69,21108.0,15.95,2.68,22.68,-5.16,27.83,-2.43,13.83,16.17,16.48,21108.0,17.85,2.45,24.61,-2.13,26.73,-2.16,12.42,18.01,18.13,21108.0,20.24,2.67,25.98,-0.47,26.46,-2.15,12.21,20.41,20.75,21108.0,18.5,2.45,25.71,-0.75,26.46,-1.72,11.07,18.66,18.68,21108.0,11.68,2.5,21.3,-6.26,27.56,-0.78,8.16,11.95,11.79,21108.0,4.46,2.94,16.34,-13.98,30.31,-0.56,6.42,5.34,4.28,21108.0,0.19,2.97,10.28,-17.56,27.83,-0.59,4.97,2.98,-0.06,21108.0,-6.33,3.6,5.31,-23.35,28.66,0.1,3.11,7.29,-6.95,21108.0
