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

AU-CT = 46.47,NaN,95.23,6.52,88.71,NaN,NaN,NaN,NaN,NaN,89.95,NaN,193.5,11.51,181.99,NaN,NaN,NaN,NaN,NaN,44.18,NaN,79.99,4.63,75.36,NaN,NaN,NaN,NaN,NaN,31.68,NaN,95.06,6.49,88.57,NaN,NaN,NaN,NaN,NaN,27.52,NaN,76.72,2.63,74.09,NaN,NaN,NaN,NaN,NaN,65.5,NaN,129.05,20.32,108.73,NaN,NaN,NaN,NaN,NaN,46.74,NaN,108.14,14.21,93.93,NaN,NaN,NaN,NaN,NaN,60.04,NaN,148.03,10.59,137.44,NaN,NaN,NaN,NaN,NaN,55.11,NaN,101.41,9.6,91.81,NaN,NaN,NaN,NaN,NaN,60.1,NaN,147.83,5.67,142.16,NaN,NaN,NaN,NaN,NaN,81.94,NaN,168.88,13.41,155.47,NaN,NaN,NaN,NaN,NaN,73.74,NaN,163.6,17.83,145.77,NaN,NaN,NaN,NaN,NaN
AU-NS = 45.98,NaN,404.36,1.0,403.36,NaN,NaN,NaN,NaN,NaN,71.28,NaN,499.41,1.0,498.41,NaN,NaN,NaN,NaN,NaN,44.23,NaN,675.23,1.0,674.23,NaN,NaN,NaN,NaN,NaN,28.79,NaN,347.75,1.0,346.75,NaN,NaN,NaN,NaN,NaN,27.31,NaN,327.39,1.0,326.39,NaN,NaN,NaN,NaN,NaN,42.29,NaN,392.34,1.0,391.34,NaN,NaN,NaN,NaN,NaN,31.5,NaN,358.4,1.0,357.4,NaN,NaN,NaN,NaN,NaN,30.68,NaN,281.56,1.0,280.56,NaN,NaN,NaN,NaN,NaN,32.36,NaN,392.34,1.0,391.34,NaN,NaN,NaN,NaN,NaN,45.95,NaN,410.92,1.0,409.92,NaN,NaN,NaN,NaN,NaN,64.35,NaN,308.23,1.0,307.23,NaN,NaN,NaN,NaN,NaN,60.32,NaN,530.47,1.0,529.47,NaN,NaN,NaN,NaN,NaN
AU-NT = 152.81,NaN,1094.07,1.0,1093.07,NaN,NaN,NaN,NaN,NaN,162.01,NaN,916.69,1.0,915.69,NaN,NaN,NaN,NaN,NaN,99.23,NaN,761.82,1.0,760.82,NaN,NaN,NaN,NaN,NaN,31.22,NaN,616.82,1.0,615.82,NaN,NaN,NaN,NaN,NaN,13.41,NaN,446.65,1.0,445.65,NaN,NaN,NaN,NaN,NaN,9.86,NaN,196.06,1.0,195.06,NaN,NaN,NaN,NaN,NaN,9.02,NaN,196.06,1.0,195.06,NaN,NaN,NaN,NaN,NaN,3.8,NaN,122.79,1.0,121.79,NaN,NaN,NaN,NaN,NaN,8.17,NaN,173.77,1.0,172.77,NaN,NaN,NaN,NaN,NaN,28.11,NaN,369.38,1.0,368.38,NaN,NaN,NaN,NaN,NaN,54.25,NaN,380.69,1.0,379.69,NaN,NaN,NaN,NaN,NaN,118.09,NaN,616.82,1.0,615.82,NaN,NaN,NaN,NaN,NaN
AU-QL = 140.84,NaN,1073.65,1.0,1072.65,NaN,NaN,NaN,NaN,NaN,140.38,NaN,1061.56,1.0,1060.56,NaN,NaN,NaN,NaN,NaN,76.4,NaN,912.95,1.0,911.95,NaN,NaN,NaN,NaN,NaN,37.76,NaN,809.19,1.0,808.19,NaN,NaN,NaN,NaN,NaN,18.51,NaN,265.08,1.0,264.08,NaN,NaN,NaN,NaN,NaN,24.68,NaN,257.2,1.0,256.2,NaN,NaN,NaN,NaN,NaN,13.42,NaN,168.61,1.0,167.61,NaN,NaN,NaN,NaN,NaN,13.93,NaN,299.07,1.0,298.07,NaN,NaN,NaN,NaN,NaN,16.29,NaN,265.08,1.0,264.08,NaN,NaN,NaN,NaN,NaN,28.0,NaN,1094.07,1.0,1093.07,NaN,NaN,NaN,NaN,NaN,53.12,NaN,616.82,1.0,615.82,NaN,NaN,NaN,NaN,NaN,95.3,NaN,1094.07,1.0,1093.07,NaN,NaN,NaN,NaN,NaN
AU-SA = 17.02,NaN,635.71,1.0,634.71,NaN,NaN,NaN,NaN,NaN,23.03,NaN,227.97,1.0,226.97,NaN,NaN,NaN,NaN,NaN,17.38,NaN,227.97,1.0,226.97,NaN,NaN,NaN,NaN,NaN,17.48,NaN,154.02,1.0,153.02,NaN,NaN,NaN,NaN,NaN,19.58,NaN,179.1,1.0,178.1,NaN,NaN,NaN,NaN,NaN,26.17,NaN,214.62,1.0,213.62,NaN,NaN,NaN,NaN,NaN,22.26,NaN,273.2,1.0,272.2,NaN,NaN,NaN,NaN,NaN,21.6,NaN,273.2,1.0,272.2,NaN,NaN,NaN,NaN,NaN,24.53,NaN,208.25,1.0,207.25,NaN,NaN,NaN,NaN,NaN,23.4,NaN,1030.02,1.0,1029.02,NaN,NaN,NaN,NaN,NaN,28.27,NaN,290.18,1.0,289.18,NaN,NaN,NaN,NaN,NaN,33.69,NaN,392.34,1.0,391.34,NaN,NaN,NaN,NaN,NaN
AU-TS = 53.25,NaN,227.97,4.66,223.31,NaN,NaN,NaN,NaN,NaN,45.62,NaN,136.52,2.63,133.89,NaN,NaN,NaN,NaN,NaN,60.9,NaN,173.77,8.39,165.38,NaN,NaN,NaN,NaN,NaN,65.24,NaN,190.23,5.8,184.43,NaN,NaN,NaN,NaN,NaN,72.72,NaN,327.39,2.92,324.47,NaN,NaN,NaN,NaN,NaN,105.03,NaN,470.18,4.8,465.38,NaN,NaN,NaN,NaN,NaN,101.81,NaN,429.5,6.11,423.39,NaN,NaN,NaN,NaN,NaN,116.36,NaN,337.42,3.15,334.27,NaN,NaN,NaN,NaN,NaN,109.82,NaN,416.74,10.51,406.23,NaN,NaN,NaN,NaN,NaN,81.74,NaN,308.23,1.0,307.23,NaN,NaN,NaN,NaN,NaN,69.17,NaN,208.25,5.36,202.89,NaN,NaN,NaN,NaN,NaN,78.67,NaN,273.2,8.01,265.19,NaN,NaN,NaN,NaN,NaN
AU-VI = 31.09,NaN,128.53,1.0,127.53,NaN,NaN,NaN,NaN,NaN,41.73,NaN,202.06,1.0,201.06,NaN,NaN,NaN,NaN,NaN,36.52,NaN,184.58,1.0,183.58,NaN,NaN,NaN,NaN,NaN,48.24,NaN,163.6,1.0,162.6,NaN,NaN,NaN,NaN,NaN,45.34,NaN,221.2,1.2,220.0,NaN,NaN,NaN,NaN,NaN,66.45,NaN,404.36,3.55,400.81,NaN,NaN,NaN,NaN,NaN,66.28,NaN,369.38,6.3,363.08,NaN,NaN,NaN,NaN,NaN,73.72,NaN,358.4,1.03,357.37,NaN,NaN,NaN,NaN,NaN,60.87,NaN,299.07,2.81,296.26,NaN,NaN,NaN,NaN,NaN,53.26,NaN,257.2,1.0,256.2,NaN,NaN,NaN,NaN,NaN,66.7,NaN,208.25,5.58,202.67,NaN,NaN,NaN,NaN,NaN,58.92,NaN,196.06,3.8,192.26,NaN,NaN,NaN,NaN,NaN
AU-WA = 64.9,NaN,717.22,1.0,716.22,NaN,NaN,NaN,NaN,NaN,83.37,NaN,695.91,1.0,694.91,NaN,NaN,NaN,NaN,NaN,58.19,NaN,969.72,1.0,968.72,NaN,NaN,NaN,NaN,NaN,23.78,NaN,249.56,1.0,248.56,NaN,NaN,NaN,NaN,NaN,21.47,NaN,394.8,1.0,393.8,NaN,NaN,NaN,NaN,NaN,21.86,NaN,347.75,1.0,346.75,NaN,NaN,NaN,NaN,NaN,27.24,NaN,299.07,1.0,298.07,NaN,NaN,NaN,NaN,NaN,17.9,NaN,227.97,1.0,226.97,NaN,NaN,NaN,NaN,NaN,14.88,NaN,242.15,1.0,241.15,NaN,NaN,NaN,NaN,NaN,17.09,NaN,290.18,1.0,289.18,NaN,NaN,NaN,NaN,NaN,25.36,NaN,242.15,1.0,241.15,NaN,NaN,NaN,NaN,NaN,52.27,NaN,809.19,1.0,808.19,NaN,NaN,NaN,NaN,NaN
