# 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 combined 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=combined

# 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). Combined data from multiple years. Only Fields 1, 3, 4, and 5 are valid. All other Fields are NaN.
# 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 = 144.63,NaN,312.95,10.05,302.9,NaN,NaN,NaN,NaN,NaN,131.39,NaN,324.77,48.98,275.79,NaN,NaN,NaN,NaN,NaN,183.26,NaN,273.2,83.76,189.44,NaN,NaN,NaN,NaN,NaN,197.31,NaN,308.79,73.57,235.22,NaN,NaN,NaN,NaN,NaN,212.52,NaN,442.85,37.87,404.98,NaN,NaN,NaN,NaN,NaN,100.34,NaN,234.95,2.9,232.05,NaN,NaN,NaN,NaN,NaN,57.26,NaN,457.04,1.51,455.53,NaN,NaN,NaN,NaN,NaN,31.94,NaN,76.78,1.0,75.78,NaN,NaN,NaN,NaN,NaN,71.26,NaN,150.54,5.12,145.42,NaN,NaN,NaN,NaN,NaN,203.64,NaN,268.1,112.53,155.57,NaN,NaN,NaN,NaN,NaN,229.77,NaN,404.54,99.58,304.96,NaN,NaN,NaN,NaN,NaN,169.22,NaN,377.08,82.68,294.4,NaN,NaN,NaN,NaN,NaN
ST-S = 152.67,NaN,349.18,23.65,325.53,NaN,NaN,NaN,NaN,NaN,136.63,NaN,243.14,58.32,184.82,NaN,NaN,NaN,NaN,NaN,167.9,NaN,269.43,56.05,213.38,NaN,NaN,NaN,NaN,NaN,128.6,NaN,256.85,17.99,238.86,NaN,NaN,NaN,NaN,NaN,109.14,NaN,318.24,1.0,317.24,NaN,NaN,NaN,NaN,NaN,11.26,NaN,55.23,1.0,54.23,NaN,NaN,NaN,NaN,NaN,5.92,NaN,60.7,1.0,59.7,NaN,NaN,NaN,NaN,NaN,2.81,NaN,10.28,1.0,9.28,NaN,NaN,NaN,NaN,NaN,17.45,NaN,100.97,1.0,99.97,NaN,NaN,NaN,NaN,NaN,111.08,NaN,375.03,42.54,332.49,NaN,NaN,NaN,NaN,NaN,203.89,NaN,456.21,21.8,434.41,NaN,NaN,NaN,NaN,NaN,183.26,NaN,342.59,83.1,259.49,NaN,NaN,NaN,NaN,NaN
