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

SUR = 71.79,33.0,179.1,25.21,153.88,0.81,2.74,79.0,62.46,767.0,79.27,69.53,265.08,1.0,264.08,1.0,2.76,105.41,48.11,767.0,60.1,36.11,242.15,11.87,230.28,1.44,6.47,70.1,53.09,767.0,246.93,79.82,429.5,57.28,372.22,-0.12,2.27,259.49,249.56,767.0,369.11,86.68,675.23,202.06,473.17,0.84,3.19,379.14,353.4,767.0,302.92,48.79,496.48,179.1,317.38,0.28,2.82,306.82,299.07,767.0,230.35,43.92,429.5,121.88,307.62,0.58,4.11,234.49,228.07,767.0,127.99,41.82,265.08,42.05,223.03,0.7,3.01,134.64,119.84,767.0,75.79,33.3,184.58,14.21,170.36,0.24,2.96,82.77,76.97,767.0,58.41,26.96,158.74,14.65,144.09,1.01,3.71,64.32,52.0,767.0,103.54,29.98,221.2,46.84,174.36,0.82,3.35,107.79,97.04,767.0,108.9,55.49,290.18,7.32,282.86,0.13,2.28,122.2,108.79,767.0
