# AND.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 vegetation data file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.EarthPropertyFileSpecification

# The title
TITLE = AND vegetation 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 = AND
ADMIN_LEVEL = 1
UNITS = UNITS
DATA_TYPE = vegetation

# 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: 0.9 
# Minimum: -0.1

AD-01 = 0.3,NaN,0.6,0.03,0.57,NaN,NaN,NaN,NaN,NaN,0.26,NaN,0.56,0.03,0.53,NaN,NaN,NaN,NaN,NaN,0.29,NaN,0.6,0.04,0.56,NaN,NaN,NaN,NaN,NaN,0.35,NaN,0.62,0.07,0.55,NaN,NaN,NaN,NaN,NaN,0.51,NaN,0.69,0.19,0.5,NaN,NaN,NaN,NaN,NaN,0.61,NaN,0.71,0.5,0.21,NaN,NaN,NaN,NaN,NaN,0.63,NaN,0.7,0.54,0.16,NaN,NaN,NaN,NaN,NaN,0.61,NaN,0.72,0.52,0.2,NaN,NaN,NaN,NaN,NaN,0.58,NaN,0.69,0.48,0.21,NaN,NaN,NaN,NaN,NaN,0.55,NaN,0.74,0.3,0.44,NaN,NaN,NaN,NaN,NaN,0.44,NaN,0.64,0.07,0.57,NaN,NaN,NaN,NaN,NaN,0.32,NaN,0.61,0.03,0.58,NaN,NaN,NaN,NaN,NaN
