# NPL.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 = NPL rainfall data for 2008 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=2008

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

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

NP-C = 16.17,11.38,58.78,3.15,55.63,1.26,4.29,19.75,12.25,157.0,5.22,6.03,30.22,1.0,29.22,2.31,7.92,7.96,2.83,157.0,4.89,2.72,17.03,1.0,16.03,1.19,5.25,5.59,4.38,157.0,27.38,13.48,62.32,3.15,59.17,0.31,2.15,30.5,26.2,157.0,93.77,18.91,140.7,45.82,94.88,-0.08,2.73,95.65,92.24,157.0,378.13,70.86,558.12,170.06,388.06,-0.01,2.79,384.67,370.62,157.0,377.21,81.07,514.94,184.57,330.37,-0.47,2.31,385.76,386.55,157.0,364.36,52.44,477.38,204.75,272.63,-0.59,3.41,368.09,369.8,157.0,224.9,48.95,327.39,105.08,222.31,-0.3,2.54,230.13,227.97,157.0,29.23,11.18,70.31,9.09,61.22,1.01,4.76,31.28,27.94,157.0,1.04,0.12,1.77,1.0,0.77,3.43,15.6,1.05,1.0,157.0,1.0,0.01,1.12,1.0,0.12,8.35,76.77,1.0,1.0,157.0
NP-E = 32.13,13.47,74.68,8.01,66.67,0.87,3.45,34.83,28.88,165.0,2.83,1.72,9.32,1.0,8.32,1.24,4.36,3.31,2.45,165.0,17.83,11.77,48.96,1.88,47.07,0.27,1.93,21.34,18.09,165.0,24.93,7.77,53.59,8.77,44.82,0.73,3.25,26.1,23.0,165.0,110.17,24.34,179.1,60.47,118.63,0.65,3.16,112.81,105.6,165.0,283.8,81.46,484.58,97.97,386.6,-0.08,2.72,295.19,286.65,165.0,279.56,102.8,499.41,89.5,409.92,0.44,1.98,297.75,249.22,165.0,313.06,122.11,655.17,113.91,541.26,1.1,3.65,335.89,282.81,165.0,125.96,42.95,208.25,30.57,177.68,-0.21,1.93,133.03,132.46,165.0,42.27,25.75,132.46,8.77,123.69,1.36,4.78,49.45,34.09,165.0,1.07,0.31,3.05,1.0,2.05,4.61,24.43,1.12,1.0,165.0,1.27,0.33,2.26,1.0,1.26,1.09,3.18,1.31,1.13,165.0
NP-FAW = 5.81,5.01,27.6,1.0,26.6,1.91,7.34,7.65,4.33,117.0,9.22,6.98,32.09,1.03,31.06,1.54,4.91,11.54,6.63,117.0,7.54,2.55,12.6,2.75,9.85,-0.29,2.2,7.96,8.02,117.0,33.94,8.35,56.93,11.56,45.37,-0.26,3.66,34.95,34.44,117.0,92.8,22.86,158.74,46.28,112.46,0.47,3.09,95.55,91.03,117.0,509.39,179.24,940.91,179.1,761.81,0.1,2.11,539.75,482.81,117.0,467.49,72.04,580.71,242.15,338.56,-1.16,4.14,472.96,484.58,117.0,461.69,85.62,655.17,179.1,476.08,-0.6,4.45,469.49,463.61,117.0,435.77,144.6,785.15,227.97,557.18,0.61,2.43,458.94,405.55,117.0,32.96,19.32,89.5,5.25,84.24,0.71,2.63,38.16,26.78,117.0,1.17,0.42,3.15,1.0,2.15,2.9,10.98,1.24,1.0,117.0,1.23,0.61,4.52,1.0,3.52,3.12,12.87,1.37,1.0,117.0
NP-MID = 11.06,8.02,40.85,1.2,39.65,1.19,4.02,13.65,9.13,256.0,9.39,7.83,40.85,1.03,39.82,1.34,4.42,12.22,7.04,256.0,3.98,3.03,20.41,1.0,19.41,1.81,7.62,5.0,3.09,256.0,24.12,13.65,66.19,2.33,63.87,1.0,3.69,27.71,20.4,256.0,61.48,20.65,121.0,17.92,103.08,0.23,2.42,64.84,60.46,256.0,385.52,216.47,885.83,50.46,835.37,0.28,1.98,441.93,378.88,256.0,390.9,127.84,598.49,128.53,469.96,-0.43,1.84,411.2,427.2,256.0,350.67,129.3,530.47,62.32,468.15,-0.66,2.15,373.66,392.52,256.0,311.43,163.58,695.91,55.23,640.68,0.48,2.32,351.63,295.42,256.0,29.06,23.15,173.77,1.0,172.77,2.27,11.5,37.13,22.71,256.0,1.29,0.63,4.66,1.0,3.66,3.18,14.23,1.43,1.0,256.0,1.21,0.58,5.93,1.0,4.93,4.19,24.96,1.35,1.0,256.0
NP-W = 12.3,7.76,44.72,1.94,42.78,1.31,4.83,14.53,9.58,172.0,5.1,3.09,16.04,1.09,14.94,1.01,3.85,5.96,4.23,172.0,3.68,2.16,9.6,1.0,8.6,0.43,2.19,4.26,3.53,172.0,20.21,9.02,47.5,2.69,44.81,0.42,3.0,22.12,18.77,172.0,101.14,44.53,249.56,20.01,229.55,0.58,3.17,110.45,100.19,172.0,471.58,143.87,739.18,126.76,612.43,-0.94,3.04,492.92,503.96,172.0,428.99,104.16,563.45,141.26,422.19,-0.96,3.25,441.38,453.45,172.0,416.59,98.45,514.71,100.84,413.87,-1.7,4.87,428.0,456.21,172.0,224.28,80.83,456.21,67.81,388.39,0.08,2.15,238.32,228.44,172.0,39.64,13.06,81.75,1.0,80.75,0.19,3.83,41.72,38.47,172.0,1.29,0.54,3.66,1.0,2.66,2.16,7.09,1.4,1.0,172.0,1.12,0.25,2.19,1.0,1.19,2.25,7.52,1.15,1.0,172.0
