# PRT.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 = PRT rainfall data for 2005 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=2005

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

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

PT-01 = 2.88,3.2,15.1,1.0,14.1,1.78,5.39,4.29,1.0,75.0,17.81,4.94,33.08,9.32,23.76,0.67,3.64,18.47,17.3,75.0,47.02,10.38,74.68,32.11,42.57,0.57,2.45,48.13,45.34,75.0,23.59,4.41,30.22,14.47,15.74,-0.41,2.17,23.99,24.21,75.0,27.14,7.67,46.11,12.6,33.51,0.62,2.87,28.19,25.99,75.0,1.05,0.16,2.0,1.0,1.0,3.9,19.72,1.07,1.0,75.0,4.43,1.23,7.26,2.21,5.05,-0.03,2.25,4.59,4.64,75.0,2.96,0.77,4.46,1.77,2.69,0.15,1.7,3.05,2.85,75.0,7.11,2.75,16.18,3.26,12.92,1.43,5.47,7.62,6.49,75.0,125.1,25.37,191.62,86.84,104.78,0.74,2.79,127.61,119.31,75.0,115.56,14.0,145.01,76.97,68.04,-0.78,3.18,116.39,119.86,75.0,49.67,7.27,75.22,41.48,33.75,1.61,5.14,50.19,47.5,75.0
PT-10 = 5.86,5.4,27.6,1.0,26.6,1.78,6.2,7.96,4.26,159.0,32.79,12.1,64.23,10.46,53.76,0.17,2.21,34.94,32.67,159.0,80.31,15.28,124.71,51.37,73.34,0.05,2.42,81.74,81.64,159.0,52.74,17.06,91.36,26.38,64.98,0.32,1.95,55.42,49.84,159.0,28.59,5.33,40.85,14.63,26.22,0.05,2.56,29.08,28.45,159.0,3.26,3.5,26.78,1.0,25.78,3.97,22.44,4.77,2.59,159.0,12.9,17.5,128.53,4.38,124.14,4.31,22.88,21.69,8.16,159.0,7.05,10.75,72.46,2.55,69.91,4.05,20.01,12.83,3.77,159.0,30.48,32.76,221.2,7.73,213.47,3.58,16.91,44.67,22.35,159.0,191.66,52.15,347.75,102.52,245.23,0.3,2.78,198.58,196.15,159.0,127.89,27.21,179.1,74.68,104.42,-0.2,2.02,130.74,130.55,159.0,102.21,28.85,163.6,49.71,113.89,0.1,2.01,106.18,101.38,159.0
PT-11 = 17.2,13.29,64.23,6.03,58.19,1.62,4.8,21.71,11.17,149.0,29.23,8.89,52.0,14.21,37.79,0.28,2.27,30.54,28.45,149.0,80.42,20.94,132.46,38.9,93.56,0.36,2.56,83.08,79.32,149.0,58.98,8.88,88.97,37.32,51.65,0.67,3.68,59.64,57.45,149.0,35.34,8.73,64.23,19.81,44.42,1.25,4.2,36.39,33.08,149.0,12.14,5.98,40.85,5.59,35.27,2.36,10.13,13.52,9.9,149.0,14.15,9.62,63.34,4.25,59.09,2.2,9.74,17.09,11.17,149.0,6.2,5.15,31.65,2.79,28.86,3.08,12.69,8.05,4.73,149.0,31.0,14.13,84.26,13.6,70.65,2.26,7.58,34.05,26.78,149.0,204.02,26.42,265.08,121.0,144.08,-0.31,3.52,205.71,207.39,149.0,86.09,17.76,145.6,50.46,95.15,0.69,4.01,87.89,85.55,149.0,102.03,20.22,140.7,46.09,94.61,-0.41,2.8,104.0,103.93,149.0
PT-14 = 1.31,0.78,6.3,1.0,5.3,3.15,14.63,1.53,1.0,180.0,21.22,6.17,38.46,12.79,25.67,0.69,2.66,22.1,20.19,180.0,33.36,7.95,53.69,19.57,34.12,0.49,2.31,34.29,31.88,180.0,14.84,11.25,52.85,1.31,51.54,0.97,3.04,18.6,11.35,180.0,40.06,9.25,62.32,23.03,39.29,-0.02,1.77,41.11,41.03,180.0,1.01,0.09,1.77,1.0,0.77,7.1,55.36,1.02,1.0,180.0,2.3,1.41,9.61,1.0,8.61,2.55,12.01,2.7,2.12,180.0,1.54,0.88,5.93,1.0,4.93,2.41,9.45,1.77,1.09,180.0,3.53,3.8,22.69,1.0,21.69,2.84,11.86,5.18,2.37,180.0,111.8,25.99,202.43,74.68,127.75,1.31,4.22,114.77,105.66,180.0,102.98,25.24,158.74,47.5,111.24,0.07,2.53,106.01,103.76,180.0,47.56,8.18,76.24,34.17,42.06,1.04,3.45,48.25,44.62,180.0
PT-15 = 1.07,0.23,2.32,1.0,1.32,4.38,22.86,1.09,1.0,40.0,16.75,6.34,31.84,5.6,26.24,0.49,2.51,17.88,16.25,40.0,18.09,4.43,31.46,12.22,19.24,1.21,4.26,18.62,16.87,40.0,2.77,1.32,5.89,1.0,4.89,0.24,2.13,3.06,2.93,40.0,21.1,4.39,32.59,15.32,17.26,0.53,2.56,21.54,20.42,40.0,1.03,0.07,1.31,1.0,0.31,2.65,9.82,1.03,1.0,40.0,3.5,0.34,4.13,2.75,1.37,-0.11,2.49,3.52,3.48,40.0,1.0,0.0,1.0,1.0,0.0,NaN,NaN,1.0,1.0,40.0,3.2,2.87,11.51,1.0,10.51,1.43,4.33,4.28,1.75,40.0,89.18,9.59,113.97,72.49,41.48,0.6,3.02,89.69,88.17,40.0,107.8,16.19,149.72,84.72,65.0,0.86,3.11,108.98,105.19,40.0,35.99,3.85,45.23,27.65,17.58,0.32,3.25,36.19,35.13,40.0
