# RUS_2_RUS_3.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 RUS(2) and RUS(3)
# 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 = RUS
ISOKEY_0_LEVEL = 2
ISOKEY_1 = RUS
ISOKEY_1_LEVEL = 3

# 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)
# SVX/USSS(Actual)
0 = RU-08-07,RU-08-07-52,2146.301369863014,2146.301369863014
# LPK/UUOL(Estimated)
1 = RU-05-04,RU-05-04-12,15.0,15.0
# LED/ULLI(Actual)
2 = RU-02-01,RU-02-01-01,5146.8493150684935,5146.8493150684935
# GDX/UHMM(Estimated)
3 = RU-11-08,RU-11-08-02,15.0,15.0
# BTK/UIBB(Estimated)
4 = RU-10-07,RU-10-07-04,15.0,15.0
# IKT/UIII(Actual)
5 = RU-10-07,RU-10-07-09,1191.9178082191781,1191.9178082191781
# DME/UUDD(Actual), SVO/UUEE(Actual), VKO/UUWW(Actual), BKA/UUBB(Estimated)
6 = RU-03-06,RU-03-06-01,54042.808219178085,54042.808219178085
# KZN/UWKD(Estimated)
7 = RU-06-02,RU-06-02-20,15.0,15.0
# CNN/UELL(Estimated)
8 = RU-11-01,RU-11-01-17,11.578082191780823,11.578082191780823
# NOJ/USRO(Estimated)
9 = RU-09-09,RU-09-09-06,9.578082191780823,9.578082191780823
# YKS/UEEE(Estimated)
10 = RU-11-01,RU-11-01-34,15.0,15.0
# CEK/USCC(Estimated)
11 = RU-08-08,RU-08-08-06,15.0,15.0
# KRR/URKK(Estimated)
12 = RU-07-07,RU-07-07-19,15.0,15.0
# KJA/UNKL(Estimated)
13 = RU-06-06,RU-06-06-19,11.509589041095891,11.509589041095891
# KUF/UWWW(Actual)
14 = RU-06-06,RU-06-06-25,1669.86301369863,1669.86301369863
# BAX/UNBB(Estimated)
15 = RU-09-02,RU-09-02-03,15.0,15.0
# NSK/UOOO(Estimated)
16 = RU-10-04,RU-10-04-24,15.0,15.0
# UFA/UWUU(Estimated)
17 = RU-08-01,RU-08-01-58,15.0,15.0
# DYR/UHMA(Estimated)
18 = RU-11-09,RU-11-09-01,1.9698630136986301,1.9698630136986301
# UUS/UHSS(Estimated)
19 = RU-11-10,RU-11-10-19,15.0,15.0
# PEE/USPP(Estimated)
20 = RU-08-05,RU-08-05-31,15.0,15.0
# Astrakhan - Narimanovo Airport(Estimated)
21 = RU-06-03,RU-06-03-03,15.0,15.0
# VVO/UHWW(Estimated)
22 = RU-11-02,RU-11-02-33,15.0,15.0
# STW/URMT(Estimated)
23 = RU-07-08,RU-07-08-30,15.0,15.0
# PKC/UHPP(Estimated)
24 = RU-11-06,RU-11-06-04,15.0,15.0
# KEJ/UNEE(Estimated)
25 = RU-09-03,RU-09-03-09,15.0,15.0
# RTW/UWSS(Estimated)
26 = RU-06-07,RU-06-07-34,15.0,15.0
# GOJ/UWGG(Estimated)
27 = RU-04-05,RU-04-05-25,15.0,15.0
# TJM/USTR(Actual)
28 = RU-09-07,RU-09-07-15,380.4109589041096,380.4109589041096
# HTA/UIAA(Estimated)
29 = RU-10-09,RU-10-09-07,15.0,15.0
# KHV/UHHH(Estimated)
30 = RU-11-03,RU-11-03-04,15.0,15.0
# VOG/URWW(Estimated)
31 = RU-06-04,RU-06-04-38,15.0,15.0
# MMK/ULMM(Actual)
32 = RU-01-06,RU-01-06-08,415.6164383561644,415.6164383561644
# ROV/URRR(Actual)
33 = RU-07-09,RU-07-09-36,997.1232876712329,997.1232876712329
# OVB/UNNT(Actual)
34 = RU-09-04,RU-09-04-22,1700.6849315068494,1700.6849315068494
# ARH/ULAA(Estimated)
35 = RU-01-03,RU-01-03-01,15.0,15.0
