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

IT-AB = 784.2562724014336,548.714428287353,2695.0,1.0,2694.0,7.707346686380444,21.70424517963315,957.1548592634886
IT-AD = 1597.1929064213691,679.5771572228277,3635.0,1.0,3634.0,20.013360057779188,65.87156998541593,1735.7564036873955
IT-AS = 2108.1272337383843,715.6032064936252,4570.0,264.0,4306.0,34.18862129179847,127.6079101762167,2226.2723065189957
IT-BC = 550.8640399921068,338.26600462982384,2028.0,1.0,2027.0,9.74213439859871,29.282123903686358,646.4325799684366
IT-CI = 525.283281458426,427.80015417029415,2132.0,1.0,2131.0,6.309513069173401,17.787191945805667,677.4477822591651
IT-CM = 441.4423702446613,345.0478866290958,1820.0,1.0,1819.0,6.652898250318878,19.122925859074503,560.2940391566109
IT-ER = 280.2232412512815,349.1422830772582,1965.0,1.0,1964.0,4.279736302817425,12.78042102647822,447.68895314691025
IT-FV = 563.0341767224601,581.3852373759793,2475.0,1.0,2474.0,4.664442181214575,12.331636487860965,809.3307595762459
IT-LA = 403.86228005865104,403.3302275954075,2280.0,1.0,2279.0,5.4496655855636735,17.457132937363617,570.7714198751846
IT-LB = 622.1193529693365,773.9276889458857,3760.0,1.0,3759.0,4.332179337271459,12.671787310719804,992.9735933327287
IT-LG = 521.3501910541695,332.9522510571219,1999.0,1.0,1998.0,9.153974086568399,27.685372014166095,618.5977879011724
IT-MA = 396.6956932376275,337.1421275177198,2288.0,1.0,2287.0,6.696686908797951,23.345031063416098,520.6076134484165
IT-ML = 569.8581609837898,329.91600490932893,1911.0,1.0,1910.0,10.801494519088536,33.17574936654619,658.470116205101
IT-PM = 794.373722029321,741.3356359258678,4329.0,5.0,4324.0,5.599469721124046,16.402314718843552,1086.5579300453007
IT-PU = 203.31799849613782,188.46028624303267,1095.0,1.0,1094.0,5.692723508227931,17.5540362557281,277.22822367731817
IT-SC = 429.78676529709736,335.1863098829531,3157.0,1.0,3156.0,7.478089645618646,27.805036159657977,545.0380958772446
IT-SD = 341.71282960336805,273.15746053227446,1720.0,1.0,1719.0,6.658909244249914,20.219700801305578,437.4730347804105
IT-TC = 362.18245633277576,311.4238738369834,1948.0,1.0,1947.0,6.3806233061262745,20.96659486127843,477.66197344029456
IT-UM = 488.54714776130305,279.38077447066115,2123.0,41.0,2082.0,11.924713652489437,42.00225448509389,562.7894213020802
IT-VN = 433.07245845959176,642.3286088660928,3047.0,1.0,3046.0,3.7942332455974377,10.881645910263876,774.6856110991656
