def __init__(self, gtfs_path, journey_db_path, routing_params=None, multitarget_routing=False,<EOL>track_vehicle_legs=True, track_route=False):
self.multitarget_routing = multitarget_routing<EOL>self.track_route = track_route<EOL>self.track_vehicle_legs = track_vehicle_legs<EOL>self.gtfs_path = gtfs_path<EOL>self.gtfs = GTFS(self.gtfs_path)<EOL>self.gtfs_meta = self.gtfs.meta<EOL>self.gtfs._dont_close = True<EOL>self.od_pairs = None<EOL>self._targets = None<EOL>self._origins = None<EOL>self.diff_conn = None<EOL>if not routing_params:<EOL><INDENT>routing_params = dict()<EOL><DEDENT>self.routing_params_input = routing_params<EOL>assert os.path.exists(journey_db_path) or routing_params is not None<EOL>journey_db_pre_exists = os.path.isfile(journey_db_path)<EOL>timeout = <NUM_LIT:1000><EOL>self.conn = sqlite3.connect(journey_db_path, timeout)<EOL>if not journey_db_pre_exists:<EOL><INDENT>self.initialize_database()<EOL><DEDENT>self.routing_parameters = Parameters(self.conn)<EOL>self._assert_journey_computation_paramaters_match()<EOL>self.journey_properties = {"<STR_LIT>": (_T_WALK_STR, _T_WALK_STR)}<EOL>if routing_params.get('<STR_LIT>', False) orself.routing_parameters.get('<STR_LIT>', False):<EOL><INDENT>self.journey_properties["<STR_LIT>"] = (float("<STR_LIT>"), <NUM_LIT:0>)<EOL><DEDENT>if self.track_route:<EOL><INDENT>additional_journey_parameters = {<EOL>"<STR_LIT>": (float('<STR_LIT>'), <NUM_LIT:0>),<EOL>"<STR_LIT>": (float('<STR_LIT>'), <NUM_LIT:0>),<EOL>"<STR_LIT>": (_T_WALK_STR, _T_WALK_STR),<EOL>"<STR_LIT>": (float('<STR_LIT>'), <NUM_LIT:0>)<EOL>}<EOL>self.journey_properties.update(additional_journey_parameters)<EOL><DEDENT>self.travel_impedance_measure_names = list(self.journey_properties.keys())<EOL>self.travel_impedance_measure_names += ["<STR_LIT>"]<EOL>
:param gtfs: GTFS object
:param list_of_stop_profiles: dict of NodeProfileMultiObjective
:param multitarget_routing: bool