Skip to content

Commit 6aac9c0

Browse files
authored
Merge pull request #1457 from cal-itp/apr-funnel
Apr funnel
2 parents a6c2378 + 27b325e commit 6aac9c0

37 files changed

+959
-1892
lines changed

_shared_utils/shared_utils/rt_dates.py

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"jan2025": "2025-01-15",
6262
"feb2025": "2025-02-12",
6363
"mar2025": "2025-03-12",
64+
"apr2025": "2025-04-16",
6465
}
6566

6667
years_available = list(range(2023, datetime.datetime.now().year + 1))

gtfs_funnel/Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ preprocess_schedule_vp_dependency:
1313

1414
preprocess_vp:
1515
python vp_keep_usable.py
16-
# python cleanup.py
16+
python cleanup.py
1717
python vp_dwell_time.py
1818
python vp_condenser.py
1919

@@ -47,11 +47,11 @@ funnel_gtfs_single_day:
4747
#make monthly_scheduled_data
4848

4949
all:
50-
# make funnel_gtfs_single_day
50+
make funnel_gtfs_single_day
5151
# update open_data/update_vars.py
52-
# cd ../open_data/ && make create_gtfs_schedule_geospatial_open_data -f Makefile
52+
cd ../open_data/ && make create_gtfs_schedule_geospatial_open_data -f Makefile
5353
# update high_quality_transit_areas/update_vars.py
54-
# cd ../high_quality_transit_areas/ && make hqta_data -f Makefile
54+
cd ../high_quality_transit_areas/ && make hqta_data -f Makefile
5555
# update rt_segment_speeds/segment_speed_utils/project_vars.py
5656
cd ../rt_segment_speeds/scripts/ && make all_speeds_pipeline -f Makefile && cd ../../
5757
# update rt_scheduled_v_ran/scripts/update_vars.py

gtfs_funnel/logs/download_data.log

+16
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,19 @@
174174
2025-03-19 13:22:18.762 | INFO | __main__:download_one_day:29 - # operators to run: 190
175175
2025-03-19 13:22:18.763 | INFO | __main__:download_one_day:33 - *********** Download st data ***********
176176
2025-03-19 13:24:08.905 | INFO | __main__:download_one_day:56 - execution time: 0:01:51.870292
177+
2025-04-17 10:20:33.160 | INFO | __main__:download_one_day:45 - Analysis date: 2025-04-16
178+
2025-04-17 10:20:34.307 | INFO | __main__:download_one_day:52 - # operators to run: 225
179+
2025-04-17 10:20:34.308 | INFO | __main__:download_one_day:56 - *********** Download trips data ***********
180+
2025-04-17 10:21:18.329 | INFO | __main__:download_one_day:86 - execution time: 0:00:45.167035
181+
2025-04-17 10:21:36.952 | INFO | __main__:download_one_day:22 - Analysis date: 2025-04-16
182+
2025-04-17 10:21:37.789 | INFO | __main__:download_one_day:29 - # operators to run: 225
183+
2025-04-17 10:21:37.790 | INFO | __main__:download_one_day:33 - *********** Download stops data ***********
184+
2025-04-17 10:21:55.051 | INFO | __main__:download_one_day:64 - execution time: 0:00:18.099278
185+
2025-04-17 10:22:23.904 | INFO | __main__:download_one_day:22 - Analysis date: 2025-04-16
186+
2025-04-17 10:22:24.844 | INFO | __main__:download_one_day:29 - # operators to run: 225
187+
2025-04-17 10:22:24.845 | INFO | __main__:download_one_day:33 - *********** Download routelines data ***********
188+
2025-04-17 10:24:40.619 | INFO | __main__:download_one_day:63 - execution time: 0:02:16.714936
189+
2025-04-17 10:25:02.476 | INFO | __main__:download_one_day:21 - Analysis date: 2025-04-16
190+
2025-04-17 10:25:04.315 | INFO | __main__:download_one_day:29 - # operators to run: 195
191+
2025-04-17 10:25:04.316 | INFO | __main__:download_one_day:33 - *********** Download st data ***********
192+
2025-04-17 10:27:05.358 | INFO | __main__:download_one_day:56 - execution time: 0:02:02.881355

gtfs_funnel/logs/download_vp_v2.log

+9
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,12 @@
160160
2025-03-17 10:07:15.538 | INFO | __main__:<module>:114 - export concatenated vp: 0:04:05.066482
161161
2025-03-17 10:11:09.816 | INFO | __main__:<module>:136 - remove batched parquets
162162
2025-03-17 10:11:09.824 | INFO | __main__:<module>:139 - execution time: 0:08:09.314411
163+
2025-04-17 10:27:26.585 | INFO | __main__:<module>:172 - Analysis date: 2025-04-16
164+
2025-04-17 10:29:21.566 | INFO | __main__:loop_through_batches_and_download_vp:135 - exported batch 0 to GCS: 0:01:54.956152
165+
2025-04-17 10:30:26.137 | INFO | __main__:loop_through_batches_and_download_vp:135 - exported batch 1 to GCS: 0:01:04.570945
166+
2025-04-17 10:34:21.700 | INFO | __main__:loop_through_batches_and_download_vp:135 - exported batch 2 to GCS: 0:03:55.562479
167+
2025-04-17 10:36:04.387 | INFO | __main__:loop_through_batches_and_download_vp:135 - exported batch 3 to GCS: 0:01:42.656962
168+
2025-04-17 10:36:04.388 | INFO | __main__:<module>:179 - execution time: 0:08:37.778853
169+
2025-04-17 10:36:56.397 | INFO | __main__:<module>:99 - Analysis date: 2025-04-16
170+
2025-04-17 10:37:06.001 | INFO | __main__:<module>:107 - concat and filter batched data: 0:00:09.603306
171+
2025-04-17 10:40:36.570 | INFO | __main__:<module>:114 - export concatenated vp: 0:03:30.569211

gtfs_funnel/logs/vp_preprocessing.log

+8
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,11 @@
8585
2025-03-19 12:41:35.778 | INFO | __main__:<module>:241 - merge with original and export: 0:11:52.245810
8686
2025-03-19 12:41:35.826 | INFO | __main__:<module>:242 - vp with dwell time 2025-03-12: 0:17:50.377817
8787
2025-03-19 12:49:18.610 | INFO | __main__:<module>:81 - 2025-03-12: condense vp for trip 0:06:30.102268
88+
2025-04-17 12:26:42.319 | INFO | __main__:pare_down_to_valid_trips:88 - pare down vp: 0:00:52.035105
89+
2025-04-17 12:29:49.374 | INFO | __main__:pare_down_to_valid_trips:94 - export vp direction: 0:03:07.055616
90+
2025-04-17 12:30:33.729 | INFO | __main__:merge_in_vp_direction:143 - 2025-04-16: export usable vp with direction: 0:00:42.387325
91+
2025-04-17 12:30:34.044 | INFO | __main__:<module>:215 - 2025-04-16: pare down vp, add direction execution time: 0:04:43.760001
92+
2025-04-17 12:33:43.156 | INFO | __main__:<module>:216 - compute dwell df: 0:02:54.258013
93+
2025-04-17 12:35:34.010 | INFO | __main__:<module>:241 - merge with original and export: 0:01:50.853684
94+
2025-04-17 12:35:34.014 | INFO | __main__:<module>:242 - vp with dwell time 2025-04-16: 0:04:45.111697
95+
2025-04-17 13:12:07.499 | INFO | __main__:<module>:81 - 2025-04-16: condense vp for trip 0:02:55.436723

gtfs_funnel/published_operators.yml

+48-22
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
2025-03-12:
1+
'2025-04-16':
22
- Alhambra Schedule
33
- Amador Schedule
44
- Amtrak Schedule
@@ -29,9 +29,9 @@
2929
- Bay Area 511 Marin Schedule
3030
- Bay Area 511 Mission Bay Schedule
3131
- Bay Area 511 Mountain View Community Shuttle Schedule
32+
- Bay Area 511 Muni Schedule
3233
- Bay Area 511 Petaluma Schedule
3334
- Bay Area 511 PresidiGo Schedule
34-
- Bay Area 511 Rio Vista Delta Breeze Schedule
3535
- Bay Area 511 SFO AirTrain Schedule
3636
- Bay Area 511 SamTrans Schedule
3737
- Bay Area 511 San Francisco Bay Ferry Schedule
@@ -56,6 +56,7 @@
5656
- Big Blue Bus Schedule
5757
- BruinBus Schedule
5858
- Burbank Schedule
59+
- Calabasas Schedule
5960
- Calaveras Schedule
6061
- Carson Circuit Schedule
6162
- Cerritos on Wheels Schedule
@@ -78,6 +79,7 @@
7879
- El Monte Schedule
7980
- Elk Grove Schedule
8081
- Flixbus Schedule
82+
- Foothill Schedule
8183
- Fresno County Schedule
8284
- Fresno Schedule
8385
- G Trans Schedule
@@ -92,7 +94,6 @@
9294
- Havasu Landing Ferry Schedule
9395
- Humboldt Schedule
9496
- Huntington Park Schedule
95-
- Imperial Valley Transit Schedule
9697
- Inglewood Schedule
9798
- Irvine CONNECT Schedule
9899
- Kern Schedule
@@ -114,7 +115,10 @@
114115
- Long Beach Schedule
115116
- Lynwood Schedule IPS
116117
- MV Shuttle Schedule
118+
- Madera County Connection Schedule
117119
- Madera Metro Schedule
120+
- Manteca Schedule
121+
- Mariposa Grove Shuttle Schedule
118122
- Maywood Schedule
119123
- Mendocino Schedule
120124
- Merced GMV Schedule
@@ -157,13 +161,12 @@
157161
- Santa Maria Schedule
158162
- Santa Ynez Mecatran Schedule
159163
- Siskiyou Schedule
160-
- South County Transit Link Schedule
161164
- South San Francisco Schedule
162165
- Spirit Bus Passio Schedule
163166
- StanRTA Schedule
164167
- Stanford Schedule
165168
- SunLine Avail Schedule
166-
- 'TART, North Lake Tahoe Schedule'
169+
- TART, North Lake Tahoe Schedule
167170
- TCRTA TripShot Schedule
168171
- Tahoe Transportation District GMV Schedule
169172
- Tahoe Transportation District Schedule
@@ -183,41 +186,64 @@
183186
- WeHo Schedule
184187
- YARTS Schedule
185188
- Yolobus Schedule
189+
- Yosemite Valley Shuttle Schedule
186190
- Yuba-Sutter Schedule
187191
- Yuma Schedule
188192
- Yurok Schedule
189193
- eTrans Schedule
190-
2025-02-12:
191-
- Bay Area 511 Muni Schedule
192-
- Foothill Schedule
193-
- Madera County Connection Schedule
194-
2025-01-15:
194+
195+
'2025-03-12':
196+
- Bay Area 511 Rio Vista Delta Breeze Schedule
197+
- Imperial Valley Transit Schedule
198+
- South County Transit Link Schedule
199+
200+
'2025-01-15':
195201
- Auburn Schedule
196202
- Golden Gate Park Shuttle Schedule
197-
2024-12-11:
198-
- Calabasas Schedule
203+
204+
'2024-12-11':
199205
- Huntington Schedule
200206
- La Puente Schedule
201207
- Roseville Schedule
202208
- Sierra Madre Schedule
203-
- Yosemite Valley Shuttle Schedule
204-
2024-11-13:
205-
- Mariposa Grove Shuttle Schedule
209+
210+
'2024-11-13':
206211
- San Clemente Trolley Schedule
207-
2024-10-16:
212+
213+
'2024-10-16':
208214
- Bay Area 511 Angel Island-Tiburon Ferry Schedule
209215
- Beaumont Pass Schedule
210216
- PresidiGo Schedule
211-
2024-09-18:
217+
218+
'2024-09-18':
212219
- DowneyLINK GMV Schedule
213-
2024-06-12:
220+
221+
'2024-06-12':
214222
- Anteater Express Schedule
215223
- Lynwood Schedule
216-
- Manteca Schedule
217-
2024-05-22:
224+
225+
'2024-05-22':
218226
- El Segundo Schedule
219227
- Redwood Coast Schedulel
220-
2024-03-13:
228+
229+
'2024-03-13':
221230
- Avalon Schedule
222-
2024-02-14:
231+
232+
'2024-02-14':
223233
- Rosemead Schedule
234+
235+
'2023-12-13':
236+
- DowneyLINK Schedule
237+
- Spirit Bus Schedule
238+
239+
'2023-11-15':
240+
- Mission Bay Schedule
241+
242+
'2023-08-15':
243+
- Blossom Express Schedule
244+
245+
'2023-06-14':
246+
- Tuolumne Schedule
247+
248+
'2023-03-15':
249+
- TIME GMV Schedule

gtfs_funnel/update_vars.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
apr2024_week + oct2024_week
1212
)
1313

14-
analysis_date_list = [rt_dates.DATES['mar2025']]
14+
analysis_date_list = [rt_dates.DATES['apr2025']]
1515

1616
GTFS_DATA_DICT = catalog_utils.get_catalog("gtfs_analytics_data")
1717

gtfs_funnel/vp_keep_usable.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,10 @@ def get_vp_direction_column(
201201
for analysis_date in analysis_date_list:
202202
start = datetime.datetime.now()
203203

204-
# pare_down_to_valid_trips(
205-
# analysis_date,
206-
# GTFS_DATA_DICT
207-
# )
204+
pare_down_to_valid_trips(
205+
analysis_date,
206+
GTFS_DATA_DICT
207+
)
208208

209209
merge_in_vp_direction(
210210
analysis_date,

high_quality_transit_areas/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ We provide the HQTA Stops dataset as a convienience for certain kinds of analysi
6464
* If the intersection was between 2 different operators (different agency names), `hqta_details = intersection_2_bus_routes_different_operators`.
6565
* If the intersection was between routes of the same operator, `hqta_details = intersection_2_bus_routes_same_operator`
6666
* A half-mile buffered dataset is provided for high quality transit areas. We recommend using the polygon dataset. To get the stops (points) that create these half mile polygons, we do also provide high quality transit stops.
67-
* `peak_trips`: This column should be interpreted as: *at least x trips per hour in the peak period*.
67+
* `avg_trips_per_peak_hr`: This column should be interpreted as: *at least x trips per hour in the peak period*.
6868
* If AM and PM values differ, the *lesser* value is reported.
69-
* Ex: 5 AM peak trips, 4 PM peak trips would show a value of `peak_trips = 4`.
69+
* Ex: 5 AM peak trips, 4 PM peak trips would show a value of `avg_trips_per_peak_hr = 4`.
7070

7171
[![hqta_methodology_mermaid](https://mermaid.ink/img/pako:eNqFkk1rwzAMhv-K8Ai5NNBLGWQw6FduY7CWnQxFjZXVkNhBVthK6X9fmqxry0h3sYX0SNjvq4PKvSGVqiRJtBMrJaXwWpODBQpCAvMprBldsAIr8XUAdAbefCMUtOuaouigHYB1VlLoQoBYdlRRnEK8xUDx6Dr7jmxxW1KIf_G2VLOtkPdzX3o-9T0sJ9kkm55bL8SavuRCjcfjv8jMsyEegkrraKgWKPfO3L4jyx6XsytGiMXeIEVRxH35eLra4xhF2mlXlP4z3yELrGdPPSFsWxGT5Bly3Eiv7IY7PX-IsMOaBpA7M8LJnfOIzql_gI3YigYoNVIVcYXWtKvRmaRVZ55WaRsaKrApRav2py2KjfjV3uUqFW5opJraoNDC4gdjdU6SseL5pd-2bumO3-XAyjk?type=png)](https://mermaid.live/edit#pako:eNqFkk1rwzAMhv-K8Ai5NNBLGWQw6FduY7CWnQxFjZXVkNhBVthK6X9fmqxry0h3sYX0SNjvq4PKvSGVqiRJtBMrJaXwWpODBQpCAvMprBldsAIr8XUAdAbefCMUtOuaouigHYB1VlLoQoBYdlRRnEK8xUDx6Dr7jmxxW1KIf_G2VLOtkPdzX3o-9T0sJ9kkm55bL8SavuRCjcfjv8jMsyEegkrraKgWKPfO3L4jyx6XsytGiMXeIEVRxH35eLra4xhF2mlXlP4z3yELrGdPPSFsWxGT5Bly3Eiv7IY7PX-IsMOaBpA7M8LJnfOIzql_gI3YigYoNVIVcYXWtKvRmaRVZ55WaRsaKrApRav2py2KjfjV3uUqFW5opJraoNDC4gdjdU6SseL5pd-2bumO3-XAyjk)
7272

high_quality_transit_areas/_utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def add_hqta_details(row) -> str:
1919
return "intersection_2_bus_routes_same_operator"
2020

2121
elif row.hqta_type == "hq_corridor_bus":
22-
if row.peak_trips >= 4:
22+
if row.avg_trips_per_peak_hr >= 4:
2323
return "corridor_frequent_stop"
2424
else:
2525
return "corridor_other_stop"

high_quality_transit_areas/assemble_hqta_points.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def combine_stops_by_hq_types(crs: str) -> gpd.GeoDataFrame:
4747
# Combine AM max and PM max into 1 column
4848
# if am_max_trips = 4 and pm_max_trips = 5, we'll choose 4.
4949
max_arrivals = max_arrivals.assign(
50-
peak_trips = max_arrivals[trip_count_cols].min(axis=1)
50+
avg_trips_per_peak_hr = max_arrivals[trip_count_cols].min(axis=1)
5151
).drop(columns = trip_count_cols)
5252

5353
hqta_points_combined = pd.concat([
@@ -62,12 +62,12 @@ def combine_stops_by_hq_types(crs: str) -> gpd.GeoDataFrame:
6262
max_arrivals,
6363
on = ["schedule_gtfs_dataset_key_primary", "stop_id"],
6464
how = "left"
65-
).fillna({"peak_trips": 0}).astype({"peak_trips": "int"})
65+
).fillna({"avg_trips_per_peak_hr": 0}).astype({"avg_trips_per_peak_hr": "int"})
6666

6767
keep_stop_cols = [
6868
"schedule_gtfs_dataset_key_primary", "schedule_gtfs_dataset_key_secondary",
6969
"stop_id", "geometry",
70-
"hqta_type", "peak_trips", "hqta_details"
70+
"hqta_type", "avg_trips_per_peak_hr", "hqta_details"
7171
]
7272

7373
with_stops = with_stops.assign(
@@ -164,7 +164,7 @@ def final_processing(gdf: gpd.GeoDataFrame) -> gpd.GeoDataFrame:
164164
# include these as stable IDs?
165165
"base64_url_primary", "base64_url_secondary",
166166
"org_id_primary", "org_id_secondary",
167-
"peak_trips",
167+
"avg_trips_per_peak_hr",
168168
"geometry"
169169
]
170170

high_quality_transit_areas/create_aggregate_stop_frequencies.py

+1
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ def stop_times_aggregation_max_by_stop(
321321
share_counts = {}
322322
multi_only_explode.groupby(['schedule_gtfs_dataset_key', 'stop_id']).apply(accumulate_share_count)
323323
qualify_dict = {key: share_counts[key] for key in share_counts.keys() if share_counts[key] >= SHARED_STOP_THRESHOLD}
324+
# print([key for key in qualify_dict.keys() if '42A_0__42B_0' in key]) # run to locate likely yolobus 42A/42B key, see update_vars
324325
# will error if key not present, check if situation still present and update key if needed
325326
for key in ROUTE_COLLINEARITY_KEYS_TO_DROP: qualify_dict.pop(key)
326327
feeds_to_filter = np.unique([key.split('__')[0] for key in qualify_dict.keys()])

high_quality_transit_areas/logs/hqta_processing.log

+18
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,21 @@
183183
2025-03-19 13:10:48.858 | INFO | __main__:<module>:175 - C3_create_bus_hqta_types 2025-03-12 execution time: 0:00:10.639468
184184
2025-03-19 13:11:23.842 | INFO | __main__:<module>:219 - D1_assemble_hqta_points 2025-03-12 execution time: 0:00:15.946026
185185
2025-03-19 13:11:53.645 | INFO | __main__:<module>:168 - D2_assemble_hqta_polygons 2025-03-12 execution time: 0:00:11.047354
186+
2025-04-17 14:56:29.519 | INFO | __main__:<module>:277 - A1_rail_ferry_brt_stops 2025-04-16 execution time: 0:00:18.848854
187+
2025-04-17 15:01:32.667 | INFO | __main__:<module>:248 - B1_create_hqta_segments execution time: 0:04:44.840995
188+
2025-04-17 15:13:43.818 | INFO | __main__:<module>:334 - B2_create_aggregate_stop_frequencies 2025-04-16 execution time: 0:02:04.596312
189+
2025-04-17 15:15:24.196 | INFO | __main__:<module>:326 - B3_sjoin_stops_to_segments 2025-04-16 execution time: 0:00:14.056602
190+
2025-04-17 15:15:46.773 | INFO | __main__:<module>:152 - C1_prep_pairwise_intersections 2025-04-16 execution time: 0:00:04.055116
191+
2025-04-17 15:16:14.560 | INFO | __main__:<module>:124 - C2_find_intersections 2025-04-16 execution time: 0:00:08.637362
192+
2025-04-17 15:16:49.131 | INFO | __main__:<module>:175 - C3_create_bus_hqta_types 2025-04-16 execution time: 0:00:15.915707
193+
2025-04-17 15:17:24.367 | INFO | __main__:<module>:219 - D1_assemble_hqta_points 2025-04-16 execution time: 0:00:16.177387
194+
2025-04-17 15:17:54.480 | INFO | __main__:<module>:168 - D2_assemble_hqta_polygons 2025-04-16 execution time: 0:00:11.924812
195+
2025-04-22 08:28:48.300 | INFO | __main__:<module>:277 - A1_rail_ferry_brt_stops 2025-04-16 execution time: 0:00:29.433506
196+
2025-04-22 08:35:15.914 | INFO | __main__:<module>:248 - B1_create_hqta_segments execution time: 0:05:46.207696
197+
2025-04-22 08:38:31.033 | INFO | __main__:<module>:334 - B2_create_aggregate_stop_frequencies 2025-04-16 execution time: 0:02:52.413163
198+
2025-04-22 08:39:21.737 | INFO | __main__:<module>:326 - B3_sjoin_stops_to_segments 2025-04-16 execution time: 0:00:15.566085
199+
2025-04-22 08:39:47.150 | INFO | __main__:<module>:152 - C1_prep_pairwise_intersections 2025-04-16 execution time: 0:00:04.430479
200+
2025-04-22 08:40:17.864 | INFO | __main__:<module>:124 - C2_find_intersections 2025-04-16 execution time: 0:00:09.437051
201+
2025-04-22 08:40:53.296 | INFO | __main__:<module>:175 - C3_create_bus_hqta_types 2025-04-16 execution time: 0:00:13.423910
202+
2025-04-22 08:41:32.679 | INFO | __main__:<module>:219 - D1_assemble_hqta_points 2025-04-16 execution time: 0:00:17.606480
203+
2025-04-22 08:42:09.189 | INFO | __main__:<module>:168 - D2_assemble_hqta_polygons 2025-04-16 execution time: 0:00:14.338260

high_quality_transit_areas/update_vars.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from shared_utils import rt_dates
22
import datetime as dt
33

4-
analysis_date = rt_dates.DATES["mar2025"]
4+
analysis_date = rt_dates.DATES["apr2025"]
55

66
GCS_FILE_PATH = ("gs://calitp-analytics-data/data-analyses/"
77
"high_quality_transit_areas/")
@@ -20,5 +20,4 @@
2020

2121
SHARED_STOP_THRESHOLD = 8 # current rec
2222
# Yolobus. Separate route_id, but same route in a CW and CCW loop, drop per rule to not compare same rt with itself
23-
ROUTE_COLLINEARITY_KEYS_TO_DROP = ['3c62ad6ee589d56eca915ce291a5df0a__42A_0__42B_0',
24-
'3c62ad6ee589d56eca915ce291a5df0a__42B_0__42A_0']
23+
ROUTE_COLLINEARITY_KEYS_TO_DROP = ['24956c9535f71f462472e2a1ceb5567c__42A_0__42B_0', '24956c9535f71f462472e2a1ceb5567c__42B_0__42A_0']

open_data/data_dictionary.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ tables:
105105
org_id_primary: *org_id
106106
org_id_secondary:
107107
definition: Organization identifier for the secondary agency
108-
peak_trips:
108+
avg_trips_per_peak_hr:
109109
definition: |-
110110
The number of AM and PM hourly trips. Where AM and PM peak trips differ, the lesser value is used.
111111

open_data/metadata.json

+1-1
Large diffs are not rendered by default.

open_data/open_data_utils.py

+1
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ def remove_internal_keys(df: gpd.GeoDataFrame) -> gpd.GeoDataFrame:
169169
"base64_u_1": "base64_url_secondary",
170170
"org_id_pri": "org_id_primary",
171171
"org_id_sec": "org_id_secondary",
172+
"avg_trips_": "avg_trips_per_peak_hr"
172173
}
173174

174175
RENAME_SPEED = {

open_data/update_vars.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from pathlib import Path
22
from shared_utils import catalog_utils, rt_dates
33

4-
analysis_date = rt_dates.DATES["mar2025"]
4+
analysis_date = rt_dates.DATES["apr2025"]
55

66
GTFS_DATA_DICT = catalog_utils.get_catalog("gtfs_analytics_data")
77

0 commit comments

Comments
 (0)