diff --git a/aequilibrae/project/database_specification/transit/tables/fare_rules.sql b/aequilibrae/project/database_specification/transit/tables/fare_rules.sql index dee7d708f..c7b64cb89 100644 --- a/aequilibrae/project/database_specification/transit/tables/fare_rules.sql +++ b/aequilibrae/project/database_specification/transit/tables/fare_rules.sql @@ -20,8 +20,5 @@ create TABLE IF NOT EXISTS fare_rules ( destination INTEGER, contains INTEGER, FOREIGN KEY(fare_id) REFERENCES fare_attributes(fare_id) deferrable initially deferred, - FOREIGN KEY(route_id) REFERENCES routes(route_id) deferrable initially deferred, - FOREIGN KEY(destination) REFERENCES fare_zones(fare_zone_id) deferrable initially deferred, - FOREIGN KEY(origin) REFERENCES fare_zones(fare_zone_id) deferrable initially deferred, - FOREIGN KEY(contains) REFERENCES fare_zones(fare_zone_id) deferrable initially deferred + FOREIGN KEY(route_id) REFERENCES routes(route_id) deferrable initially deferred ); \ No newline at end of file diff --git a/aequilibrae/project/database_specification/transit/tables/fare_zones.sql b/aequilibrae/project/database_specification/transit/tables/fare_zones.sql index b5f8ded58..37c3985e0 100644 --- a/aequilibrae/project/database_specification/transit/tables/fare_zones.sql +++ b/aequilibrae/project/database_specification/transit/tables/fare_zones.sql @@ -1,15 +1,12 @@ ---@ The *zones* tables holds information on the fare transit zones and ---@ the TAZs they are in. +--@ The *fare_zones* table hold information on the transit fare zones and +--@ the transit agencies that operate in it. +--@ +--@ **transit_fare_zone** identifies the transit fare zones --@ ---@ **fare_zone_id** identifies the fare zone for a stop ---@ ---@ **transit_zone** identifies the TAZ for a fare zone ---@ ---@ **agency_id** identifies the agency fot the specified route +--@ **agency_id** identifies the agency/agencies for the specified fare zone CREATE TABLE IF NOT EXISTS fare_zones ( - fare_zone_id INTEGER PRIMARY KEY, - transit_zone TEXT NOT NULL, - agency_id INTEGER NOT NULL, + transit_fare_zone TEXT NOT NULL, + agency_id INTEGER NOT NULL, FOREIGN KEY(agency_id) REFERENCES agencies(agency_id) deferrable initially deferred ); \ No newline at end of file diff --git a/aequilibrae/project/database_specification/transit/tables/stops.sql b/aequilibrae/project/database_specification/transit/tables/stops.sql index 3620292ea..391cabae8 100644 --- a/aequilibrae/project/database_specification/transit/tables/stops.sql +++ b/aequilibrae/project/database_specification/transit/tables/stops.sql @@ -23,27 +23,26 @@ --@ --@ **street** identifies the address of a stop --@ ---@ **fare_zone_id** identifies the fare zone for a stop +--@ **zone_id** identifies the TAZ for a stop --@ ---@ **transit_zone** identifies the TAZ for a fare zone +--@ **transit_fare_zone** identifies the transit fare zone for a stop --@ --@ **route_type** indicates the type of transporation used on a route CREATE TABLE IF NOT EXISTS stops ( - stop_id TEXT PRIMARY KEY, - stop TEXT NOT NULL , - agency_id INTEGER NOT NULL, + stop_id TEXT PRIMARY KEY, + stop TEXT NOT NULL , + agency_id INTEGER NOT NULL, link INTEGER, dir INTEGER, name TEXT, parent_station TEXT, description TEXT, street TEXT, - fare_zone_id INTEGER, - transit_zone TEXT, - route_type INTEGER NOT NULL DEFAULT -1, - FOREIGN KEY(agency_id) REFERENCES agencies(agency_id), - FOREIGN KEY("fare_zone_id") REFERENCES fare_zones("fare_zone_id") + zone_id INTEGER, + transit_fare_zone TEXT, + route_type INTEGER NOT NULL DEFAULT -1, + FOREIGN KEY(agency_id) REFERENCES agencies(agency_id) ); --# diff --git a/aequilibrae/transit/lib_gtfs.py b/aequilibrae/transit/lib_gtfs.py index 8c59fc583..beae749fe 100644 --- a/aequilibrae/transit/lib_gtfs.py +++ b/aequilibrae/transit/lib_gtfs.py @@ -240,7 +240,7 @@ def save_to_disk(self): zones = [[y, x, self.gtfs_data.agency.agency_id] for x, y in list(zone_ids.items())] if zones: - sql = "Insert into fare_zones (fare_zone_id, transit_zone, agency_id) values(?, ?, ?);" + sql = "Insert into fare_zones (transit_fare_zone, agency_id) values(?, ?);" conn.executemany(sql, zones) conn.commit() diff --git a/aequilibrae/transit/transit_elements/stop.py b/aequilibrae/transit/transit_elements/stop.py index 48f6a5fca..ccafb1b34 100644 --- a/aequilibrae/transit/transit_elements/stop.py +++ b/aequilibrae/transit/transit_elements/stop.py @@ -56,7 +56,7 @@ def save_to_database(self, conn: Connection, commit=True) -> None: """Saves Transit Stop to the database""" sql = """insert into stops (stop_id, stop, agency_id, link, dir, name, - parent_station, description, street, fare_zone_id, transit_zone, route_type, geometry) + parent_station, description, street, zone_id, transit_fare_zone, route_type, geometry) values (?,?,?,?,?,?,?,?,?,?,?,?, GeomFromWKB(?, ?));""" dt = self.data diff --git a/tests/aequilibrae/project/test_transit_tables.py b/tests/aequilibrae/project/test_transit_tables.py index 1d3f8c161..fbb7bf50a 100644 --- a/tests/aequilibrae/project/test_transit_tables.py +++ b/tests/aequilibrae/project/test_transit_tables.py @@ -18,7 +18,7 @@ def create_project(project: Project): ["fare_id", "fare", "agency_id", "price", "currency", "payment_method", "transfer", "transfer_duration"], ), ("fare_rules", ["fare_id", "route_id", "origin", "destination", "contains"]), - ("fare_zones", ["fare_zone_id", "transit_zone", "agency_id"]), + ("fare_zones", ["transit_fare_zone", "agency_id"]), ("pattern_mapping", ["pattern_id", "seq", "link", "dir", "geometry"]), ( "routes", @@ -50,8 +50,8 @@ def create_project(project: Project): "parent_station", "description", "street", - "fare_zone_id", - "transit_zone", + "zone_id", + "transit_fare_zone", "route_type", "geometry", ],