# JPN_0_JPN_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 JPN(0) and JPN(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 = JPN
ISOKEY_0_LEVEL = 0
ISOKEY_1 = JPN
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)
# AXT/RJSK(Actual), MSJ/RJSM(Estimated), SDJ/RJSS(Actual), GAJ/RJSC(Actual)
0 = JPN,JP-TOH,6183.805479452055,6183.805479452055
# KMQ/RJNK(Actual), KIJ/RJSN(Actual), TOY/RJNT(Estimated)
1 = JPN,JP-HRI,5252.723287671233,5252.723287671233
# OBO/RJCB(Actual), AKJ/RJEC(Actual), CTS/RJCC(Actual), KUH/RJCK(Estimated), WKJ/RJCW(Actual), HKD/RJCH(Actual)
2 = JPN,JP-0,29376.517808219178,29376.517808219178
# OKA/ROAH(Estimated)
3 = JPN,JP-RYU,13.994520547945205,13.994520547945205
# MYJ/RJOM(Actual), TAK/RJOT(Estimated), KCZ/RJOK(Estimated)
4 = JPN,JP-SKO,3470.117808219178,3470.117808219178
# ITM/RJOO(Actual), KIX/RJBB(Actual), RJOY(Estimated)
5 = JPN,JP-KIN,51214.34794520548,51214.34794520548
# HND/RJTT(Actual), NRT/RJAA(Actual)
6 = JPN,JP-KNT,127022.83561643836,127022.83561643836
# NKM/RJNA(Actual), NGO/RJGG(Actual)
7 = JPN,JP-TAI,30874.630136986303,30874.630136986303
# MMJ/RJAF(Estimated)
8 = JPN,JP-CHB,13.994520547945205,13.994520547945205
# HIW/RJBH(Estimated), HIJ/RJOA(Estimated), OKJ/RJOB(Estimated), UBJ/RJDC(Actual)
9 = JPN,JP-CHG,1273.7972602739726,1273.7972602739726
# FUK/RJFF(Estimated), KKJ/RJFR(Estimated), KOJ/RJFK(Estimated), KMJ/RJFT(Estimated), KMI/RJFM(Estimated), NGS/RJFU(Actual), Kunisaki - Oita Airport(Estimated)
10 = JPN,JP-KYU,3864.6602739726027,3864.6602739726027
