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

# The title
TITLE = MNG elevation data for 1999 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=1999

# The data is derived from the following primary source
#SOURCE = http://www.noaa.gov/

# ISO3166-1 alpha3 code for the country
ISOKEY = MNG
ADMIN_LEVEL = 1
UNITS = M
DATA_TYPE = elevation
DESCRIPTION = Field 1: Average\nField 2: Standard Deviation\nField 3: Maximum Elevation\nField 4: Minimum Elevation\nField 5: Range\nField 6: Skewness\nField 7: Kurtosis\nField 8\nRoot Mean Squared


# Field 1: Average, Field 2: Standard Deviation, Field 3: Maximum Elevation, Field 4: Minimum Elevation, Field 5: Range, Field 6: Skewness, Field 7: Kurtosis, Field 8: Root Mean Squared

MN-039 = 1288.3089871592579,217.7111855840053,2404.0,848.0,1556.0,225.96134817913878,1463.9202569163917,1306.5749908534551
MN-04 = 1887.3666900654782,333.5767980803125,3200.0,1021.0,2179.0,198.27635398791045,1223.7837983699606,1916.618507420354
MN-043 = 1843.3067694338376,631.570600497858,4092.0,1021.0,3071.0,34.41222384768606,135.46327053180974,1948.5023145107702
MN-046 = 1480.4006130472446,564.8648176439222,3963.0,752.0,3211.0,26.74644731042498,101.10055006297995,1584.505676014631
MN-047 = 1399.1429658759355,251.92238001879818,2650.0,787.0,1863.0,188.64993122961835,1155.5164153220946,1421.641981834542
MN-049 = 1066.810917769687,297.4376617804756,2281.0,585.0,1696.0,57.61017155282647,255.67743769995786,1107.4992988341064
MN-05 = 1078.7182143964467,136.0052655061803,1715.0,736.0,979.0,522.9948384718914,4345.802689951707,1087.2582114272875
MN-053 = 1329.580757227364,280.89535583525463,2759.0,689.0,2070.0,121.04316480404823,655.4230715478251,1358.9286923599436
MN-055 = 1732.82805949729,391.18699844994796,3387.0,966.0,2421.0,101.16096592413919,523.3546443337231,1776.4347304467515
MN-057 = 1848.401422352372,430.93686743253147,3900.0,1026.0,2874.0,92.14128180426074,457.77983601231074,1897.971127774824
MN-059 = 1294.0559513971098,128.60325131389095,1858.0,974.0,884.0,1048.9818743440858,10860.31410306971,1300.4305447023237
MN-06 = 803.9318364149022,132.31852754654923,1482.0,548.0,934.0,243.2523023329804,1605.571294466026,814.7481760234401
MN-063 = 1032.6926286187122,126.3990363805091,1605.0,680.0,925.0,569.9876628348684,4863.289842949424,1040.3993375629125
MN-065 = 1743.619695518335,544.7606502601438,4176.0,529.0,3647.0,42.98281821480194,176.78027685232743,1826.7385715179144
MN-067 = 1345.8683417206134,233.4326000993281,2136.0,746.0,1390.0,209.0088318342836,1308.3896756661018,1365.9620683001876
MN-069 = 1836.3550890026822,547.3316706809313,3887.0,685.0,3202.0,48.15547070763387,200.99096633556937,1916.1868308274197
MN-07 = 2509.8093092045597,437.4316465231807,4151.0,1391.0,2760.0,206.05805525763122,1283.2144225591157,2547.643855398524
MN-073 = 1979.0633377714155,436.035128080113,3509.0,1187.0,2322.0,107.57975222747272,558.7712703754302,2026.5286397756088
