# UKR.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 rainfall data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = UKR rainfall data for 2003 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=2003

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

# ISO3166-1 alpha3 code for the country
ISOKEY = UKR
ADMIN_LEVEL = 0
UNITS = MM
DATA_TYPE = rainfall

# 120 calculations comma-separated, 10 consecutive calculations for each month (from January to December)
# Field 1: Average
# 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: 2000.0
# Minimum: 1.0
# Data not available for locations above 35 degrees N and below 35 degrees S Latitude

UKR = 98.36,32.62,190.23,22.02,168.22,0.01,2.17,103.62,102.8,3505.0,51.48,11.42,92.28,2.13,90.15,0.44,2.88,52.73,49.75,3505.0,40.45,11.97,92.24,8.01,84.22,0.27,2.6,42.18,39.64,3505.0,32.1,10.2,104.06,1.0,103.06,0.23,5.15,33.68,32.63,3505.0,22.89,18.16,107.25,1.0,106.25,1.56,6.5,29.22,20.41,3505.0,54.2,28.89,158.74,1.0,157.74,1.26,4.22,61.42,45.41,3505.0,118.69,43.32,234.95,1.0,233.95,0.17,2.23,126.35,113.92,3505.0,51.42,26.08,179.1,8.65,170.44,1.1,4.29,57.65,45.2,3505.0,26.86,14.85,79.32,3.05,76.27,0.53,2.95,30.69,26.38,3505.0,83.26,33.4,168.61,17.03,151.58,0.0,2.02,89.71,84.26,3505.0,39.76,19.73,104.06,12.06,92.0,0.84,2.82,44.38,34.15,3505.0,44.03,17.25,121.0,17.03,103.97,1.14,3.88,47.29,39.64,3505.0
