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

MW-C = 0.54,NaN,0.81,0.0,0.81,NaN,NaN,NaN,NaN,NaN,0.6,NaN,0.83,-0.01,0.84,NaN,NaN,NaN,NaN,NaN,0.61,NaN,0.85,-0.01,0.86,NaN,NaN,NaN,NaN,NaN,0.59,NaN,0.83,0.03,0.8,NaN,NaN,NaN,NaN,NaN,0.5,NaN,0.81,0.01,0.8,NaN,NaN,NaN,NaN,NaN,0.43,NaN,0.78,0.01,0.77,NaN,NaN,NaN,NaN,NaN,0.36,NaN,0.71,-0.1,0.81,NaN,NaN,NaN,NaN,NaN,0.3,NaN,0.66,-0.1,0.76,NaN,NaN,NaN,NaN,NaN,0.27,NaN,0.55,-0.1,0.65,NaN,NaN,NaN,NaN,NaN,0.29,NaN,0.61,-0.1,0.71,NaN,NaN,NaN,NaN,NaN,0.31,NaN,0.68,-0.1,0.78,NaN,NaN,NaN,NaN,NaN,0.42,NaN,0.74,-0.01,0.75,NaN,NaN,NaN,NaN,NaN
MW-N = 0.44,NaN,0.83,-0.03,0.86,NaN,NaN,NaN,NaN,NaN,0.48,NaN,0.84,-0.01,0.85,NaN,NaN,NaN,NaN,NaN,0.49,NaN,0.86,-0.01,0.87,NaN,NaN,NaN,NaN,NaN,0.51,NaN,0.86,-0.02,0.88,NaN,NaN,NaN,NaN,NaN,0.48,NaN,0.84,0.01,0.83,NaN,NaN,NaN,NaN,NaN,0.42,NaN,0.84,-0.01,0.85,NaN,NaN,NaN,NaN,NaN,0.34,NaN,0.79,-0.1,0.89,NaN,NaN,NaN,NaN,NaN,0.29,NaN,0.75,-0.1,0.85,NaN,NaN,NaN,NaN,NaN,0.26,NaN,0.75,-0.1,0.85,NaN,NaN,NaN,NaN,NaN,0.27,NaN,0.73,-0.1,0.83,NaN,NaN,NaN,NaN,NaN,0.3,NaN,0.75,-0.1,0.85,NaN,NaN,NaN,NaN,NaN,0.37,NaN,0.76,-0.07,0.83,NaN,NaN,NaN,NaN,NaN
MW-S = 0.59,NaN,0.83,-0.1,0.93,NaN,NaN,NaN,NaN,NaN,0.63,NaN,0.84,-0.1,0.94,NaN,NaN,NaN,NaN,NaN,0.64,NaN,0.84,-0.1,0.94,NaN,NaN,NaN,NaN,NaN,0.62,NaN,0.82,-0.1,0.92,NaN,NaN,NaN,NaN,NaN,0.54,NaN,0.8,-0.1,0.9,NaN,NaN,NaN,NaN,NaN,0.48,NaN,0.77,-0.1,0.87,NaN,NaN,NaN,NaN,NaN,0.4,NaN,0.77,-0.1,0.87,NaN,NaN,NaN,NaN,NaN,0.34,NaN,0.71,-0.1,0.81,NaN,NaN,NaN,NaN,NaN,0.3,NaN,0.72,-0.1,0.82,NaN,NaN,NaN,NaN,NaN,0.3,NaN,0.69,-0.1,0.79,NaN,NaN,NaN,NaN,NaN,0.33,NaN,0.68,-0.1,0.78,NaN,NaN,NaN,NaN,NaN,0.48,NaN,0.79,-0.1,0.89,NaN,NaN,NaN,NaN,NaN
