# CAN_1_CAN_2.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 CAN(1) and CAN(2)
# 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 = CAN
ISOKEY_0_LEVEL = 1
ISOKEY_1 = CAN
ISOKEY_1_LEVEL = 2

# 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)
# YHZ/CYHZ(Actual)
0 = CA-NS,CA-NS-1208,4752.191780821918,4752.191780821918
# YQY/CYQY(Actual)
1 = CA-NS,CA-NS-1217,134.1095890410959,134.1095890410959
# YSJ/CYSJ(Actual)
2 = CA-NB,CA-NB-1301,335.6164383561644,335.6164383561644
# YFC/CYFC(Actual)
3 = CA-NB,CA-NB-1303,366.43835616438355,366.43835616438355
# YQM/CYQM(Actual)
4 = CA-NB,CA-NB-1307,636.7123287671233,636.7123287671233
# YXY/CYXY(Estimated)
5 = CA-YT,CA-YT-6001,3.0356164383561643,3.0356164383561643
# YQR/CYQR(Actual)
6 = CA-SK,CA-SK-4706,1318.7671232876712,1318.7671232876712
# YXE/CYXE(Actual)
7 = CA-SK,CA-SK-4711,1235.7534246575342,1235.7534246575342
# YVC/CYVC(Estimated)
8 = CA-SK,CA-SK-4718,3.3917808219178083,3.3917808219178083
# YQB/CYQB(Actual)
9 = CA-QC,CA-QC-2423,910.2739726027397,910.2739726027397
# YOW/CYOW(Actual)
10 = CA-ON,CA-ON-3506,5600.684931506849,5600.684931506849
# YGK/CYGK(Actual)
11 = CA-ON,CA-ON-3510,112.6027397260274,112.6027397260274
# YTZ/CYTZ(Actual)
12 = CA-ON,CA-ON-3520,157.53424657534248,157.53424657534248
# YYZ/CYYZ(Actual)
13 = CA-ON,CA-ON-3521,43160.82191780822,43160.82191780822
# YHM/CYHM(Estimated)
14 = CA-ON,CA-ON-3525,15.0,15.0
# YUL/CYUL(Actual)
15 = CA-QC,CA-QC-2466,16997.12328767123,16997.12328767123
# YKF/CYKF(Actual)
16 = CA-ON,CA-ON-3530,12700.287671232876,12700.287671232876
# YQG/CYQG(Actual)
17 = CA-ON,CA-ON-3537,230.27397260273972,230.27397260273972
# YZR/CYZR(Estimated)
18 = CA-ON,CA-ON-3538,12.819178082191781,12.819178082191781
# YXU/CYXU(Estimated)
19 = CA-ON,CA-ON-3539,15.0,15.0
# YMX/CYMX(Actual)
20 = CA-QC,CA-QC-2474,1357.3972602739725,1357.3972602739725
# YYB/CYYB(Actual)
21 = CA-ON,CA-ON-3548,102.73972602739725,102.73972602739725
# YVQ/CYVO(Actual)
22 = CA-QC,CA-QC-2489,1390.5780821917808,1390.5780821917808
# YTS/CYTS(Estimated)
23 = CA-ON,CA-ON-3556,8.24931506849315,8.24931506849315
# YAM/CYAM(Actual)
24 = CA-ON,CA-ON-3557,204.24657534246575,204.24657534246575
# YQT/CYQT(Estimated)
25 = CA-ON,CA-ON-3558,14.904109589041095,14.904109589041095
# YBG/CYBG(Estimated)
26 = CA-QC,CA-QC-2493,5.115068493150685,5.115068493150685
# YBC/CYBC(Estimated), YZV/CYZV(Estimated)
27 = CA-QC,CA-QC-2495,2.4602739726027396,2.4602739726027396
# YQK/CYQK(Estimated), YHD/CYHD(Estimated), YRL/CYRL(Estimated)
28 = CA-ON,CA-ON-3560,19.323287671232876,19.323287671232876
# YSM/CYSM(Estimated), YFB/CYFB(Estimated), YFS/CYFS(Estimated), YLC/CYLC(Estimated), YZF/CYZF(Estimated), YCO/CYCO(Estimated), YEV/CYEV(Actual)
29 = CA-NT,CA-NT-6100,1078.1178082191782,1078.1178082191782
# YYF/CYYF(Estimated)
30 = CA-BC,CA-BC-5907,7.945205479452055,7.945205479452055
# YXX/CYXX(Actual), YVR/CYVR(Actual)
31 = CA-BC,CA-BC-5915,24543.972602739726,24543.972602739726
# YYJ/CYYJ(Actual)
32 = CA-BC,CA-BC-5917,2029.5890410958905,2029.5890410958905
# YCD/CYVD(Estimated)
33 = CA-BC,CA-BC-5921,13.863013698630137,13.863013698630137
# YKA/CYKA(Estimated)
34 = CA-BC,CA-BC-5933,12.227397260273973,12.227397260273973
# YLW/CYLW(Actual)
35 = CA-BC,CA-BC-5935,1867.6712328767123,1867.6712328767123
# YPR/CYPR(Estimated)
36 = CA-BC,CA-BC-5947,1.9643835616438357,1.9643835616438357
# YXS/CYXS(Actual)
37 = CA-BC,CA-BC-5953,557.945205479452,557.945205479452
# YXJ/CYXJ(Actual)
38 = CA-BC,CA-BC-5955,144.1095890410959,144.1095890410959
# YYT/CYYT(Estimated)
39 = CA-NL,CA-NL-1001,15.0,15.0
# YJT/CYJT(Estimated)
40 = CA-NL,CA-NL-1004,2.115068493150685,2.115068493150685
# YQX/CYQX(Actual)
41 = CA-NL,CA-NL-1006,493.56164383561645,493.56164383561645
# YYR/CYYR(Estimated)
42 = CA-NL,CA-NL-1010,2.3945205479452056,2.3945205479452056
# YWG/CYWG(Actual)
43 = CA-MB,CA-MB-4611,4884.246575342466,4884.246575342466
# YYL/CYYL(Estimated)
44 = CA-MB,CA-MB-4623,0.8246575342465754,0.8246575342465754
# YYC/CYYC(Actual)
45 = CA-AB,CA-AB-4806,16768.219178082192,16768.219178082192
# YXD/CYXD(Actual), YEG/CYEG(Actual)
46 = CA-AB,CA-AB-4811,8424.794520547945,8424.794520547945
