# ITA_0_ITA_1.properties
#/*******************************************************************************
# * Copyright (c) 2008 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 rest of the file's contents
RECORD_CLASSNAME =  org.eclipse.stem.internal.data.geography.infrastructure.transportation.specifications.AirTransportationGeographicRelationshipPropertyFileSpecification

# The title of the relationship
TITLE = Air transport between ITA(0) and ITA(1)
# This is the date range for which the values in this file are valid
# See http://purl.org/dc/terms/1.1/valid
VALID = start=2000-01-01; end=2008-12-31;

# The data is derived from the following primary source
#SOURCE = http://www.azworldairports.com

# ISO3166-1 alpha3 keys and levels of relationship
ISOKEY_0 = ITA
ISOKEY_0_LEVEL = 0
ISOKEY_1 = ITA
ISOKEY_1_LEVEL = 1

# The mode of transportation 
TRANSPORT_MODE = air

# The population being transported
POPULATION_IDENTIFIER = human

# The time period for the rate in milliseconds 
RATE_TIME_PERIOD = 86400000

#Average time in transportation network
AVG_TIME_IN_SYSTEM = 1

# Record No. = Enclosing Node Key,  Node Key, ArrivalRate (individuals per RATE_TIME_PERIOD), DepartureRate(Individuals per RATE_TIME_PERIOD)
# PSR/LIBP(Actual)
0 = ITA,IT-AB,447.8383561643836,447.8383561643836
# BZO/LIPB(Actual)
1 = ITA,IT-AD,86.9068493150685,86.9068493150685
# REG/LICR(Estimated), CRV/LIBC(Estimated), SUF/LICA(Estimated)
2 = ITA,IT-CI,41.983561643835614,41.983561643835614
# NAP/LIRN(Estimated)
3 = ITA,IT-CM,13.994520547945205,13.994520547945205
# FRL/LIPK(Estimated), RMI/LIPR(Estimated), BLQ/LIPE(Actual)
4 = ITA,IT-ER,5142.106849315069,5142.106849315069
# TRS/LIPQ(Actual)
5 = ITA,IT-FV,859.6356164383561,859.6356164383561
# CIA/LIRA(Estimated), FCO/LIRF(Actual)
6 = ITA,IT-LA,51313.52876712329,51313.52876712329
# BGY/LIME(Actual), VBS/LIPO(Estimated), LIN/LIML(Actual), MXP/LIMC(Actual)
7 = ITA,IT-LB,40760.531506849315,40760.531506849315
# GOA/LIMJ(Estimated)
8 = ITA,IT-LG,13.994520547945205,13.994520547945205
# AOI/LIPY(Actual)
9 = ITA,IT-MA,575.1369863013699,575.1369863013699
# CUF/LIMZ(Estimated), TRN/LIMF(Actual)
10 = ITA,IT-PM,3619.2082191780823,3619.2082191780823
# BRI/LIBD(Estimated), BDS/LIBR(Estimated)
11 = ITA,IT-PU,27.98904109589041,27.98904109589041
# Catania-Fontanarossa Airport(Estimated), PMO/LICJ(Actual), TPS/LICT(Estimated)
12 = ITA,IT-SC,5710.4684931506845,5710.4684931506845
# "Cagliari - Elmas ""Mario Mameli"" Airport"(Estimated), OLB/LIEO(Estimated), Alghero - Fertilia Airport(Actual)
13 = ITA,IT-SD,1304.5369863013698,1304.5369863013698
# FLR/LIRQ(Actual), EBA/LIRJ(Estimated), PSA/LIRP(Actual)
14 = ITA,IT-TC,5809.712328767123,5809.712328767123
# TSF/LIPH(Estimated), QPA/LIPU(Estimated), VCE/LIPZ(Estimated), VRN/LIPX(Estimated)
15 = ITA,IT-VN,55.97808219178082,55.97808219178082
