# STP.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 = STP rainfall data for 2003 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=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 = STP
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

ST-P = 190.58,NaN,190.58,190.58,0.0,NaN,NaN,190.58,190.58,1.0,124.93,NaN,124.93,124.93,0.0,NaN,NaN,124.93,124.93,1.0,121.0,NaN,121.0,121.0,0.0,NaN,NaN,121.0,121.0,1.0,308.79,NaN,308.79,308.79,0.0,NaN,NaN,308.79,308.79,1.0,290.71,NaN,290.71,290.71,0.0,NaN,NaN,290.71,290.71,1.0,109.65,NaN,109.65,109.65,0.0,NaN,NaN,109.65,109.65,1.0,457.04,NaN,457.04,457.04,0.0,NaN,NaN,457.04,457.04,1.0,48.98,NaN,48.98,48.98,0.0,NaN,NaN,48.98,48.98,1.0,105.94,NaN,105.94,105.94,0.0,NaN,NaN,105.94,105.94,1.0,174.49,NaN,174.49,174.49,0.0,NaN,NaN,174.49,174.49,1.0,161.17,NaN,161.17,161.17,0.0,NaN,NaN,161.17,161.17,1.0,95.44,NaN,95.44,95.44,0.0,NaN,NaN,95.44,95.44,1.0
ST-S = 157.38,8.0,166.26,143.63,22.62,-0.72,2.55,157.54,158.3,6.0,154.64,11.47,168.61,141.26,27.35,0.36,1.56,155.0,151.36,6.0,95.63,32.32,137.92,56.05,81.87,0.15,1.52,100.08,90.8,6.0,143.36,14.76,159.38,124.76,34.61,-0.19,1.36,144.0,145.48,6.0,35.63,4.3,40.34,30.22,10.12,-0.15,1.3,35.85,36.31,6.0,36.76,7.74,47.22,26.54,20.69,-0.0,1.69,37.43,37.33,6.0,44.76,11.32,60.7,30.03,30.67,0.13,1.77,45.93,43.96,6.0,6.12,0.61,6.89,5.51,1.38,0.1,1.24,6.15,6.1,6.0,29.05,6.41,37.47,23.37,14.1,0.35,1.37,29.63,27.05,6.0,64.28,6.55,74.68,55.52,19.16,0.33,2.34,64.56,63.76,6.0,241.09,19.89,257.32,201.79,55.53,-1.53,3.78,241.77,247.71,6.0,108.22,17.3,130.89,83.1,47.8,-0.07,1.96,109.36,106.82,6.0
