# ALB.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 = ALB vegetation data for combined at admin level 0

# 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 = ALB
ADMIN_LEVEL = 0
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

ALB = 0.37,NaN,0.64,-0.05,0.69,NaN,NaN,NaN,NaN,NaN,0.35,NaN,0.63,-0.03,0.66,NaN,NaN,NaN,NaN,NaN,0.4,NaN,0.7,-0.03,0.73,NaN,NaN,NaN,NaN,NaN,0.52,NaN,0.76,0.07,0.69,NaN,NaN,NaN,NaN,NaN,0.64,NaN,0.81,0.03,0.78,NaN,NaN,NaN,NaN,NaN,0.62,NaN,0.84,0.05,0.79,NaN,NaN,NaN,NaN,NaN,0.58,NaN,0.82,0.02,0.8,NaN,NaN,NaN,NaN,NaN,0.56,NaN,0.8,0.01,0.79,NaN,NaN,NaN,NaN,NaN,0.56,NaN,0.76,-0.07,0.83,NaN,NaN,NaN,NaN,NaN,0.54,NaN,0.73,0.06,0.67,NaN,NaN,NaN,NaN,NaN,0.5,NaN,0.68,0.02,0.66,NaN,NaN,NaN,NaN,NaN,0.41,NaN,0.65,-0.02,0.67,NaN,NaN,NaN,NaN,NaN
