From 87e36048f3e75cd6194d5cff2c70b838ae267f52 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Fri, 15 Nov 2024 18:09:04 +0000 Subject: [PATCH 01/21] add nov2024 to rt_dates --- _shared_utils/shared_utils/rt_dates.py | 1 + 1 file changed, 1 insertion(+) diff --git a/_shared_utils/shared_utils/rt_dates.py b/_shared_utils/shared_utils/rt_dates.py index 9e3d48a19..3a9acf7f1 100644 --- a/_shared_utils/shared_utils/rt_dates.py +++ b/_shared_utils/shared_utils/rt_dates.py @@ -72,6 +72,7 @@ "oct2024e": "2024-10-19", "oct2024f": "2024-10-20", "oct2024g": "2024-10-21", # additional one-off to capture Amtrak in HQTA + "nov2024": "2024-11-13" } y2023_dates = [ From 804a1c6a05d7a51cbac9d051a567879aec157a16 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Fri, 15 Nov 2024 18:13:20 +0000 Subject: [PATCH 02/21] update all dates, but plan to hold hqta pending methodology changes --- gtfs_funnel/Makefile | 4 ++-- gtfs_funnel/update_vars.py | 4 ++-- high_quality_transit_areas/update_vars.py | 2 +- rt_scheduled_v_ran/scripts/update_vars.py | 4 ++-- rt_segment_speeds/segment_speed_utils/project_vars.py | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gtfs_funnel/Makefile b/gtfs_funnel/Makefile index cb4dc3b08..e978363a0 100644 --- a/gtfs_funnel/Makefile +++ b/gtfs_funnel/Makefile @@ -49,9 +49,9 @@ funnel_gtfs_single_day: all: make funnel_gtfs_single_day # update open_data/update_vars.py - #cd ../open_data/ && make create_gtfs_schedule_geospatial_open_data -f Makefile + cd ../open_data/ && make create_gtfs_schedule_geospatial_open_data -f Makefile # update high_quality_transit_areas/update_vars.py - #cd ../high_quality_transit_areas/ && make hqta_data -f Makefile + # cd ../high_quality_transit_areas/ && make hqta_data -f Makefile # update rt_segment_speeds/segment_speed_utils/project_vars.py cd ../rt_segment_speeds/scripts/ && make all_speeds_pipeline -f Makefile && cd ../../ # update rt_scheduled_v_ran/scripts/update_vars.py diff --git a/gtfs_funnel/update_vars.py b/gtfs_funnel/update_vars.py index c3e8085a2..3553d3441 100644 --- a/gtfs_funnel/update_vars.py +++ b/gtfs_funnel/update_vars.py @@ -12,8 +12,8 @@ ) -#analysis_date_list = [rt_dates.DATES["oct2024g"]] -analysis_date_list = all_dates +analysis_date_list = [rt_dates.DATES["nov2024"]] +# analysis_date_list = all_dates GTFS_DATA_DICT = catalog_utils.get_catalog("gtfs_analytics_data") COMPILED_CACHED_VIEWS = GTFS_DATA_DICT.gcs_paths.COMPILED_CACHED_VIEWS diff --git a/high_quality_transit_areas/update_vars.py b/high_quality_transit_areas/update_vars.py index 59c6d4df3..d5b4aab8b 100644 --- a/high_quality_transit_areas/update_vars.py +++ b/high_quality_transit_areas/update_vars.py @@ -1,7 +1,7 @@ from shared_utils import rt_dates import datetime as dt -analysis_date = rt_dates.DATES["oct2024g"] +analysis_date = rt_dates.DATES["nov2024"] GCS_FILE_PATH = ("gs://calitp-analytics-data/data-analyses/" "high_quality_transit_areas/") diff --git a/rt_scheduled_v_ran/scripts/update_vars.py b/rt_scheduled_v_ran/scripts/update_vars.py index 819477076..33fb02031 100644 --- a/rt_scheduled_v_ran/scripts/update_vars.py +++ b/rt_scheduled_v_ran/scripts/update_vars.py @@ -7,8 +7,8 @@ oct2024_week = rt_dates.get_week("oct2024", exclude_wed=True) -# analysis_date_list = [rt_dates.DATES["oct2024"]] -analysis_date_list = rt_dates.y2024_dates + rt_dates.y2023_dates +analysis_date_list = [rt_dates.DATES["nov2024"]] +# analysis_date_list = rt_dates.y2024_dates + rt_dates.y2023_dates GTFS_DATA_DICT = catalog_utils.get_catalog("gtfs_analytics_data") diff --git a/rt_segment_speeds/segment_speed_utils/project_vars.py b/rt_segment_speeds/segment_speed_utils/project_vars.py index fbafd03e3..4155dea71 100644 --- a/rt_segment_speeds/segment_speed_utils/project_vars.py +++ b/rt_segment_speeds/segment_speed_utils/project_vars.py @@ -11,7 +11,7 @@ SHARED_GCS = GTFS_DATA_DICT.gcs_paths.SHARED_GCS PUBLIC_GCS = GTFS_DATA_DICT.gcs_paths.PUBLIC_GCS -analysis_date = rt_dates.DATES["oct2024"] +analysis_date = rt_dates.DATES["nov2024"] oct2023_week = rt_dates.get_week("oct2023", exclude_wed=True) apr2023_week = rt_dates.get_week("apr2023", exclude_wed=True) From d6fcb9996484c6d005218e30bd1c09139e790d79 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Fri, 15 Nov 2024 23:08:14 +0000 Subject: [PATCH 03/21] run most of funnel, fix outdated sched v ran reference --- gtfs_funnel/logs/download_data.log | 16 ++++++++++++++++ gtfs_funnel/logs/download_vp_v2.log | 11 +++++++++++ gtfs_funnel/logs/vp_preprocessing.log | 11 +++++++++++ .../logs/rt_v_scheduled_trip_metrics.log | 3 +++ .../scripts/rt_v_scheduled_routes.py | 2 +- rt_segment_speeds/logs/avg_speeds.log | 7 +++++++ rt_segment_speeds/logs/cut_stop_segments.log | 2 ++ .../logs/interpolate_stop_arrival.log | 3 +++ rt_segment_speeds/logs/nearest_vp.log | 6 ++++++ .../logs/speeds_by_segment_trip.log | 3 +++ 10 files changed, 63 insertions(+), 1 deletion(-) diff --git a/gtfs_funnel/logs/download_data.log b/gtfs_funnel/logs/download_data.log index 64f38c92c..cecb4ab5e 100644 --- a/gtfs_funnel/logs/download_data.log +++ b/gtfs_funnel/logs/download_data.log @@ -662,3 +662,19 @@ 2024-10-22 09:28:21.872 | INFO | __main__:download_one_day:29 - # operators to run: 124 2024-10-22 09:28:21.874 | INFO | __main__:download_one_day:33 - *********** Download st data *********** 2024-10-22 09:29:35.160 | INFO | __main__:download_one_day:56 - execution time: 0:01:14.722086 +2024-11-15 10:15:33.976 | INFO | __main__:download_one_day:45 - Analysis date: 2024-11-13 +2024-11-15 10:15:36.271 | INFO | __main__:download_one_day:52 - # operators to run: 224 +2024-11-15 10:15:36.272 | INFO | __main__:download_one_day:56 - *********** Download trips data *********** +2024-11-15 10:16:09.561 | INFO | __main__:download_one_day:86 - execution time: 0:00:35.584842 +2024-11-15 10:16:26.099 | INFO | __main__:download_one_day:22 - Analysis date: 2024-11-13 +2024-11-15 10:16:28.371 | INFO | __main__:download_one_day:29 - # operators to run: 224 +2024-11-15 10:16:28.371 | INFO | __main__:download_one_day:33 - *********** Download stops data *********** +2024-11-15 10:16:38.819 | INFO | __main__:download_one_day:64 - execution time: 0:00:12.718796 +2024-11-15 10:16:54.858 | INFO | __main__:download_one_day:22 - Analysis date: 2024-11-13 +2024-11-15 10:16:56.781 | INFO | __main__:download_one_day:29 - # operators to run: 224 +2024-11-15 10:16:56.783 | INFO | __main__:download_one_day:33 - *********** Download routelines data *********** +2024-11-15 10:18:58.461 | INFO | __main__:download_one_day:63 - execution time: 0:02:03.602633 +2024-11-15 10:19:14.465 | INFO | __main__:download_one_day:21 - Analysis date: 2024-11-13 +2024-11-15 10:19:16.119 | INFO | __main__:download_one_day:29 - # operators to run: 194 +2024-11-15 10:19:16.120 | INFO | __main__:download_one_day:33 - *********** Download st data *********** +2024-11-15 10:21:15.285 | INFO | __main__:download_one_day:56 - execution time: 0:02:00.819066 diff --git a/gtfs_funnel/logs/download_vp_v2.log b/gtfs_funnel/logs/download_vp_v2.log index 4b62a9b50..dfb44b193 100644 --- a/gtfs_funnel/logs/download_vp_v2.log +++ b/gtfs_funnel/logs/download_vp_v2.log @@ -427,3 +427,14 @@ 2024-10-22 10:27:47.667 | INFO | __main__::112 - export concatenated vp: 0:02:41.262615 2024-10-22 10:30:15.548 | INFO | __main__::134 - remove batched parquets 2024-10-22 10:30:15.548 | INFO | __main__::137 - execution time: 0:05:14.125552 +2024-11-15 10:21:40.586 | INFO | __main__::148 - Analysis date: 2024-11-13 +2024-11-15 10:24:01.283 | INFO | __main__:loop_through_batches_and_download_vp:111 - exported batch 0 to GCS: 0:02:20.696810 +2024-11-15 10:25:15.067 | INFO | __main__:loop_through_batches_and_download_vp:111 - exported batch 1 to GCS: 0:01:13.782383 +2024-11-15 10:29:29.580 | INFO | __main__:loop_through_batches_and_download_vp:111 - exported batch 2 to GCS: 0:04:14.512918 +2024-11-15 10:31:30.103 | INFO | __main__:loop_through_batches_and_download_vp:111 - exported batch 3 to GCS: 0:02:00.521885 +2024-11-15 10:31:30.103 | INFO | __main__::155 - execution time: 0:09:49.516857 +2024-11-15 10:31:47.323 | INFO | __main__::97 - Analysis date: 2024-11-13 +2024-11-15 10:31:56.634 | INFO | __main__::105 - concat and filter batched data: 0:00:09.310511 +2024-11-15 10:35:51.779 | INFO | __main__::112 - export concatenated vp: 0:03:55.144496 +2024-11-15 10:39:51.367 | INFO | __main__::134 - remove batched parquets +2024-11-15 10:39:51.367 | INFO | __main__::137 - execution time: 0:08:04.043473 diff --git a/gtfs_funnel/logs/vp_preprocessing.log b/gtfs_funnel/logs/vp_preprocessing.log index b8994bba6..e21eb281b 100644 --- a/gtfs_funnel/logs/vp_preprocessing.log +++ b/gtfs_funnel/logs/vp_preprocessing.log @@ -288,3 +288,14 @@ 2024-10-22 12:45:21.414 | INFO | __main__::128 - 2024-10-19: prepare vp to use in nearest neighbor: 0:07:48.962111 2024-10-22 12:48:42.893 | INFO | __main__::120 - 2024-10-20: condense vp for trip 0:03:21.478021 2024-10-22 12:55:43.439 | INFO | __main__::128 - 2024-10-20: prepare vp to use in nearest neighbor: 0:07:00.545450 +2024-11-15 10:49:47.825 | INFO | __main__::169 - 2024-11-13: pare down vp: 0:02:17.184060 +2024-11-15 10:54:47.871 | INFO | __main__:attach_prior_vp_add_direction:90 - persist vp gddf: 0:04:43.482836 +2024-11-15 10:58:58.894 | INFO | __main__:attach_prior_vp_add_direction:122 - np vectorize arrays for direction: 0:04:11.022869 +2024-11-15 10:59:06.660 | INFO | __main__::194 - 2024-11-13: export vp direction: 0:09:02.271419 +2024-11-15 11:00:32.166 | INFO | __main__::200 - 2024-11-13: export usable vp with direction: 0:01:25.506546 +2024-11-15 11:00:32.167 | INFO | __main__::203 - 2024-11-13: vp_direction script execution time: 0:10:27.777965 +2024-11-15 11:05:58.601 | INFO | __main__::213 - compute dwell df: 0:04:50.016006 +2024-11-15 11:07:16.369 | INFO | __main__::235 - merge with original and export: 0:01:17.768135 +2024-11-15 11:07:16.370 | INFO | __main__::236 - vp with dwell time 2024-11-13: 0:06:07.784141 +2024-11-15 11:13:16.502 | INFO | __main__::121 - 2024-11-13: condense vp for trip 0:05:43.170466 +2024-11-15 11:25:18.878 | INFO | __main__::129 - 2024-11-13: prepare vp to use in nearest neighbor: 0:12:02.376671 diff --git a/rt_scheduled_v_ran/logs/rt_v_scheduled_trip_metrics.log b/rt_scheduled_v_ran/logs/rt_v_scheduled_trip_metrics.log index 77c3c53c9..58d3d9d78 100644 --- a/rt_scheduled_v_ran/logs/rt_v_scheduled_trip_metrics.log +++ b/rt_scheduled_v_ran/logs/rt_v_scheduled_trip_metrics.log @@ -474,3 +474,6 @@ 2024-10-23 09:33:58.113 | INFO | __main__:rt_schedule_trip_metrics:280 - tabular trip metrics 2024-10-20: 0:01:37.843162 2024-10-23 09:48:13.016 | INFO | __main__:rt_schedule_trip_metrics:285 - spatial trip metrics 2024-10-20: 0:14:14.902337 2024-10-23 09:49:14.569 | INFO | __main__:rt_schedule_trip_metrics:333 - Total run time for metrics on 2024-10-20: 0:16:54.299214 +2024-11-15 14:09:06.185 | INFO | __main__:rt_schedule_trip_metrics:280 - tabular trip metrics 2024-11-13: 0:02:58.980377 +2024-11-15 14:33:56.434 | INFO | __main__:rt_schedule_trip_metrics:285 - spatial trip metrics 2024-11-13: 0:24:50.248289 +2024-11-15 14:35:23.497 | INFO | __main__:rt_schedule_trip_metrics:333 - Total run time for metrics on 2024-11-13: 0:29:16.291628 diff --git a/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py b/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py index b60ed484a..92edf36a7 100644 --- a/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py +++ b/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py @@ -8,8 +8,8 @@ from loguru import logger from segment_speed_utils import gtfs_schedule_wrangling, metrics -from segment_speed_utils.time_series_utils import ROUTE_DIR_COLS from update_vars import RT_SCHED_GCS, GTFS_DATA_DICT +ROUTE_DIR_COLS = GTFS_DATA_DICT["stop_segments"]["route_dir_cols"] def average_rt_trip_times( df: pd.DataFrame diff --git a/rt_segment_speeds/logs/avg_speeds.log b/rt_segment_speeds/logs/avg_speeds.log index f2447451f..34cc0a8d8 100644 --- a/rt_segment_speeds/logs/avg_speeds.log +++ b/rt_segment_speeds/logs/avg_speeds.log @@ -543,3 +543,10 @@ 2024-11-04 15:43:06.434 | INFO | average_segment_speeds:segment_averages_detail:246 - speedmap_segments detailed segment averaging for ['2024-10-16'] execution time: 0:06:16.711909 2024-11-04 15:48:26.324 | INFO | average_segment_speeds:segment_averages:182 - speedmap_segments segment averaging for ['2024-10-16'] execution time: 0:05:19.708023 2024-11-04 15:53:12.740 | INFO | average_segment_speeds:segment_averages:182 - speedmap_segments segment averaging for ['2024-10-16'] execution time: 0:04:46.258219 +2024-11-15 12:50:50.729 | INFO | __main__:segment_averages:183 - stop_segments segment averaging for ['2024-11-13'] execution time: 0:03:29.500770 +2024-11-15 12:55:21.283 | INFO | __main__:segment_averages:183 - stop_segments segment averaging for ['2024-11-13'] execution time: 0:04:30.418474 +2024-11-15 13:37:00.465 | INFO | __main__:summary_average_speeds:120 - trip avg 0:00:15.983860 +2024-11-15 13:37:14.680 | INFO | __main__:summary_average_speeds:155 - rt_stop_times summary speed averaging for ['2024-11-13'] execution time: 0:00:30.199600 +2024-11-15 13:55:26.453 | INFO | average_segment_speeds:segment_averages_detail:247 - speedmap_segments detailed segment averaging for ['2024-11-13'] execution time: 0:06:13.137347 +2024-11-15 14:01:01.468 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:05:34.862080 +2024-11-15 14:05:19.207 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:04:17.568282 diff --git a/rt_segment_speeds/logs/cut_stop_segments.log b/rt_segment_speeds/logs/cut_stop_segments.log index 0e665d705..d183cd547 100644 --- a/rt_segment_speeds/logs/cut_stop_segments.log +++ b/rt_segment_speeds/logs/cut_stop_segments.log @@ -59,3 +59,5 @@ 2024-10-22 14:47:12.202 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-10-18: 0:05:11.757205 2024-10-22 14:50:26.774 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-10-19: 0:03:04.110946 2024-10-22 14:53:23.396 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-10-20: 0:02:47.476220 +2024-11-15 11:58:50.588 | INFO | __main__::155 - cut segments 2024-11-13: 0:23:35.849980 +2024-11-15 12:05:36.298 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-11-13: 0:05:14.586933 diff --git a/rt_segment_speeds/logs/interpolate_stop_arrival.log b/rt_segment_speeds/logs/interpolate_stop_arrival.log index 64cb738f2..bc97b3deb 100644 --- a/rt_segment_speeds/logs/interpolate_stop_arrival.log +++ b/rt_segment_speeds/logs/interpolate_stop_arrival.log @@ -121,3 +121,6 @@ 2024-10-22 21:03:12.185 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for speedmap_segments 2024-10-18: 2024-10-18: 0:02:48.084217 2024-10-22 21:04:55.332 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for speedmap_segments 2024-10-19: 2024-10-19: 0:01:43.138507 2024-10-22 21:06:19.904 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for speedmap_segments 2024-10-20: 2024-10-20: 0:01:24.564351 +2024-11-15 12:44:55.085 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for stop_segments 2024-11-13: 2024-11-13: 0:15:15.789486 +2024-11-15 13:34:38.198 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for rt_stop_times 2024-11-13: 2024-11-13: 0:15:41.682831 +2024-11-15 13:46:49.459 | INFO | interpolate_stop_arrival:interpolate_stop_arrivals:279 - interpolate arrivals for speedmap_segments 2024-11-13: 2024-11-13: 0:03:04.062272 diff --git a/rt_segment_speeds/logs/nearest_vp.log b/rt_segment_speeds/logs/nearest_vp.log index e36fd980b..8cb6891eb 100644 --- a/rt_segment_speeds/logs/nearest_vp.log +++ b/rt_segment_speeds/logs/nearest_vp.log @@ -246,3 +246,9 @@ 2024-10-22 20:53:22.413 | INFO | vp_around_stops:filter_to_nearest_two_vp:247 - nearest 2 vp for speedmap_segments 2024-10-18: 0:03:23.070112 2024-10-22 20:55:37.844 | INFO | vp_around_stops:filter_to_nearest_two_vp:247 - nearest 2 vp for speedmap_segments 2024-10-19: 0:02:15.416186 2024-10-22 20:57:31.364 | INFO | vp_around_stops:filter_to_nearest_two_vp:247 - nearest 2 vp for speedmap_segments 2024-10-20: 0:01:53.510151 +2024-11-15 12:19:02.768 | INFO | nearest_vp_to_stop:nearest_neighbor_for_stop:178 - nearest neighbor for stop_segments 2024-11-13: 0:13:06.834666 +2024-11-15 12:29:39.239 | INFO | vp_around_stops:filter_to_nearest_two_vp:248 - nearest 2 vp for stop_segments 2024-11-13: 0:10:34.299696 +2024-11-15 13:08:13.917 | INFO | nearest_vp_to_stop:nearest_neighbor_for_stop:178 - nearest neighbor for rt_stop_times 2024-11-13: 0:12:35.631290 +2024-11-15 13:18:56.444 | INFO | vp_around_stops:filter_to_nearest_two_vp:248 - nearest 2 vp for rt_stop_times 2024-11-13: 0:10:40.446083 +2024-11-15 13:40:07.685 | INFO | nearest_vp_to_stop:nearest_neighbor_for_stop:178 - nearest neighbor for speedmap_segments 2024-11-13: 0:02:36.767174 +2024-11-15 13:43:45.362 | INFO | vp_around_stops:filter_to_nearest_two_vp:248 - nearest 2 vp for speedmap_segments 2024-11-13: 0:03:37.215365 diff --git a/rt_segment_speeds/logs/speeds_by_segment_trip.log b/rt_segment_speeds/logs/speeds_by_segment_trip.log index 4a66bf111..faa8c3668 100644 --- a/rt_segment_speeds/logs/speeds_by_segment_trip.log +++ b/rt_segment_speeds/logs/speeds_by_segment_trip.log @@ -133,3 +133,6 @@ 2024-10-22 21:10:47.529 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for speedmap_segments 2024-10-18: 0:01:59.334388 2024-10-22 21:12:03.978 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for speedmap_segments 2024-10-19: 0:01:16.444248 2024-10-22 21:13:10.027 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for speedmap_segments 2024-10-20: 0:01:06.043873 +2024-11-15 12:46:42.620 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for stop_segments 2024-11-13: 0:01:47.440769 +2024-11-15 13:36:26.491 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for rt_stop_times 2024-11-13: 0:01:48.212485 +2024-11-15 13:48:56.132 | INFO | stop_arrivals_to_speed:calculate_speed_from_stop_arrivals:176 - speeds by segment for speedmap_segments 2024-11-13: 0:01:56.171526 From 098052d8e9b2ab33fb4699e3234e5bd477bc1c81 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Fri, 15 Nov 2024 23:10:18 +0000 Subject: [PATCH 04/21] rm deprecated itp_id and caltrans_district (dim orgs), replace w/ caltrans district from dim_county_geography --- gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py b/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py index 0518c22c8..92e37be0b 100644 --- a/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py +++ b/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py @@ -40,9 +40,8 @@ def create_gtfs_dataset_key_to_organization_crosswalk( analysis_date, quartet_data = "schedule", dim_gtfs_dataset_cols = ["key", "source_record_id", "base64_url"], - dim_organization_cols = ["source_record_id", "name", - "itp_id", "caltrans_district", - "ntd_id_2022"] + dim_organization_cols = ["source_record_id", "name", "ntd_id_2022"] + dim_county_geography_cols= ["caltrans_district"], # this is where caltrans_district appears by default ) df_with_org = pd.merge( From cbcb59353b44000ea6b93563a93ff931463d1d01 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Fri, 15 Nov 2024 23:24:57 +0000 Subject: [PATCH 05/21] fix typo --- ...crosswalk_gtfs_dataset_key_to_organization.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py b/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py index 92e37be0b..709221f68 100644 --- a/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py +++ b/gtfs_funnel/crosswalk_gtfs_dataset_key_to_organization.py @@ -40,7 +40,7 @@ def create_gtfs_dataset_key_to_organization_crosswalk( analysis_date, quartet_data = "schedule", dim_gtfs_dataset_cols = ["key", "source_record_id", "base64_url"], - dim_organization_cols = ["source_record_id", "name", "ntd_id_2022"] + dim_organization_cols = ["source_record_id", "name", "ntd_id_2022"], dim_county_geography_cols= ["caltrans_district"], # this is where caltrans_district appears by default ) @@ -50,19 +50,7 @@ def create_gtfs_dataset_key_to_organization_crosswalk( on = "schedule_gtfs_dataset_key", how = "inner" ) - - # Fill this in manually. - df_with_org.loc[ - (df_with_org.organization_name == "City of Banning"), "caltrans_district" -] = "08 - San Bernardino" - - df_with_org.loc[ - ( - df_with_org.organization_name - == "Dumbarton Bridge Regional Operations Consortium" - ), - "caltrans_district", -] = "04 - Oakland" + return df_with_org def load_ntd(year: int) -> pd.DataFrame: From d4289bd0ed2cbfdfda861611b64beaa402bb3128 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 00:50:27 +0000 Subject: [PATCH 06/21] debug speedmap district, rerun average speeds after crosswalk change --- ca_transit_speed_maps/01_new_speedmaps.ipynb | 32 +++++++++++++++----- ca_transit_speed_maps/speedmap_utils.py | 1 + ca_transit_speed_maps/update_vars_index.py | 2 +- rt_segment_speeds/logs/avg_speeds.log | 7 +++++ 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/ca_transit_speed_maps/01_new_speedmaps.ipynb b/ca_transit_speed_maps/01_new_speedmaps.ipynb index 45edcaf82..b2d1e25f2 100644 --- a/ca_transit_speed_maps/01_new_speedmaps.ipynb +++ b/ca_transit_speed_maps/01_new_speedmaps.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "46898b5c-b5cc-4096-ab68-8c3e42fab870", "metadata": {}, "outputs": [], @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "9f15ed6a-5ab7-4f57-9695-3f762781b74c", "metadata": { "tags": [ @@ -28,12 +28,12 @@ "outputs": [], "source": [ "## parameters cell\n", - "organization_source_record_id = 'recf7l9tozKXOmqqZ'" + "organization_source_record_id = 'recvEBkSBc7UxlarC'" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "23f682c8-187e-4586-a0b2-00dd7569e0c4", "metadata": {}, "outputs": [], @@ -44,10 +44,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "11303bd3-01bf-4af4-b0fa-63dbc375bd48", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"human_date\": \"November 13 2024 (Wednesday)\"}\n" + ] + } + ], "source": [ "%%capture_parameters\n", "human_date = ANALYSIS_DATE.strftime('%B %d %Y (%A)')\n", @@ -56,10 +64,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "649d7a14-8b01-4a84-afee-092bd3febbb8", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"organization_name\": \"Capitol Corridor Joint Powers Authority\"}\n" + ] + } + ], "source": [ "%%capture_parameters\n", "organization_name = speedmap_segs.organization_name.iloc[0]\n", diff --git a/ca_transit_speed_maps/speedmap_utils.py b/ca_transit_speed_maps/speedmap_utils.py index 82142a249..b0296919a 100644 --- a/ca_transit_speed_maps/speedmap_utils.py +++ b/ca_transit_speed_maps/speedmap_utils.py @@ -16,6 +16,7 @@ def read_segments_shn(organization_source_record_id: str) -> (gpd.GeoDataFrame, ''' path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' speedmap_segs = gpd.read_parquet(path, filters=[['organization_source_record_id', '==', organization_source_record_id]]) # aggregated + assert (speedmap_segs >> select(-_.route_short_name)).isna().any().any() == False, 'no cols besides route_short_name should be nan' speedmap_segs = prepare_segment_gdf(speedmap_segs) shn = gpd.read_parquet(rt_utils.SHN_PATH) this_shn = shn >> filter(_.District.isin([int(x[:2]) for x in speedmap_segs.caltrans_district.unique()])) diff --git a/ca_transit_speed_maps/update_vars_index.py b/ca_transit_speed_maps/update_vars_index.py index 49f8459ce..6a94b5184 100644 --- a/ca_transit_speed_maps/update_vars_index.py +++ b/ca_transit_speed_maps/update_vars_index.py @@ -18,7 +18,7 @@ catalog = catalog_utils.get_catalog('gtfs_analytics_data') -ANALYSIS_DATE = dt.date.fromisoformat(rt_dates.DATES['oct2024']) +ANALYSIS_DATE = dt.date.fromisoformat(rt_dates.DATES['nov2024']) PROGRESS_PATH = f'./_rt_progress_{ANALYSIS_DATE}.parquet' GEOJSON_SUBFOLDER = f'segment_speeds_{ANALYSIS_DATE}/' diff --git a/rt_segment_speeds/logs/avg_speeds.log b/rt_segment_speeds/logs/avg_speeds.log index 34cc0a8d8..8b0088950 100644 --- a/rt_segment_speeds/logs/avg_speeds.log +++ b/rt_segment_speeds/logs/avg_speeds.log @@ -550,3 +550,10 @@ 2024-11-15 13:55:26.453 | INFO | average_segment_speeds:segment_averages_detail:247 - speedmap_segments detailed segment averaging for ['2024-11-13'] execution time: 0:06:13.137347 2024-11-15 14:01:01.468 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:05:34.862080 2024-11-15 14:05:19.207 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:04:17.568282 +2024-11-15 16:29:02.896 | INFO | average_segment_speeds:segment_averages_detail:247 - speedmap_segments detailed segment averaging for ['2024-11-13'] execution time: 0:06:29.709300 +2024-11-15 16:34:45.393 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:05:42.338355 +2024-11-15 16:39:12.926 | INFO | average_segment_speeds:segment_averages:183 - speedmap_segments segment averaging for ['2024-11-13'] execution time: 0:04:27.339108 +2024-11-15 16:43:08.855 | INFO | __main__:segment_averages:183 - stop_segments segment averaging for ['2024-11-13'] execution time: 0:03:27.893142 +2024-11-15 16:47:26.586 | INFO | __main__:segment_averages:183 - stop_segments segment averaging for ['2024-11-13'] execution time: 0:04:17.582380 +2024-11-15 16:47:58.691 | INFO | __main__:summary_average_speeds:120 - trip avg 0:00:15.263016 +2024-11-15 16:48:12.028 | INFO | __main__:summary_average_speeds:155 - rt_stop_times summary speed averaging for ['2024-11-13'] execution time: 0:00:28.600051 From 79a48ea56cca853c0c3a231b85b544340e45db05 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 01:25:00 +0000 Subject: [PATCH 07/21] be resilient to missing times of day --- ca_transit_speed_maps/01_new_speedmaps.ipynb | 54 +++++++------------- ca_transit_speed_maps/speedmap_utils.py | 2 + 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/ca_transit_speed_maps/01_new_speedmaps.ipynb b/ca_transit_speed_maps/01_new_speedmaps.ipynb index b2d1e25f2..581042648 100644 --- a/ca_transit_speed_maps/01_new_speedmaps.ipynb +++ b/ca_transit_speed_maps/01_new_speedmaps.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "46898b5c-b5cc-4096-ab68-8c3e42fab870", "metadata": {}, "outputs": [], @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "9f15ed6a-5ab7-4f57-9695-3f762781b74c", "metadata": { "tags": [ @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "23f682c8-187e-4586-a0b2-00dd7569e0c4", "metadata": {}, "outputs": [], @@ -44,18 +44,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "11303bd3-01bf-4af4-b0fa-63dbc375bd48", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"human_date\": \"November 13 2024 (Wednesday)\"}\n" - ] - } - ], + "outputs": [], "source": [ "%%capture_parameters\n", "human_date = ANALYSIS_DATE.strftime('%B %d %Y (%A)')\n", @@ -64,18 +56,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "649d7a14-8b01-4a84-afee-092bd3febbb8", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"organization_name\": \"Capitol Corridor Joint Powers Authority\"}\n" - ] - } - ], + "outputs": [], "source": [ "%%capture_parameters\n", "organization_name = speedmap_segs.organization_name.iloc[0]\n", @@ -144,7 +128,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -154,7 +138,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { @@ -187,7 +171,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -197,7 +181,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { @@ -237,7 +221,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -247,7 +231,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { @@ -280,7 +264,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -290,7 +274,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { @@ -330,7 +314,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -340,7 +324,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { @@ -373,7 +357,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.render_spa_link(link)" + "if link: speedmap_utils.render_spa_link(link)" ] }, { @@ -383,7 +367,7 @@ "metadata": {}, "outputs": [], "source": [ - "speedmap_utils.display_spa_map(link)" + "if link: speedmap_utils.display_spa_map(link)" ] }, { diff --git a/ca_transit_speed_maps/speedmap_utils.py b/ca_transit_speed_maps/speedmap_utils.py index b0296919a..5fb5bcc9b 100644 --- a/ca_transit_speed_maps/speedmap_utils.py +++ b/ca_transit_speed_maps/speedmap_utils.py @@ -73,6 +73,8 @@ def map_time_period(district_gdf: gpd.GeoDataFrame, speedmap_segs: gpd.GeoDataFr ''' time_of_day_lower = time_of_day.lower().replace(' ', '_') speedmap_segs = speedmap_segs >> filter(_.time_of_day == time_of_day) + if speedmap_segs.empty: + return None color_col = {'new_speedmap': 'p20_mph', 'new_speed_variation': 'fast_slow_ratio'}[map_type] shn_state = map_shn(district_gdf) display_date = analysis_date.strftime('%B %d %Y (%A)') From b174853ac2faed58e1fa1bf0825355dc38f1c13f Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 04:46:41 +0000 Subject: [PATCH 08/21] deploy new speedmaps, but will roll back for now (some incredible speeds) --- ca_transit_speed_maps/speedmaps.ipynb | 345 +++++++++++++++--- portfolio/rt/README.md | 23 +- ...dmaps__district_01-eureka__itp_id_18.ipynb | 3 - ...maps__district_01-eureka__itp_id_108.ipynb | 3 - ...maps__district_01-eureka__itp_id_135.ipynb | 3 - ...maps__district_01-eureka__itp_id_159.ipynb | 3 - ...aps__district_02-redding__itp_id_259.ipynb | 3 - ...__district_03-marysville__itp_id_105.ipynb | 3 - ...__district_03-marysville__itp_id_331.ipynb | 3 - ...__district_03-marysville__itp_id_372.ipynb | 3 - ...dmaps__district_04-oakland__itp_id_4.ipynb | 3 - ...maps__district_04-oakland__itp_id_56.ipynb | 3 - ...maps__district_04-oakland__itp_id_61.ipynb | 3 - ...aps__district_04-oakland__itp_id_282.ipynb | 3 - ...aps__district_04-oakland__itp_id_110.ipynb | 3 - ...aps__district_04-oakland__itp_id_247.ipynb | 3 - ...aps__district_04-oakland__itp_id_301.ipynb | 3 - ...aps__district_04-oakland__itp_id_350.ipynb | 3 - ...maps__district_04-oakland__itp_id_70.ipynb | 3 - ...aps__district_04-oakland__itp_id_336.ipynb | 3 - ...aps__district_04-oakland__itp_id_127.ipynb | 3 - ...aps__district_04-oakland__itp_id_194.ipynb | 3 - ...aps__district_04-oakland__itp_id_218.ipynb | 3 - ...aps__district_04-oakland__itp_id_246.ipynb | 3 - ...aps__district_04-oakland__itp_id_257.ipynb | 3 - ...aps__district_04-oakland__itp_id_280.ipynb | 3 - ...aps__district_04-oakland__itp_id_290.ipynb | 3 - ...aps__district_04-oakland__itp_id_294.ipynb | 3 - ...aps__district_04-oakland__itp_id_310.ipynb | 3 - ...aps__district_04-oakland__itp_id_381.ipynb | 3 - ...aps__district_04-oakland__itp_id_314.ipynb | 3 - ...aps__district_04-oakland__itp_id_315.ipynb | 3 - ...maps__district_04-oakland__itp_id_33.ipynb | 3 - ...aps__district_04-oakland__itp_id_368.ipynb | 3 - ...trict_05-san-luis-obispo__itp_id_298.ipynb | 3 - ...trict_05-san-luis-obispo__itp_id_312.ipynb | 3 - ...trict_05-san-luis-obispo__itp_id_208.ipynb | 3 - ...trict_05-san-luis-obispo__itp_id_289.ipynb | 3 - ...trict_05-san-luis-obispo__itp_id_296.ipynb | 3 - ...maps__district_06-fresno__itp_id_116.ipynb | 3 - ...maps__district_06-fresno__itp_id_361.ipynb | 3 - ...maps__district_06-fresno__itp_id_126.ipynb | 3 - ...maps__district_06-fresno__itp_id_148.ipynb | 3 - ...maps__district_06-fresno__itp_id_188.ipynb | 3 - ...__district_07-los-angeles__itp_id_16.ipynb | 3 - ...__district_07-los-angeles__itp_id_45.ipynb | 3 - ...__district_07-los-angeles__itp_id_54.ipynb | 3 - ...__district_07-los-angeles__itp_id_87.ipynb | 3 - ...__district_07-los-angeles__itp_id_97.ipynb | 3 - ..._district_07-los-angeles__itp_id_183.ipynb | 3 - ..._district_07-los-angeles__itp_id_210.ipynb | 3 - ..._district_07-los-angeles__itp_id_228.ipynb | 3 - ..._district_07-los-angeles__itp_id_231.ipynb | 3 - ..._district_07-los-angeles__itp_id_243.ipynb | 3 - ..._district_07-los-angeles__itp_id_260.ipynb | 3 - ..._district_07-los-angeles__itp_id_295.ipynb | 3 - ..._district_07-los-angeles__itp_id_300.ipynb | 3 - ..._district_07-los-angeles__itp_id_308.ipynb | 3 - ..._district_07-los-angeles__itp_id_337.ipynb | 3 - ..._district_07-los-angeles__itp_id_339.ipynb | 3 - ..._district_07-los-angeles__itp_id_112.ipynb | 3 - ..._district_07-los-angeles__itp_id_123.ipynb | 3 - ..._district_07-los-angeles__itp_id_182.ipynb | 3 - ..._district_07-los-angeles__itp_id_380.ipynb | 3 - ...istrict_08-san-bernardino__itp_id_34.ipynb | 3 - ...strict_08-san-bernardino__itp_id_214.ipynb | 3 - ...strict_08-san-bernardino__itp_id_232.ipynb | 3 - ...strict_08-san-bernardino__itp_id_238.ipynb | 3 - ...strict_08-san-bernardino__itp_id_269.ipynb | 3 - ...strict_08-san-bernardino__itp_id_360.ipynb | 3 - ...dmaps__district_09-bishop__itp_id_99.ipynb | 3 - ...ps__district_10-stockton__itp_id_107.ipynb | 3 - ...ps__district_10-stockton__itp_id_349.ipynb | 3 - ...aps__district_10-stockton__itp_id_10.ipynb | 3 - ...ps__district_10-stockton__itp_id_284.ipynb | 3 - ...ps__district_10-stockton__itp_id_484.ipynb | 3 - ...s__district_11-san-diego__itp_id_226.ipynb | 3 - ...s__district_11-san-diego__itp_id_277.ipynb | 3 - ...s__district_11-san-diego__itp_id_278.ipynb | 3 - ...maps__district_12-irvine__itp_id_235.ipynb | 3 - portfolio/sites/rt.yml | 8 +- 81 files changed, 313 insertions(+), 297 deletions(-) delete mode 100644 portfolio/rt/district_01-eureka/00__speedmaps__district_01-eureka__itp_id_18.ipynb delete mode 100644 portfolio/rt/district_01-eureka/01__speedmaps__district_01-eureka__itp_id_108.ipynb delete mode 100644 portfolio/rt/district_01-eureka/02__speedmaps__district_01-eureka__itp_id_135.ipynb delete mode 100644 portfolio/rt/district_01-eureka/03__speedmaps__district_01-eureka__itp_id_159.ipynb delete mode 100644 portfolio/rt/district_02-redding/00__speedmaps__district_02-redding__itp_id_259.ipynb delete mode 100644 portfolio/rt/district_03-marysville/00__speedmaps__district_03-marysville__itp_id_105.ipynb delete mode 100644 portfolio/rt/district_03-marysville/01__speedmaps__district_03-marysville__itp_id_331.ipynb delete mode 100644 portfolio/rt/district_03-marysville/02__speedmaps__district_03-marysville__itp_id_372.ipynb delete mode 100644 portfolio/rt/district_04-oakland/00__speedmaps__district_04-oakland__itp_id_4.ipynb delete mode 100644 portfolio/rt/district_04-oakland/01__speedmaps__district_04-oakland__itp_id_56.ipynb delete mode 100644 portfolio/rt/district_04-oakland/02__speedmaps__district_04-oakland__itp_id_61.ipynb delete mode 100644 portfolio/rt/district_04-oakland/03__speedmaps__district_04-oakland__itp_id_282.ipynb delete mode 100644 portfolio/rt/district_04-oakland/04__speedmaps__district_04-oakland__itp_id_110.ipynb delete mode 100644 portfolio/rt/district_04-oakland/05__speedmaps__district_04-oakland__itp_id_247.ipynb delete mode 100644 portfolio/rt/district_04-oakland/06__speedmaps__district_04-oakland__itp_id_301.ipynb delete mode 100644 portfolio/rt/district_04-oakland/07__speedmaps__district_04-oakland__itp_id_350.ipynb delete mode 100644 portfolio/rt/district_04-oakland/08__speedmaps__district_04-oakland__itp_id_70.ipynb delete mode 100644 portfolio/rt/district_04-oakland/09__speedmaps__district_04-oakland__itp_id_336.ipynb delete mode 100644 portfolio/rt/district_04-oakland/10__speedmaps__district_04-oakland__itp_id_127.ipynb delete mode 100644 portfolio/rt/district_04-oakland/11__speedmaps__district_04-oakland__itp_id_194.ipynb delete mode 100644 portfolio/rt/district_04-oakland/12__speedmaps__district_04-oakland__itp_id_218.ipynb delete mode 100644 portfolio/rt/district_04-oakland/13__speedmaps__district_04-oakland__itp_id_246.ipynb delete mode 100644 portfolio/rt/district_04-oakland/14__speedmaps__district_04-oakland__itp_id_257.ipynb delete mode 100644 portfolio/rt/district_04-oakland/15__speedmaps__district_04-oakland__itp_id_280.ipynb delete mode 100644 portfolio/rt/district_04-oakland/16__speedmaps__district_04-oakland__itp_id_290.ipynb delete mode 100644 portfolio/rt/district_04-oakland/17__speedmaps__district_04-oakland__itp_id_294.ipynb delete mode 100644 portfolio/rt/district_04-oakland/18__speedmaps__district_04-oakland__itp_id_310.ipynb delete mode 100644 portfolio/rt/district_04-oakland/19__speedmaps__district_04-oakland__itp_id_381.ipynb delete mode 100644 portfolio/rt/district_04-oakland/20__speedmaps__district_04-oakland__itp_id_314.ipynb delete mode 100644 portfolio/rt/district_04-oakland/21__speedmaps__district_04-oakland__itp_id_315.ipynb delete mode 100644 portfolio/rt/district_04-oakland/22__speedmaps__district_04-oakland__itp_id_33.ipynb delete mode 100644 portfolio/rt/district_04-oakland/23__speedmaps__district_04-oakland__itp_id_368.ipynb delete mode 100644 portfolio/rt/district_05-san-luis-obispo/00__speedmaps__district_05-san-luis-obispo__itp_id_298.ipynb delete mode 100644 portfolio/rt/district_05-san-luis-obispo/01__speedmaps__district_05-san-luis-obispo__itp_id_312.ipynb delete mode 100644 portfolio/rt/district_05-san-luis-obispo/02__speedmaps__district_05-san-luis-obispo__itp_id_208.ipynb delete mode 100644 portfolio/rt/district_05-san-luis-obispo/03__speedmaps__district_05-san-luis-obispo__itp_id_289.ipynb delete mode 100644 portfolio/rt/district_05-san-luis-obispo/04__speedmaps__district_05-san-luis-obispo__itp_id_296.ipynb delete mode 100644 portfolio/rt/district_06-fresno/00__speedmaps__district_06-fresno__itp_id_116.ipynb delete mode 100644 portfolio/rt/district_06-fresno/01__speedmaps__district_06-fresno__itp_id_361.ipynb delete mode 100644 portfolio/rt/district_06-fresno/02__speedmaps__district_06-fresno__itp_id_126.ipynb delete mode 100644 portfolio/rt/district_06-fresno/03__speedmaps__district_06-fresno__itp_id_148.ipynb delete mode 100644 portfolio/rt/district_06-fresno/04__speedmaps__district_06-fresno__itp_id_188.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/00__speedmaps__district_07-los-angeles__itp_id_16.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/01__speedmaps__district_07-los-angeles__itp_id_45.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/02__speedmaps__district_07-los-angeles__itp_id_54.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/03__speedmaps__district_07-los-angeles__itp_id_87.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/04__speedmaps__district_07-los-angeles__itp_id_97.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/05__speedmaps__district_07-los-angeles__itp_id_183.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/06__speedmaps__district_07-los-angeles__itp_id_210.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/07__speedmaps__district_07-los-angeles__itp_id_228.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/08__speedmaps__district_07-los-angeles__itp_id_231.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/09__speedmaps__district_07-los-angeles__itp_id_243.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/10__speedmaps__district_07-los-angeles__itp_id_260.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/11__speedmaps__district_07-los-angeles__itp_id_295.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/12__speedmaps__district_07-los-angeles__itp_id_300.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/13__speedmaps__district_07-los-angeles__itp_id_308.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/14__speedmaps__district_07-los-angeles__itp_id_337.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/15__speedmaps__district_07-los-angeles__itp_id_339.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/16__speedmaps__district_07-los-angeles__itp_id_112.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/17__speedmaps__district_07-los-angeles__itp_id_123.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/18__speedmaps__district_07-los-angeles__itp_id_182.ipynb delete mode 100644 portfolio/rt/district_07-los-angeles/19__speedmaps__district_07-los-angeles__itp_id_380.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/00__speedmaps__district_08-san-bernardino__itp_id_34.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/01__speedmaps__district_08-san-bernardino__itp_id_214.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/02__speedmaps__district_08-san-bernardino__itp_id_232.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/03__speedmaps__district_08-san-bernardino__itp_id_238.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/04__speedmaps__district_08-san-bernardino__itp_id_269.ipynb delete mode 100644 portfolio/rt/district_08-san-bernardino/05__speedmaps__district_08-san-bernardino__itp_id_360.ipynb delete mode 100644 portfolio/rt/district_09-bishop/00__speedmaps__district_09-bishop__itp_id_99.ipynb delete mode 100644 portfolio/rt/district_10-stockton/00__speedmaps__district_10-stockton__itp_id_107.ipynb delete mode 100644 portfolio/rt/district_10-stockton/01__speedmaps__district_10-stockton__itp_id_349.ipynb delete mode 100644 portfolio/rt/district_10-stockton/02__speedmaps__district_10-stockton__itp_id_10.ipynb delete mode 100644 portfolio/rt/district_10-stockton/03__speedmaps__district_10-stockton__itp_id_284.ipynb delete mode 100644 portfolio/rt/district_10-stockton/04__speedmaps__district_10-stockton__itp_id_484.ipynb delete mode 100644 portfolio/rt/district_11-san-diego/00__speedmaps__district_11-san-diego__itp_id_226.ipynb delete mode 100644 portfolio/rt/district_11-san-diego/01__speedmaps__district_11-san-diego__itp_id_277.ipynb delete mode 100644 portfolio/rt/district_11-san-diego/02__speedmaps__district_11-san-diego__itp_id_278.ipynb delete mode 100644 portfolio/rt/district_12-irvine/00__speedmaps__district_12-irvine__itp_id_235.ipynb diff --git a/ca_transit_speed_maps/speedmaps.ipynb b/ca_transit_speed_maps/speedmaps.ipynb index 857731d13..8dc6bbbba 100644 --- a/ca_transit_speed_maps/speedmaps.ipynb +++ b/ca_transit_speed_maps/speedmaps.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "id": "46898b5c-b5cc-4096-ab68-8c3e42fab870", "metadata": {}, "outputs": [], @@ -14,7 +14,7 @@ "import calitp_data_analysis.magics\n", "\n", "from rt_analysis import rt_filter_map_plot\n", - "import build_speedmaps_index\n", + "import update_vars_index\n", "\n", "from IPython.display import display, Markdown\n", "import shared_utils" @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "id": "9f15ed6a-5ab7-4f57-9695-3f762781b74c", "metadata": { "tags": [ @@ -32,17 +32,17 @@ "outputs": [], "source": [ "## parameters cell\n", - "itp_id = 170" + "itp_id = 282" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 13, "id": "a639fd84-29ca-4678-b568-2b1022701e14", "metadata": {}, "outputs": [], "source": [ - "analysis_date = build_speedmaps_index.ANALYSIS_DATE\n", + "analysis_date = shared_utils.rt_dates.DATES['aug2024']\n", "import datetime as dt\n", "if itp_id == 293:\n", " analysis_date = shared_utils.rt_dates.DATES['jul2024']\n", @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "id": "47c79d99-c82f-4e1e-b11e-2b1e83c13a1b", "metadata": {}, "outputs": [ @@ -64,7 +64,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{\"human_date\": \"May 22 2024 (Wednesday)\"}\n" + "{\"human_date\": \"August 14 2024 (Wednesday)\"}\n" ] } ], @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "e4cbefc6-9bbb-4989-85b7-1f31da17fcb8", "metadata": {}, "outputs": [], @@ -87,10 +87,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "6c335d40-7a7b-4641-8a3d-c970b2823cdf", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"organization_name\": \"City and County of San Francisco\"}\n" + ] + } + ], "source": [ "%%capture_parameters\n", "organization_name = rt_day.organization_name\n", @@ -134,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "533a64f4-f374-4f2c-94d3-5146ebe7c036", "metadata": {}, "outputs": [], @@ -153,7 +161,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "2f317120-99ee-435b-96cd-1236b8ee2e0b", "metadata": { "tags": [] @@ -168,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "3f25f8b6-e5e5-423e-a7ef-50fd06a82aaf", "metadata": { "tags": [] @@ -181,22 +189,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "478be483-6dd3-4b0f-adca-dfedf2540088", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "5948822e-8902-4e0f-96a8-ff12af99b89b", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -214,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "b0d402fb-024b-4a8b-a11b-521b8a310ce7", "metadata": {}, "outputs": [], @@ -224,7 +267,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "521f5dc5-3e23-4e61-90f2-4ee35120866b", "metadata": {}, "outputs": [], @@ -235,20 +278,55 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "d70aa1f1-451e-4bfc-9873-466e3304976f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "ada4b469-0612-473a-a0fb-d8a5644383b1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -265,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "f5344e63-89d2-43d6-9783-55a3061c99d2", "metadata": {}, "outputs": [], @@ -284,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "id": "835ae4f1-0364-4fbf-a428-41d5233e6424", "metadata": { "tags": [] @@ -299,7 +377,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "id": "a8ecf442-e6bb-4e30-b2bf-539ecbbc926f", "metadata": { "tags": [] @@ -312,22 +390,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "id": "0e18681c-794d-418e-b2b5-8aa7bbcbade1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "id": "4a3530dd-7432-459e-a22b-3c211f29cff2", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -345,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "ed6db1a8-9774-4a5b-8297-06f0a5067a02", "metadata": {}, "outputs": [], @@ -355,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "id": "f75d40a5-7d9c-49c2-a320-c245d0dfd29b", "metadata": {}, "outputs": [], @@ -366,20 +479,55 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "551d9840-580c-4c30-bf83-8f8a971c61fe", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "id": "029e2e16-50c5-4271-9a46-fdf63fed6090", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -396,7 +544,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "id": "923f1462-b34a-42d2-a632-c5eb3ac16ac6", "metadata": {}, "outputs": [], @@ -415,7 +563,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "3ce10fdb-65fd-4b4b-b041-37d453099d9e", "metadata": { "tags": [] @@ -430,7 +578,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "7f8aaf05-a63a-4e4d-9a7e-1efb63039046", "metadata": { "tags": [] @@ -443,22 +591,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "id": "9c6966a9-289c-4284-8db3-7aea3b36d16b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "id": "c2dd6519-3db1-4881-9efa-98337cb6d298", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -476,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "b8469e6d-aa94-4481-a47b-ff8d29c49a21", "metadata": {}, "outputs": [], @@ -486,7 +669,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "ffa01fd1-0d7c-4def-ae35-a43c160849dc", "metadata": {}, "outputs": [], @@ -497,20 +680,55 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "id": "75202cf8-cd2a-4451-becc-9cdf94db6eff", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "id": "a948a37d-e62d-40ce-810d-79b151aa3008", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "rt_day.display_spa_map()" ] @@ -529,10 +747,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "id": "745e9e8f-47c2-4875-afd2-2c55de086aad", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "Median Trip Speed by Hour of Day, All Route Types, All Routes, 06:00–22:00, Aug 14, 2024 (Wed)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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P6zGjRvLz89PMTExGjFihAYMGGBpruDgYLVp00ZTpkzRiRMnVFBQoHfffVebN29WVlaWpdmuOnnypCRd86kqNWvWdO3Djf38888aN26c+vfvXyY+E3L16tWqVKmSAgIC9PLLL2vdunWqUaOGpZlmzpwpX19fPf3005bm+KVTp04pNzdXL774ou6//359+umneuCBB9SnTx+lpaVZHc9l8eLFCg4O9vrlO3fMnTtXTZo0Ue3ateXv76/7779fr776qtq1a2dZpqtFacKECTp37pwuXbqkmTNn6tixY6V6ni0sLNSIESMUGxur6OhoSVfOr/7+/tf8g680z6/Xy2WFMvHJE1YqLCxUq1atNH36dElSTEyM9u3bp+TkZA0aNMjidFe8+eab6tq1a6ndK3Mj77//vt577z0tWbJETZs21e7duzVixAiFh4db/uf1zjvvKC4uTrfffrt8fHzUsmVL9e/fXzt37rQ0FzwjPz9fffv2lWEYmj9/vtVxJEkdOnTQ7t27debMGS1cuFB9+/bV1q1bFRoaakmenTt36pVXXlF6errls/u/VFhYKEnq1auXRo4cKUn63e9+p6+++krJyclq3769lfFc3nrrLQ0YMMDr9/25Y+7cudqyZYtWrVqlOnXqaMOGDYqPj1d4eHiRWanS5Ofnp5SUFA0dOlTVqlWTj4+POnXqpK5du5bqArr4+Hjt27evzFyNuaqs5LrlZ+xq1aqlJk2aFBm78847vb5Sy11HjhzRZ599pr/85S9WR5EkjR071jVr16xZMz366KMaOXKkZsyYYXU01a9fX2lpacrNzVVmZqa2bdum/Px81atXz+pokqSwsDBJumaV1vfff+/ah+u7WuqOHDmidevWlYnZOkkKCgpSgwYNdM899+jNN9+Ur6+v3nzzTcvybNy4UadOnVJkZKR8fX3l6+urI0eOaPTo0YqKirIsV40aNeTr61umz7UbN25URkZGmTjX/vTTT3rmmWeUlJSkHj16qHnz5kpISFC/fv3097//3dJsd911l3bv3q3z588rKytLa9as0Q8//FBq59mEhAStXr1a69evV+3atV3jYWFhunTp0jUrTkvr/Ppbuaxwyxe72NjYa5YmHzhwQHXq1LEoUVGLFi1SaGiounfvbnUUSVdW91SoUPTXxsfHx/Uv8rIgKChItWrV0rlz57R27Vr16tXL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "try:\n", " rt_day.set_filter(start_time='06:00', end_time='22:00')\n", diff --git a/portfolio/rt/README.md b/portfolio/rt/README.md index 1b346bcee..dbca276c6 100644 --- a/portfolio/rt/README.md +++ b/portfolio/rt/README.md @@ -21,25 +21,30 @@ Select source code can be found at: [https://github.com/cal-itp/data-analyses/blob/main/_shared_utils/shared_utils/rt_utils.py](https://github.com/cal-itp/data-analyses/blob/main/_shared_utils/shared_utils/rt_utils.py) -## Definitions +## Time Period Definitions -* AM Peak: 0600-0900 -* Midday: 1000-1400 -* PM Peak: 1500-1900 +* AM Peak: 07:00-10:00 +* Midday: 10:00-15:00 +* PM Peak: 15:00-20:00 +* Evening: 20:00-24:00 +* Owl: 00:00-04:00 +* Early AM: 04:00-07:00 ## Methodology -Segment speed is estimated using the time and distance between vehicle positions reports, with distance being measured linearly along the corresponding transit route. These maps show speeds along segments, which are calculated by interpolating the two nearest position reports for each trip in order to estimate speed along each segment, then taking the 20th percentile of speeds for that segment in each period (morning peak, afternoon peak, and midday). This site shows data for a specific day, usually a Wednesday (and not a holiday or other date we believe could be atypical). +Segment speed is estimated using the time and distance between vehicle positions reports, with distance being measured linearly along the corresponding transit route. These maps show speeds along segments, which are calculated by interpolating the two nearest position reports for each trip in order to estimate speed along each segment, then taking the 20th percentile of speeds for that segment in each time period. This site shows data for a specific day, usually a Wednesday (and not a holiday or other date we believe could be atypical). Generally, segments are constructed from one stop to the next, however, if the distance between stops is large we add interpolated segments every kilometer to provide additional resolution for rural and express services. We use the ratio between 80th and 20th percentile speeds in a segment to measure speed variation. -## Frequently Asked Questions +## What's New? -Are colorblind safe speed maps available? +We're aligining with segment speeds published via the [open data portal!](https://gis.data.ca.gov/datasets/4937eeb59fdb4e56ae75e64688c7f2c0_0/explore) -_Yes, by following the "Open Colorblind Safe Map in New Tab" links displayed before each speed map. Variation maps already use a colorblind safe scheme._ +While the datasets don't fully match just yet, this site is now based on the same underlying data. This should help us update it more often, enhance accuracy for complex route shapes, and include as many transit operators as possible. + +The site also includes a more informative speed and variation by time of day chart at the bottom of the page. ## Data Sources Archived GTFS-Realtime Vehicle Positions data, plus corresponding GTFS Schedule data. @@ -48,7 +53,7 @@ Each map includes a link to download its geospatial data in a gzip-compressed Ge ## Ongoing Work -The Cal-ITP team is working to share broader speed and delay data using the California Open Data Portal. +The Cal-ITP team is working to transition the site to a rolling average of recent dates, instead of a single day. Questions or feedback? Please email hello@calitp.org diff --git a/portfolio/rt/district_01-eureka/00__speedmaps__district_01-eureka__itp_id_18.ipynb b/portfolio/rt/district_01-eureka/00__speedmaps__district_01-eureka__itp_id_18.ipynb deleted file mode 100644 index 97c580a49..000000000 --- a/portfolio/rt/district_01-eureka/00__speedmaps__district_01-eureka__itp_id_18.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6dbbba50e732f37bd28fd9200f081ce2f04184ea76b48ecce9878f37883001be -size 71403 diff --git a/portfolio/rt/district_01-eureka/01__speedmaps__district_01-eureka__itp_id_108.ipynb b/portfolio/rt/district_01-eureka/01__speedmaps__district_01-eureka__itp_id_108.ipynb deleted file mode 100644 index 9a913d017..000000000 --- a/portfolio/rt/district_01-eureka/01__speedmaps__district_01-eureka__itp_id_108.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9326a1d34984fca32e5ca363f7de97d078799466595010f86c682677052cdef9 -size 71411 diff --git a/portfolio/rt/district_01-eureka/02__speedmaps__district_01-eureka__itp_id_135.ipynb b/portfolio/rt/district_01-eureka/02__speedmaps__district_01-eureka__itp_id_135.ipynb deleted file mode 100644 index 86f36eb62..000000000 --- a/portfolio/rt/district_01-eureka/02__speedmaps__district_01-eureka__itp_id_135.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0147672cad08a97ac96e7d12cd58f304eb975261c58028cd4ff1276621daa231 -size 71626 diff --git a/portfolio/rt/district_01-eureka/03__speedmaps__district_01-eureka__itp_id_159.ipynb b/portfolio/rt/district_01-eureka/03__speedmaps__district_01-eureka__itp_id_159.ipynb deleted file mode 100644 index 14c547a3f..000000000 --- a/portfolio/rt/district_01-eureka/03__speedmaps__district_01-eureka__itp_id_159.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e51ceb45158aca0884c733575f100494e7efa2dc4e4bddf48448fd821ae2e320 -size 73528 diff --git a/portfolio/rt/district_02-redding/00__speedmaps__district_02-redding__itp_id_259.ipynb b/portfolio/rt/district_02-redding/00__speedmaps__district_02-redding__itp_id_259.ipynb deleted file mode 100644 index b67c04d45..000000000 --- a/portfolio/rt/district_02-redding/00__speedmaps__district_02-redding__itp_id_259.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7371e8831923db7f22eb4e4f28e264a15331a9f5ab8293ce8e392899444efd4f -size 74776 diff --git a/portfolio/rt/district_03-marysville/00__speedmaps__district_03-marysville__itp_id_105.ipynb b/portfolio/rt/district_03-marysville/00__speedmaps__district_03-marysville__itp_id_105.ipynb deleted file mode 100644 index 5ddc1c8d0..000000000 --- a/portfolio/rt/district_03-marysville/00__speedmaps__district_03-marysville__itp_id_105.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d97f43cca9c3c062b239b84e2f0cc1785c12864421e0e30f05ccc5fd30bdda97 -size 74208 diff --git a/portfolio/rt/district_03-marysville/01__speedmaps__district_03-marysville__itp_id_331.ipynb b/portfolio/rt/district_03-marysville/01__speedmaps__district_03-marysville__itp_id_331.ipynb deleted file mode 100644 index 70cc01002..000000000 --- a/portfolio/rt/district_03-marysville/01__speedmaps__district_03-marysville__itp_id_331.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e77271e96cb7821e853b051e32182632aa55be00943d8f0b440a9bb3af7ca878 -size 74320 diff --git a/portfolio/rt/district_03-marysville/02__speedmaps__district_03-marysville__itp_id_372.ipynb b/portfolio/rt/district_03-marysville/02__speedmaps__district_03-marysville__itp_id_372.ipynb deleted file mode 100644 index 6461308f2..000000000 --- a/portfolio/rt/district_03-marysville/02__speedmaps__district_03-marysville__itp_id_372.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72cbf32333134ea67389cdc039c9710b6ea97fe37ff7a140f31228e12692a144 -size 71803 diff --git a/portfolio/rt/district_04-oakland/00__speedmaps__district_04-oakland__itp_id_4.ipynb b/portfolio/rt/district_04-oakland/00__speedmaps__district_04-oakland__itp_id_4.ipynb deleted file mode 100644 index b2ab069d0..000000000 --- a/portfolio/rt/district_04-oakland/00__speedmaps__district_04-oakland__itp_id_4.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a6c05aa4c9e4f64b69b5ca6283f95eed579feeeb578609861e4aa2ff937f9879 -size 71690 diff --git a/portfolio/rt/district_04-oakland/01__speedmaps__district_04-oakland__itp_id_56.ipynb b/portfolio/rt/district_04-oakland/01__speedmaps__district_04-oakland__itp_id_56.ipynb deleted file mode 100644 index 84545e81b..000000000 --- a/portfolio/rt/district_04-oakland/01__speedmaps__district_04-oakland__itp_id_56.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80257edece1b45453b4e5032a3522fe28e3687466f906923c4dc7d5610d53d72 -size 72853 diff --git a/portfolio/rt/district_04-oakland/02__speedmaps__district_04-oakland__itp_id_61.ipynb b/portfolio/rt/district_04-oakland/02__speedmaps__district_04-oakland__itp_id_61.ipynb deleted file mode 100644 index fea04d1fe..000000000 --- a/portfolio/rt/district_04-oakland/02__speedmaps__district_04-oakland__itp_id_61.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4eefa759c7f700dc18025895b90b1b8508e8fcd617f6c78519dd9e54652f2d42 -size 72788 diff --git a/portfolio/rt/district_04-oakland/03__speedmaps__district_04-oakland__itp_id_282.ipynb b/portfolio/rt/district_04-oakland/03__speedmaps__district_04-oakland__itp_id_282.ipynb deleted file mode 100644 index b2d0724c5..000000000 --- a/portfolio/rt/district_04-oakland/03__speedmaps__district_04-oakland__itp_id_282.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9275a6713c5ace92e989aab41f6ec6c952eb6a49b0df9f28125bf5d5fdf4fbba -size 70619 diff --git a/portfolio/rt/district_04-oakland/04__speedmaps__district_04-oakland__itp_id_110.ipynb b/portfolio/rt/district_04-oakland/04__speedmaps__district_04-oakland__itp_id_110.ipynb deleted file mode 100644 index 8bd7fa4df..000000000 --- a/portfolio/rt/district_04-oakland/04__speedmaps__district_04-oakland__itp_id_110.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d27281f4e0dc481f462f4f8715d5e51a18375038327084a97b8e77d2e25cbd7 -size 71293 diff --git a/portfolio/rt/district_04-oakland/05__speedmaps__district_04-oakland__itp_id_247.ipynb b/portfolio/rt/district_04-oakland/05__speedmaps__district_04-oakland__itp_id_247.ipynb deleted file mode 100644 index 5f40a04be..000000000 --- a/portfolio/rt/district_04-oakland/05__speedmaps__district_04-oakland__itp_id_247.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f14d73d8d6439b3840dc1e0217291c54963623e8440ca118651d5995f680babe -size 73661 diff --git a/portfolio/rt/district_04-oakland/06__speedmaps__district_04-oakland__itp_id_301.ipynb b/portfolio/rt/district_04-oakland/06__speedmaps__district_04-oakland__itp_id_301.ipynb deleted file mode 100644 index 54c0ee71b..000000000 --- a/portfolio/rt/district_04-oakland/06__speedmaps__district_04-oakland__itp_id_301.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7622c7af6e3aa8f4b8e464d8374bb4fafa26edb862679649586c0cee9a34f2bd -size 71313 diff --git a/portfolio/rt/district_04-oakland/07__speedmaps__district_04-oakland__itp_id_350.ipynb b/portfolio/rt/district_04-oakland/07__speedmaps__district_04-oakland__itp_id_350.ipynb deleted file mode 100644 index 129ca72d8..000000000 --- a/portfolio/rt/district_04-oakland/07__speedmaps__district_04-oakland__itp_id_350.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:124a1d2da1c938710359fa45b3930a92ae332e1f7f79888e797f053e8480ff0c -size 72472 diff --git a/portfolio/rt/district_04-oakland/08__speedmaps__district_04-oakland__itp_id_70.ipynb b/portfolio/rt/district_04-oakland/08__speedmaps__district_04-oakland__itp_id_70.ipynb deleted file mode 100644 index 33b993edc..000000000 --- a/portfolio/rt/district_04-oakland/08__speedmaps__district_04-oakland__itp_id_70.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:db43c3c9cf003c95067e8365141280b190db8dfd224c26a712301cea95594579 -size 70921 diff --git a/portfolio/rt/district_04-oakland/09__speedmaps__district_04-oakland__itp_id_336.ipynb b/portfolio/rt/district_04-oakland/09__speedmaps__district_04-oakland__itp_id_336.ipynb deleted file mode 100644 index dbfcea85f..000000000 --- a/portfolio/rt/district_04-oakland/09__speedmaps__district_04-oakland__itp_id_336.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4d125d2b4914da1beb1e4a9c63056de065f33a270066af31a19bf8347a48c28 -size 72263 diff --git a/portfolio/rt/district_04-oakland/10__speedmaps__district_04-oakland__itp_id_127.ipynb b/portfolio/rt/district_04-oakland/10__speedmaps__district_04-oakland__itp_id_127.ipynb deleted file mode 100644 index 4508029b8..000000000 --- a/portfolio/rt/district_04-oakland/10__speedmaps__district_04-oakland__itp_id_127.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57f2d98e8233f4e7b4d66477f97e1668ab71400564e2a5187de26e33f4252a69 -size 75769 diff --git a/portfolio/rt/district_04-oakland/11__speedmaps__district_04-oakland__itp_id_194.ipynb b/portfolio/rt/district_04-oakland/11__speedmaps__district_04-oakland__itp_id_194.ipynb deleted file mode 100644 index d04a912f0..000000000 --- a/portfolio/rt/district_04-oakland/11__speedmaps__district_04-oakland__itp_id_194.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:348d2d4d2d0c6845712421ae269367a6da2509d101923de0c93aef58ed358243 -size 72592 diff --git a/portfolio/rt/district_04-oakland/12__speedmaps__district_04-oakland__itp_id_218.ipynb b/portfolio/rt/district_04-oakland/12__speedmaps__district_04-oakland__itp_id_218.ipynb deleted file mode 100644 index 5dbaef066..000000000 --- a/portfolio/rt/district_04-oakland/12__speedmaps__district_04-oakland__itp_id_218.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5cb1f2f8f9da058859edd0b0a8a4ddca3799011e5bde99886995c8bc3cb03f80 -size 74480 diff --git a/portfolio/rt/district_04-oakland/13__speedmaps__district_04-oakland__itp_id_246.ipynb b/portfolio/rt/district_04-oakland/13__speedmaps__district_04-oakland__itp_id_246.ipynb deleted file mode 100644 index 8b6bcd4f1..000000000 --- a/portfolio/rt/district_04-oakland/13__speedmaps__district_04-oakland__itp_id_246.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bed4a4d4e7f9456260cb9a6daae4989d241d5c397f1c1f9bfefe76f411b13f00 -size 73997 diff --git a/portfolio/rt/district_04-oakland/14__speedmaps__district_04-oakland__itp_id_257.ipynb b/portfolio/rt/district_04-oakland/14__speedmaps__district_04-oakland__itp_id_257.ipynb deleted file mode 100644 index 20ba64f44..000000000 --- a/portfolio/rt/district_04-oakland/14__speedmaps__district_04-oakland__itp_id_257.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a85972773ac19d0b40fe57edd6549051dc0210a6c62d1a1952ef4100c59a52fd -size 72206 diff --git a/portfolio/rt/district_04-oakland/15__speedmaps__district_04-oakland__itp_id_280.ipynb b/portfolio/rt/district_04-oakland/15__speedmaps__district_04-oakland__itp_id_280.ipynb deleted file mode 100644 index 0a0d50cd6..000000000 --- a/portfolio/rt/district_04-oakland/15__speedmaps__district_04-oakland__itp_id_280.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:876699d898cc6b770e3360478bc801f21911f5d2470569db00958e61132eac13 -size 71666 diff --git a/portfolio/rt/district_04-oakland/16__speedmaps__district_04-oakland__itp_id_290.ipynb b/portfolio/rt/district_04-oakland/16__speedmaps__district_04-oakland__itp_id_290.ipynb deleted file mode 100644 index dedb8f991..000000000 --- a/portfolio/rt/district_04-oakland/16__speedmaps__district_04-oakland__itp_id_290.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a09822b26d48d41f0fba38202cee63ac01e5b4cd8ebf8afe39a02d46f6fbaaee -size 72355 diff --git a/portfolio/rt/district_04-oakland/17__speedmaps__district_04-oakland__itp_id_294.ipynb b/portfolio/rt/district_04-oakland/17__speedmaps__district_04-oakland__itp_id_294.ipynb deleted file mode 100644 index fe557c3b6..000000000 --- a/portfolio/rt/district_04-oakland/17__speedmaps__district_04-oakland__itp_id_294.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:949a7b8f725610810385d57a08f98146b6277c81d7c7ad5574edd86f1f8b3cb6 -size 72332 diff --git a/portfolio/rt/district_04-oakland/18__speedmaps__district_04-oakland__itp_id_310.ipynb b/portfolio/rt/district_04-oakland/18__speedmaps__district_04-oakland__itp_id_310.ipynb deleted file mode 100644 index 2639ad28c..000000000 --- a/portfolio/rt/district_04-oakland/18__speedmaps__district_04-oakland__itp_id_310.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df827ae34c7a01a18632e6023068b783dd5af3dc85588050da22550628fd24b4 -size 72206 diff --git a/portfolio/rt/district_04-oakland/19__speedmaps__district_04-oakland__itp_id_381.ipynb b/portfolio/rt/district_04-oakland/19__speedmaps__district_04-oakland__itp_id_381.ipynb deleted file mode 100644 index 8c68ead86..000000000 --- a/portfolio/rt/district_04-oakland/19__speedmaps__district_04-oakland__itp_id_381.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4fe1a6d931adbd5d9b378a8fa163a8314d428a854fa54584292ab4942e2039ad -size 72387 diff --git a/portfolio/rt/district_04-oakland/20__speedmaps__district_04-oakland__itp_id_314.ipynb b/portfolio/rt/district_04-oakland/20__speedmaps__district_04-oakland__itp_id_314.ipynb deleted file mode 100644 index 712861225..000000000 --- a/portfolio/rt/district_04-oakland/20__speedmaps__district_04-oakland__itp_id_314.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f0209725403d7c444bdd947c1128b65b94a93127d3bffe13ce6f467850a739a -size 70845 diff --git a/portfolio/rt/district_04-oakland/21__speedmaps__district_04-oakland__itp_id_315.ipynb b/portfolio/rt/district_04-oakland/21__speedmaps__district_04-oakland__itp_id_315.ipynb deleted file mode 100644 index 316150ac5..000000000 --- a/portfolio/rt/district_04-oakland/21__speedmaps__district_04-oakland__itp_id_315.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5cf22324dca80f660eef6ceab10f30772ece191729f996170e6bc2d6c9496f3e -size 73191 diff --git a/portfolio/rt/district_04-oakland/22__speedmaps__district_04-oakland__itp_id_33.ipynb b/portfolio/rt/district_04-oakland/22__speedmaps__district_04-oakland__itp_id_33.ipynb deleted file mode 100644 index b196e2d47..000000000 --- a/portfolio/rt/district_04-oakland/22__speedmaps__district_04-oakland__itp_id_33.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5149c99d064f48617d9b766a9a26c885d12a2750b600fe905857382e346b337 -size 70893 diff --git a/portfolio/rt/district_04-oakland/23__speedmaps__district_04-oakland__itp_id_368.ipynb b/portfolio/rt/district_04-oakland/23__speedmaps__district_04-oakland__itp_id_368.ipynb deleted file mode 100644 index c315c6dc1..000000000 --- a/portfolio/rt/district_04-oakland/23__speedmaps__district_04-oakland__itp_id_368.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f77cd345cebd8bff683797f62415b45dd523430fa84a8f86cca341ef4a1e7aef -size 71913 diff --git a/portfolio/rt/district_05-san-luis-obispo/00__speedmaps__district_05-san-luis-obispo__itp_id_298.ipynb b/portfolio/rt/district_05-san-luis-obispo/00__speedmaps__district_05-san-luis-obispo__itp_id_298.ipynb deleted file mode 100644 index 660743840..000000000 --- a/portfolio/rt/district_05-san-luis-obispo/00__speedmaps__district_05-san-luis-obispo__itp_id_298.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:390528057958efed1c6bd60020928d76f96746def0a7a00dc1ebb2b6db84d204 -size 73883 diff --git a/portfolio/rt/district_05-san-luis-obispo/01__speedmaps__district_05-san-luis-obispo__itp_id_312.ipynb b/portfolio/rt/district_05-san-luis-obispo/01__speedmaps__district_05-san-luis-obispo__itp_id_312.ipynb deleted file mode 100644 index eef0533ba..000000000 --- a/portfolio/rt/district_05-san-luis-obispo/01__speedmaps__district_05-san-luis-obispo__itp_id_312.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:db60af11ce7ed08d6a2332f39c7996fa7b2e1a5dd08ff7fb5c1ecba63d7dfe0a -size 69721 diff --git a/portfolio/rt/district_05-san-luis-obispo/02__speedmaps__district_05-san-luis-obispo__itp_id_208.ipynb b/portfolio/rt/district_05-san-luis-obispo/02__speedmaps__district_05-san-luis-obispo__itp_id_208.ipynb deleted file mode 100644 index c1f6af021..000000000 --- a/portfolio/rt/district_05-san-luis-obispo/02__speedmaps__district_05-san-luis-obispo__itp_id_208.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acd7e90af33830b2a6c03af6e000cbcda3f2d3c11ebdb3bf7c1f260bdce14ea7 -size 71602 diff --git a/portfolio/rt/district_05-san-luis-obispo/03__speedmaps__district_05-san-luis-obispo__itp_id_289.ipynb b/portfolio/rt/district_05-san-luis-obispo/03__speedmaps__district_05-san-luis-obispo__itp_id_289.ipynb deleted file mode 100644 index 1b7266002..000000000 --- a/portfolio/rt/district_05-san-luis-obispo/03__speedmaps__district_05-san-luis-obispo__itp_id_289.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5f2a3d1686fe7dcf250cff24562625aa98b2771f3b97fb9d32ac4f6b630d5e03 -size 73292 diff --git a/portfolio/rt/district_05-san-luis-obispo/04__speedmaps__district_05-san-luis-obispo__itp_id_296.ipynb b/portfolio/rt/district_05-san-luis-obispo/04__speedmaps__district_05-san-luis-obispo__itp_id_296.ipynb deleted file mode 100644 index eed9b6ccf..000000000 --- a/portfolio/rt/district_05-san-luis-obispo/04__speedmaps__district_05-san-luis-obispo__itp_id_296.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:813b91e48e4427a68f3106c6a0442ad9c6582459a0963ca6b85d9103ce2ba7ab -size 74638 diff --git a/portfolio/rt/district_06-fresno/00__speedmaps__district_06-fresno__itp_id_116.ipynb b/portfolio/rt/district_06-fresno/00__speedmaps__district_06-fresno__itp_id_116.ipynb deleted file mode 100644 index b24a72051..000000000 --- a/portfolio/rt/district_06-fresno/00__speedmaps__district_06-fresno__itp_id_116.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd3301d1efdfbdf693d2fe5a229b72ad03384a89ccc856bc3544668a678067ee -size 71805 diff --git a/portfolio/rt/district_06-fresno/01__speedmaps__district_06-fresno__itp_id_361.ipynb b/portfolio/rt/district_06-fresno/01__speedmaps__district_06-fresno__itp_id_361.ipynb deleted file mode 100644 index c80e45ecd..000000000 --- a/portfolio/rt/district_06-fresno/01__speedmaps__district_06-fresno__itp_id_361.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:644cb279d4401690f3699988141eb760f7835e2c0e8386a8d4189e5ae727e6dc -size 74194 diff --git a/portfolio/rt/district_06-fresno/02__speedmaps__district_06-fresno__itp_id_126.ipynb b/portfolio/rt/district_06-fresno/02__speedmaps__district_06-fresno__itp_id_126.ipynb deleted file mode 100644 index 24d94260a..000000000 --- a/portfolio/rt/district_06-fresno/02__speedmaps__district_06-fresno__itp_id_126.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a4e7d6579b5cd78935d1e24d6bf6d3b05f2550718622e500ac6687faf35695a -size 72843 diff --git a/portfolio/rt/district_06-fresno/03__speedmaps__district_06-fresno__itp_id_148.ipynb b/portfolio/rt/district_06-fresno/03__speedmaps__district_06-fresno__itp_id_148.ipynb deleted file mode 100644 index cde3cd422..000000000 --- a/portfolio/rt/district_06-fresno/03__speedmaps__district_06-fresno__itp_id_148.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b2c1b3a934912ba54f962c10d80d3af7c25de90b3c4852f808313187a3d4a86 -size 72251 diff --git a/portfolio/rt/district_06-fresno/04__speedmaps__district_06-fresno__itp_id_188.ipynb b/portfolio/rt/district_06-fresno/04__speedmaps__district_06-fresno__itp_id_188.ipynb deleted file mode 100644 index 0f4fe1c20..000000000 --- a/portfolio/rt/district_06-fresno/04__speedmaps__district_06-fresno__itp_id_188.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bed5eca41f0a110dc39647f7e29b550f4fa4631ad7829dbab4b1f5c9a1515e83 -size 72788 diff --git a/portfolio/rt/district_07-los-angeles/00__speedmaps__district_07-los-angeles__itp_id_16.ipynb b/portfolio/rt/district_07-los-angeles/00__speedmaps__district_07-los-angeles__itp_id_16.ipynb deleted file mode 100644 index 33621c17b..000000000 --- a/portfolio/rt/district_07-los-angeles/00__speedmaps__district_07-los-angeles__itp_id_16.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d1825b129b73a0e3bbdd121bd0d06c4c4ffa60b2bb2fba2d7acfd1ab7691d2f -size 72145 diff --git a/portfolio/rt/district_07-los-angeles/01__speedmaps__district_07-los-angeles__itp_id_45.ipynb b/portfolio/rt/district_07-los-angeles/01__speedmaps__district_07-los-angeles__itp_id_45.ipynb deleted file mode 100644 index 2f8e3f49f..000000000 --- a/portfolio/rt/district_07-los-angeles/01__speedmaps__district_07-los-angeles__itp_id_45.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:096aaa5715512773302920324611e19fc7c8a69c457cca01773b558708d6765b -size 71411 diff --git a/portfolio/rt/district_07-los-angeles/02__speedmaps__district_07-los-angeles__itp_id_54.ipynb b/portfolio/rt/district_07-los-angeles/02__speedmaps__district_07-los-angeles__itp_id_54.ipynb deleted file mode 100644 index a90835e44..000000000 --- a/portfolio/rt/district_07-los-angeles/02__speedmaps__district_07-los-angeles__itp_id_54.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1049b5ecb39ee4a3cb79012f99bbca125b998be7c0b313d60442ea09a3afb0e3 -size 72063 diff --git a/portfolio/rt/district_07-los-angeles/03__speedmaps__district_07-los-angeles__itp_id_87.ipynb b/portfolio/rt/district_07-los-angeles/03__speedmaps__district_07-los-angeles__itp_id_87.ipynb deleted file mode 100644 index aa01153d1..000000000 --- a/portfolio/rt/district_07-los-angeles/03__speedmaps__district_07-los-angeles__itp_id_87.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:426ed037257abcd8279b100f828288fc3f68442ebf5edd15e4683c72b98c6e12 -size 71491 diff --git a/portfolio/rt/district_07-los-angeles/04__speedmaps__district_07-los-angeles__itp_id_97.ipynb b/portfolio/rt/district_07-los-angeles/04__speedmaps__district_07-los-angeles__itp_id_97.ipynb deleted file mode 100644 index e84d3c0fc..000000000 --- a/portfolio/rt/district_07-los-angeles/04__speedmaps__district_07-los-angeles__itp_id_97.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:304dcd698dc0c9430351d3bef56ceb06f391c2d41175ddb3ca519539276c4745 -size 72526 diff --git a/portfolio/rt/district_07-los-angeles/05__speedmaps__district_07-los-angeles__itp_id_183.ipynb b/portfolio/rt/district_07-los-angeles/05__speedmaps__district_07-los-angeles__itp_id_183.ipynb deleted file mode 100644 index a7e3681c7..000000000 --- a/portfolio/rt/district_07-los-angeles/05__speedmaps__district_07-los-angeles__itp_id_183.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5ad7274a2a3c75ba504329fd9f12758bc3bd30e4413edc4c4dad9c55fdeb95a -size 70668 diff --git a/portfolio/rt/district_07-los-angeles/06__speedmaps__district_07-los-angeles__itp_id_210.ipynb b/portfolio/rt/district_07-los-angeles/06__speedmaps__district_07-los-angeles__itp_id_210.ipynb deleted file mode 100644 index 9831a6d58..000000000 --- a/portfolio/rt/district_07-los-angeles/06__speedmaps__district_07-los-angeles__itp_id_210.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7085655d6534d948e07b9528cba85bc59050f207c5658449a1d7836785c438a -size 72064 diff --git a/portfolio/rt/district_07-los-angeles/07__speedmaps__district_07-los-angeles__itp_id_228.ipynb b/portfolio/rt/district_07-los-angeles/07__speedmaps__district_07-los-angeles__itp_id_228.ipynb deleted file mode 100644 index fb665a99c..000000000 --- a/portfolio/rt/district_07-los-angeles/07__speedmaps__district_07-los-angeles__itp_id_228.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b61cafd3cc0de4b52b9704d8212a8aff707310578c0800dba8cd670051c4ec2 -size 72346 diff --git a/portfolio/rt/district_07-los-angeles/08__speedmaps__district_07-los-angeles__itp_id_231.ipynb b/portfolio/rt/district_07-los-angeles/08__speedmaps__district_07-los-angeles__itp_id_231.ipynb deleted file mode 100644 index 43c22c02a..000000000 --- a/portfolio/rt/district_07-los-angeles/08__speedmaps__district_07-los-angeles__itp_id_231.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c33214142bf9bd9d5e2a957ed5336a1499a2e17177b64678f268877823db643 -size 71991 diff --git a/portfolio/rt/district_07-los-angeles/09__speedmaps__district_07-los-angeles__itp_id_243.ipynb b/portfolio/rt/district_07-los-angeles/09__speedmaps__district_07-los-angeles__itp_id_243.ipynb deleted file mode 100644 index b9b548b56..000000000 --- a/portfolio/rt/district_07-los-angeles/09__speedmaps__district_07-los-angeles__itp_id_243.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e71e71b4532b7df3d6e05418abca6f095cffbb919b50371f1d8752e4bcc89814 -size 71258 diff --git a/portfolio/rt/district_07-los-angeles/10__speedmaps__district_07-los-angeles__itp_id_260.ipynb b/portfolio/rt/district_07-los-angeles/10__speedmaps__district_07-los-angeles__itp_id_260.ipynb deleted file mode 100644 index dbc911af3..000000000 --- a/portfolio/rt/district_07-los-angeles/10__speedmaps__district_07-los-angeles__itp_id_260.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9341c868200b51bdd239de504fc02e8c323f9516a88873830b27eaac951790c4 -size 71619 diff --git a/portfolio/rt/district_07-los-angeles/11__speedmaps__district_07-los-angeles__itp_id_295.ipynb b/portfolio/rt/district_07-los-angeles/11__speedmaps__district_07-los-angeles__itp_id_295.ipynb deleted file mode 100644 index d8388d1dd..000000000 --- a/portfolio/rt/district_07-los-angeles/11__speedmaps__district_07-los-angeles__itp_id_295.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eabc8d59d936f6de557fbab230f5b1b650e699670874dae75953062d1dfadcc9 -size 75608 diff --git a/portfolio/rt/district_07-los-angeles/12__speedmaps__district_07-los-angeles__itp_id_300.ipynb b/portfolio/rt/district_07-los-angeles/12__speedmaps__district_07-los-angeles__itp_id_300.ipynb deleted file mode 100644 index 0e790dcda..000000000 --- a/portfolio/rt/district_07-los-angeles/12__speedmaps__district_07-los-angeles__itp_id_300.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:155abcdcfae155ab6887f3295fb36e06c6bd55b422ae620fb3b7f4d5510334bf -size 71126 diff --git a/portfolio/rt/district_07-los-angeles/13__speedmaps__district_07-los-angeles__itp_id_308.ipynb b/portfolio/rt/district_07-los-angeles/13__speedmaps__district_07-los-angeles__itp_id_308.ipynb deleted file mode 100644 index 4eba95507..000000000 --- a/portfolio/rt/district_07-los-angeles/13__speedmaps__district_07-los-angeles__itp_id_308.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d478dcfc178265c1be3d803e8f1d0ba6e0648ea3092fc623349d643078975f7 -size 72118 diff --git a/portfolio/rt/district_07-los-angeles/14__speedmaps__district_07-los-angeles__itp_id_337.ipynb b/portfolio/rt/district_07-los-angeles/14__speedmaps__district_07-los-angeles__itp_id_337.ipynb deleted file mode 100644 index 0ea7508b3..000000000 --- a/portfolio/rt/district_07-los-angeles/14__speedmaps__district_07-los-angeles__itp_id_337.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cc14973cbfab0b9a760e730df2f10fd148475bcc10ce79091c0c255fa43ed01 -size 72159 diff --git a/portfolio/rt/district_07-los-angeles/15__speedmaps__district_07-los-angeles__itp_id_339.ipynb b/portfolio/rt/district_07-los-angeles/15__speedmaps__district_07-los-angeles__itp_id_339.ipynb deleted file mode 100644 index a8d11e2e3..000000000 --- a/portfolio/rt/district_07-los-angeles/15__speedmaps__district_07-los-angeles__itp_id_339.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:04778bb158fc6c14ae208ccd5c001e792e66be98122aa31175b8bcb67ed0609b -size 72381 diff --git a/portfolio/rt/district_07-los-angeles/16__speedmaps__district_07-los-angeles__itp_id_112.ipynb b/portfolio/rt/district_07-los-angeles/16__speedmaps__district_07-los-angeles__itp_id_112.ipynb deleted file mode 100644 index f649c763f..000000000 --- a/portfolio/rt/district_07-los-angeles/16__speedmaps__district_07-los-angeles__itp_id_112.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f20bec26ba49f37cc49192f130da8c854e19ac8fc779160248760141f188b5df -size 72582 diff --git a/portfolio/rt/district_07-los-angeles/17__speedmaps__district_07-los-angeles__itp_id_123.ipynb b/portfolio/rt/district_07-los-angeles/17__speedmaps__district_07-los-angeles__itp_id_123.ipynb deleted file mode 100644 index e4c7f51b3..000000000 --- a/portfolio/rt/district_07-los-angeles/17__speedmaps__district_07-los-angeles__itp_id_123.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:591d75db49f341e284f31420301ae902559054eb262fb34ff584c92ed8ed3992 -size 72262 diff --git a/portfolio/rt/district_07-los-angeles/18__speedmaps__district_07-los-angeles__itp_id_182.ipynb b/portfolio/rt/district_07-los-angeles/18__speedmaps__district_07-los-angeles__itp_id_182.ipynb deleted file mode 100644 index 0fea6e280..000000000 --- a/portfolio/rt/district_07-los-angeles/18__speedmaps__district_07-los-angeles__itp_id_182.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:96010494b5f6fdc7fe0f0c787f136d8bb673ae39df2d1260eeb47ab81af98821 -size 72352 diff --git a/portfolio/rt/district_07-los-angeles/19__speedmaps__district_07-los-angeles__itp_id_380.ipynb b/portfolio/rt/district_07-los-angeles/19__speedmaps__district_07-los-angeles__itp_id_380.ipynb deleted file mode 100644 index 0af54bd51..000000000 --- a/portfolio/rt/district_07-los-angeles/19__speedmaps__district_07-los-angeles__itp_id_380.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:37b943f0b0c236cceab21dd2f676e0c3bf15a7e46aacb7f7137d63678ea1e941 -size 72496 diff --git a/portfolio/rt/district_08-san-bernardino/00__speedmaps__district_08-san-bernardino__itp_id_34.ipynb b/portfolio/rt/district_08-san-bernardino/00__speedmaps__district_08-san-bernardino__itp_id_34.ipynb deleted file mode 100644 index 39b05c40c..000000000 --- a/portfolio/rt/district_08-san-bernardino/00__speedmaps__district_08-san-bernardino__itp_id_34.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60c2a6c86f65d5c247e029dd12f84269e7df5a550e7cc6208f1a922afca143d6 -size 71375 diff --git a/portfolio/rt/district_08-san-bernardino/01__speedmaps__district_08-san-bernardino__itp_id_214.ipynb b/portfolio/rt/district_08-san-bernardino/01__speedmaps__district_08-san-bernardino__itp_id_214.ipynb deleted file mode 100644 index 2ada12bb1..000000000 --- a/portfolio/rt/district_08-san-bernardino/01__speedmaps__district_08-san-bernardino__itp_id_214.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6e6ca3ce541eb34c1285bd2c23a2c73f2e1091039da4e48f354dd0764d89bc2 -size 75646 diff --git a/portfolio/rt/district_08-san-bernardino/02__speedmaps__district_08-san-bernardino__itp_id_232.ipynb b/portfolio/rt/district_08-san-bernardino/02__speedmaps__district_08-san-bernardino__itp_id_232.ipynb deleted file mode 100644 index 986f8ace4..000000000 --- a/portfolio/rt/district_08-san-bernardino/02__speedmaps__district_08-san-bernardino__itp_id_232.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6a1f45216815daf4e723df264b52f3c66c1cca0a7352dacdd6c3f8336fcfb48 -size 72279 diff --git a/portfolio/rt/district_08-san-bernardino/03__speedmaps__district_08-san-bernardino__itp_id_238.ipynb b/portfolio/rt/district_08-san-bernardino/03__speedmaps__district_08-san-bernardino__itp_id_238.ipynb deleted file mode 100644 index c504521bd..000000000 --- a/portfolio/rt/district_08-san-bernardino/03__speedmaps__district_08-san-bernardino__itp_id_238.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68dd03c028216dd35ed1f73295c5c844e1309a1e587e7f20f4c3125115ffe67a -size 69981 diff --git a/portfolio/rt/district_08-san-bernardino/04__speedmaps__district_08-san-bernardino__itp_id_269.ipynb b/portfolio/rt/district_08-san-bernardino/04__speedmaps__district_08-san-bernardino__itp_id_269.ipynb deleted file mode 100644 index 08cd9101d..000000000 --- a/portfolio/rt/district_08-san-bernardino/04__speedmaps__district_08-san-bernardino__itp_id_269.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ca115b8d8435c66b7a2e759e44397baedfae1649c5a777c95e5044ad99a8336 -size 72582 diff --git a/portfolio/rt/district_08-san-bernardino/05__speedmaps__district_08-san-bernardino__itp_id_360.ipynb b/portfolio/rt/district_08-san-bernardino/05__speedmaps__district_08-san-bernardino__itp_id_360.ipynb deleted file mode 100644 index 81d6f784b..000000000 --- a/portfolio/rt/district_08-san-bernardino/05__speedmaps__district_08-san-bernardino__itp_id_360.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8fbd18a598b717f5994cf86b843c74d3cd5512d090f88d424814f7b9138cae5c -size 75506 diff --git a/portfolio/rt/district_09-bishop/00__speedmaps__district_09-bishop__itp_id_99.ipynb b/portfolio/rt/district_09-bishop/00__speedmaps__district_09-bishop__itp_id_99.ipynb deleted file mode 100644 index c5e4c8bfc..000000000 --- a/portfolio/rt/district_09-bishop/00__speedmaps__district_09-bishop__itp_id_99.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acaac733ba4779faed85e71cd162430bf00a5cd5822c7f759b3535980a520981 -size 72297 diff --git a/portfolio/rt/district_10-stockton/00__speedmaps__district_10-stockton__itp_id_107.ipynb b/portfolio/rt/district_10-stockton/00__speedmaps__district_10-stockton__itp_id_107.ipynb deleted file mode 100644 index d448c2d7d..000000000 --- a/portfolio/rt/district_10-stockton/00__speedmaps__district_10-stockton__itp_id_107.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed0413c3b3c69ac1273225c6d177f3194a0aa36c778ee54a7d60b0da605029f2 -size 69606 diff --git a/portfolio/rt/district_10-stockton/01__speedmaps__district_10-stockton__itp_id_349.ipynb b/portfolio/rt/district_10-stockton/01__speedmaps__district_10-stockton__itp_id_349.ipynb deleted file mode 100644 index ac9e68733..000000000 --- a/portfolio/rt/district_10-stockton/01__speedmaps__district_10-stockton__itp_id_349.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c35d001e2474261dc1789eb2c8d798c48243dda440bdda29d8e25caee717d3d -size 72243 diff --git a/portfolio/rt/district_10-stockton/02__speedmaps__district_10-stockton__itp_id_10.ipynb b/portfolio/rt/district_10-stockton/02__speedmaps__district_10-stockton__itp_id_10.ipynb deleted file mode 100644 index 42585daec..000000000 --- a/portfolio/rt/district_10-stockton/02__speedmaps__district_10-stockton__itp_id_10.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b414ae047cbaef5aac43b67b9bfd776734d9840c28f01cf4062e1b2a00f6a82 -size 70738 diff --git a/portfolio/rt/district_10-stockton/03__speedmaps__district_10-stockton__itp_id_284.ipynb b/portfolio/rt/district_10-stockton/03__speedmaps__district_10-stockton__itp_id_284.ipynb deleted file mode 100644 index 4411a8be4..000000000 --- a/portfolio/rt/district_10-stockton/03__speedmaps__district_10-stockton__itp_id_284.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56fa3a49794882faaf5a76eabbce7c5129e2563cbca7b3a14b68e26f2c867fee -size 71716 diff --git a/portfolio/rt/district_10-stockton/04__speedmaps__district_10-stockton__itp_id_484.ipynb b/portfolio/rt/district_10-stockton/04__speedmaps__district_10-stockton__itp_id_484.ipynb deleted file mode 100644 index f787c3221..000000000 --- a/portfolio/rt/district_10-stockton/04__speedmaps__district_10-stockton__itp_id_484.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:38eeb4176070a3eb596e4dad4725477ac7c06626044bc231d6b65888619073b0 -size 72000 diff --git a/portfolio/rt/district_11-san-diego/00__speedmaps__district_11-san-diego__itp_id_226.ipynb b/portfolio/rt/district_11-san-diego/00__speedmaps__district_11-san-diego__itp_id_226.ipynb deleted file mode 100644 index c6fade8fe..000000000 --- a/portfolio/rt/district_11-san-diego/00__speedmaps__district_11-san-diego__itp_id_226.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15260fbe88d94b7fc39175cba46f4280582f5a5f7308974e2dcd507e212da6b3 -size 74503 diff --git a/portfolio/rt/district_11-san-diego/01__speedmaps__district_11-san-diego__itp_id_277.ipynb b/portfolio/rt/district_11-san-diego/01__speedmaps__district_11-san-diego__itp_id_277.ipynb deleted file mode 100644 index 7b5d8de7d..000000000 --- a/portfolio/rt/district_11-san-diego/01__speedmaps__district_11-san-diego__itp_id_277.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f58f8f7dc7aa6ddcbe6bece75cab6bd30a094d6b5d3475f62fa5ac9fd4774a4b -size 72853 diff --git a/portfolio/rt/district_11-san-diego/02__speedmaps__district_11-san-diego__itp_id_278.ipynb b/portfolio/rt/district_11-san-diego/02__speedmaps__district_11-san-diego__itp_id_278.ipynb deleted file mode 100644 index 2761825db..000000000 --- a/portfolio/rt/district_11-san-diego/02__speedmaps__district_11-san-diego__itp_id_278.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a37c4b9eea3ee63033c0a3d72e97444921d7a5e7dd6febddbd543bbdbd969d09 -size 72966 diff --git a/portfolio/rt/district_12-irvine/00__speedmaps__district_12-irvine__itp_id_235.ipynb b/portfolio/rt/district_12-irvine/00__speedmaps__district_12-irvine__itp_id_235.ipynb deleted file mode 100644 index 021854af5..000000000 --- a/portfolio/rt/district_12-irvine/00__speedmaps__district_12-irvine__itp_id_235.ipynb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c620d50155d1ca44c32c92cd2f578860b47f981760ee03a4c7da1a8fab327f64 -size 72168 diff --git a/portfolio/sites/rt.yml b/portfolio/sites/rt.yml index 0bafa1093..a2b668650 100644 --- a/portfolio/sites/rt.yml +++ b/portfolio/sites/rt.yml @@ -40,6 +40,7 @@ parts: - organization_source_record_id: recvEBkSBc7UxlarC - organization_source_record_id: recjnaKVDEgulsko3 - organization_source_record_id: rechaapWbeffO33OX + - organization_source_record_id: reczluQLW1y5oQqF8 - organization_source_record_id: recot6qBamlOoLcrM - organization_source_record_id: recUbGDXhPdx3494b - organization_source_record_id: recsNvWvLQwGsoxlE @@ -53,7 +54,6 @@ parts: - organization_source_record_id: recNOb7pqBRlQVG5e - organization_source_record_id: recIeP8mUucOsbvbz - organization_source_record_id: rec9RGrya9SjWYp2p - - organization_source_record_id: rec2ErIfztLMJ4rgG - organization_source_record_id: recsBfXgev9ICDCY1 - organization_source_record_id: recmatCuQAUrNcs8j - organization_source_record_id: recw3mRsmKDTNnVlT @@ -94,6 +94,8 @@ parts: - organization_source_record_id: recD4Vzt0EDC3VY7I - organization_source_record_id: recd0hxcumVMausDU - organization_source_record_id: rec5ome04BbA9uf4y + - organization_source_record_id: recZm8PD8WIdcDL0M + - organization_source_record_id: recX4nQfupRQf3xGD - organization_source_record_id: recj8LXdeSurpSRNU - organization_source_record_id: rec4pgjrmdhCh4z01 - organization_source_record_id: recojKzQsBzE1hjVu @@ -102,10 +104,12 @@ parts: - organization_source_record_id: reczF5Y8R9CUJmfSy - organization_source_record_id: rec8zhnCPETu6qEiH - organization_source_record_id: recImm5SmW2zq9rMT + - organization_source_record_id: recJHFDLpGRMIFgnL - organization_source_record_id: rec1ErIn9gG1Isk5W - organization_source_record_id: recPJULRJk1Yn824N - organization_source_record_id: recvzE9NXgGMmqcTH - organization_source_record_id: rec2LbE0IBKBAkvQr + - organization_source_record_id: recSqgaa8QiQ8CRjl - organization_source_record_id: recS7GnKTcQVX20HE - organization_source_record_id: rec00qSzZL8KqiXAo - organization_source_record_id: recPnGkwdpnr8jmHB @@ -116,9 +120,9 @@ parts: params: district: 08 - San Bernardino sections: + - organization_source_record_id: recniaSbsXcRSLsWe - organization_source_record_id: recuGkFhN2WXGK67H - organization_source_record_id: reciWrBgYsAIm9eKK - - organization_source_record_id: recHbquam1bWEwC3P - organization_source_record_id: recG5aXxDPI645S86 - organization_source_record_id: recGcv4NidDjwVSiN - organization_source_record_id: recYgajd92VLqio1p From 628f65480f952e363ae67aa1565db9f799c8399a Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 08:24:09 -0800 Subject: [PATCH 09/21] detail segments for route dir stop to stop (interim for speedmaps) --- _shared_utils/shared_utils/gtfs_analytics_data.yml | 1 + rt_segment_speeds/scripts/average_segment_speeds.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/_shared_utils/shared_utils/gtfs_analytics_data.yml b/_shared_utils/shared_utils/gtfs_analytics_data.yml index db0b364d4..706eb6d99 100644 --- a/_shared_utils/shared_utils/gtfs_analytics_data.yml +++ b/_shared_utils/shared_utils/gtfs_analytics_data.yml @@ -83,6 +83,7 @@ stop_segments: route_dir_cols: ["route_id", "direction_id"] shape_stop_single_segment: "rollup_singleday/speeds_shape_stop_segments" #-- stop after Oct 2024 route_dir_single_segment: "rollup_singleday/speeds_route_dir_segments" + route_dir_single_segment_detail: "rollup_singleday/speeds_route_dir_segments_detail" # interim for speedmaps route_dir_multi_segment: "rollup_multiday/speeds_route_dir_segments" segments_file: "segment_options/shape_stop_segments" max_speed: ${speed_vars.max_speed} diff --git a/rt_segment_speeds/scripts/average_segment_speeds.py b/rt_segment_speeds/scripts/average_segment_speeds.py index 313426798..51e432a88 100644 --- a/rt_segment_speeds/scripts/average_segment_speeds.py +++ b/rt_segment_speeds/scripts/average_segment_speeds.py @@ -269,6 +269,7 @@ def segment_averages_detail( TIME_OF_DAY_FILE = dict_inputs["shape_stop_single_segment"] + "_test" ROUTE_SEG_FILE = dict_inputs["route_dir_single_segment"] + ROUTE_SEG_DETAIL_FILE = dict_inputs["route_dir_single_segment_detail"] for analysis_date in analysis_date_list: @@ -279,6 +280,14 @@ def segment_averages_detail( export_file = ROUTE_SEG_FILE, weighted_averages = True ) + + segment_averages( + [analysis_date], + segment_type, + group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, + export_file = ROUTE_SEG_DETAIL_FILE, + weighted_averages = True + ) segment_averages( [analysis_date], From 4e2de3358f2bdd1ff4e05070f4dd85576323aa40 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 08:27:19 -0800 Subject: [PATCH 10/21] add filename --- .../scripts/average_segment_speeds.py | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/rt_segment_speeds/scripts/average_segment_speeds.py b/rt_segment_speeds/scripts/average_segment_speeds.py index 51e432a88..23d3a6740 100644 --- a/rt_segment_speeds/scripts/average_segment_speeds.py +++ b/rt_segment_speeds/scripts/average_segment_speeds.py @@ -273,13 +273,13 @@ def segment_averages_detail( for analysis_date in analysis_date_list: - segment_averages( - [analysis_date], - segment_type, - group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, - export_file = ROUTE_SEG_FILE, - weighted_averages = True - ) + # segment_averages( + # [analysis_date], + # segment_type, + # group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, + # export_file = ROUTE_SEG_FILE, + # weighted_averages = True + # ) segment_averages( [analysis_date], @@ -289,14 +289,14 @@ def segment_averages_detail( weighted_averages = True ) - segment_averages( - [analysis_date], - segment_type, - group_cols = (OPERATOR_COLS + ROUTE_DIR_COLS + - STOP_PAIR_COLS + ["time_of_day"]), - export_file = TIME_OF_DAY_FILE, - weighted_averages = False - ) + # segment_averages( + # [analysis_date], + # segment_type, + # group_cols = (OPERATOR_COLS + ROUTE_DIR_COLS + + # STOP_PAIR_COLS + ["time_of_day"]), + # export_file = TIME_OF_DAY_FILE, + # weighted_averages = False + # ) ''' from segment_speed_utils.project_vars import weeks_available From 2013856ae884227d1bbd289f8ecfbc60444fe0cc Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 16:59:16 +0000 Subject: [PATCH 11/21] add flexibility to speedmaps utils --- ca_transit_speed_maps/02_sfmta_compare.ipynb | 616 ++++++++ ca_transit_speed_maps/Untitled.ipynb | 1314 +++++++++++++++++ .../_rt_progress_2024-10-16.parquet | Bin 0 -> 16198 bytes .../_rt_progress_2024-11-13.parquet | Bin 0 -> 16417 bytes ca_transit_speed_maps/speedmap_utils.py | 6 +- ca_transit_speed_maps/speedmaps.ipynb | 347 +---- portfolio/rt/district_04-oakland.md | 1 - portfolio/rt/district_05-san-luis-obispo.md | 1 - portfolio/rt/district_06-fresno.md | 1 - portfolio/rt/district_07-los-angeles.md | 1 - portfolio/rt/district_08-san-bernardino.md | 1 - portfolio/rt/district_09-bishop.md | 1 - portfolio/rt/district_10-stockton.md | 1 - portfolio/rt/district_11-san-diego.md | 1 - portfolio/rt/district_12-irvine.md | 1 - portfolio/sites/rt.yml | 186 +-- 16 files changed, 2063 insertions(+), 415 deletions(-) create mode 100644 ca_transit_speed_maps/02_sfmta_compare.ipynb create mode 100644 ca_transit_speed_maps/Untitled.ipynb create mode 100644 ca_transit_speed_maps/_rt_progress_2024-10-16.parquet create mode 100644 ca_transit_speed_maps/_rt_progress_2024-11-13.parquet delete mode 100644 portfolio/rt/district_04-oakland.md delete mode 100644 portfolio/rt/district_05-san-luis-obispo.md delete mode 100644 portfolio/rt/district_06-fresno.md delete mode 100644 portfolio/rt/district_07-los-angeles.md delete mode 100644 portfolio/rt/district_08-san-bernardino.md delete mode 100644 portfolio/rt/district_09-bishop.md delete mode 100644 portfolio/rt/district_10-stockton.md delete mode 100644 portfolio/rt/district_11-san-diego.md delete mode 100644 portfolio/rt/district_12-irvine.md diff --git a/ca_transit_speed_maps/02_sfmta_compare.ipynb b/ca_transit_speed_maps/02_sfmta_compare.ipynb new file mode 100644 index 000000000..6a65293b6 --- /dev/null +++ b/ca_transit_speed_maps/02_sfmta_compare.ipynb @@ -0,0 +1,616 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "fdf37ad7-7ce7-49a5-9bec-c087c2306a45", + "metadata": {}, + "source": [ + "# Legacy Speedmaps" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1e596d62-24d4-4d92-8644-f06f07a08af6", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "import calitp_data_analysis.magics\n", + "\n", + "from rt_analysis import rt_filter_map_plot\n", + "import update_vars_index\n", + "\n", + "from IPython.display import display, Markdown\n", + "import shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b9ee8c82-c6eb-4d49-9e42-aa07d0e3ab1d", + "metadata": { + "tags": [ + "parameters" + ] + }, + "outputs": [], + "source": [ + "## parameters cell\n", + "itp_id = 282" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5d181a59-a2a9-41d6-acf4-17e89169a2fe", + "metadata": {}, + "outputs": [], + "source": [ + "analysis_date = shared_utils.rt_dates.DATES['aug2024']\n", + "import datetime as dt\n", + "if itp_id == 293:\n", + " analysis_date = shared_utils.rt_dates.DATES['jul2024']\n", + "elif itp_id == 170:\n", + " analysis_date = shared_utils.rt_dates.DATES['may2024']\n", + "elif itp_id == 48:\n", + " analysis_date = shared_utils.rt_dates.DATES['mar2024']\n", + "\n", + "if type(analysis_date) == str: analysis_date = dt.date.fromisoformat(analysis_date)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "efb71183-5fa0-4f46-87f8-8d82b486ebd3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"human_date\": \"August 14 2024 (Wednesday)\"}\n" + ] + } + ], + "source": [ + "%%capture_parameters\n", + "human_date = analysis_date.strftime('%B %d %Y (%A)')\n", + "human_date" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "58ad1b18-ee87-4a00-9d0b-8537ec2fe11c", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "rt_day = rt_filter_map_plot.from_gcs(itp_id, analysis_date)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5938088e-e363-4605-b29c-a00d163ea546", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"organization_name\": \"City and County of San Francisco\"}\n" + ] + } + ], + "source": [ + "%%capture_parameters\n", + "organization_name = rt_day.organization_name\n", + "organization_name" + ] + }, + { + "cell_type": "markdown", + "id": "4c90af26-abf2-4763-a135-39f7257683b7", + "metadata": {}, + "source": [ + "# {organization_name}" + ] + }, + { + "cell_type": "markdown", + "id": "09dc323a-6967-46a9-9bd4-d969f7ce7c73", + "metadata": { + "tags": [] + }, + "source": [ + "## About These Maps:\n", + "\n", + "* Each map shows bus (and rail, if applicable) speeds for {organization_name}, with a map each for the morning peak, midday, and afternoon peak periods on {human_date}.\n", + "* On the map, routes are split into segments corresponding to the distance between two stops, allowing you to focus on specific portions of the route experiencing a slowdown.\n", + "* Route segments are arrow-shaped to indicate direction of travel. Thicker segments indicate more frequent transit routes.\n", + "* State Highway Network routes are outlined in gray.\n", + "* Hover over, a segment with your mouse to see the exact speed, route name, and transit service frequency in that segment. \n", + " * Higher-frequency routes (3+ trips per hour) are especially important, since those slowdowns correspond to more vehicles, and riders, delayed in traffic." + ] + }, + { + "cell_type": "markdown", + "id": "e2317d91-607e-4a5d-80e3-77734fc8a27f", + "metadata": { + "tags": [] + }, + "source": [ + "## Morning Peak" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "122904ea-3a35-42f5-b82f-d83355ed32ed", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "rt_day.set_filter(start_time='06:00', end_time='09:00')" + ] + }, + { + "cell_type": "markdown", + "id": "2f641e37-a206-4c44-b780-5b2a3dacd6e8", + "metadata": {}, + "source": [ + "### 20th Percentile Speeds by Segment" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "20f58f8e-75d7-477b-b61d-48ba95323820", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%capture\n", + "_m = rt_day.segment_speed_map(how='low_speeds', no_title=True, shn=True,\n", + " no_render=True\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "42f27c08-59b9-4c48-92fe-c3de3932faee", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%capture\n", + "rt_day.map_gz_export(access_cmap=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "853aa08f-48f7-4e0c-bf0c-7600472fe634", + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rt_day.render_spa_link()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "bb5ff203-71be-484b-9821-ce753d36e9d1", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# rt_day.display_spa_map()" + ] + }, + { + "cell_type": "markdown", + "id": "94cddd80-8b9c-4da6-ac4e-c7b6d7e7ae3b", + "metadata": {}, + "source": [ + "# Segment Speeds (speedmaps detail segments)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e5b0f888-71a2-4f9b-ad15-63d8410fa77f", + "metadata": {}, + "outputs": [], + "source": [ + "import speedmap_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8b298e2b-d32b-4a6c-b605-88a7038efbe5", + "metadata": { + "tags": [ + "parameters" + ] + }, + "outputs": [], + "source": [ + "## parameters cell\n", + "organization_source_record_id = 'rechaapWbeffO33OX'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f946ceed-466a-4f9c-bbac-6c0a56bb41c8", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "speedmap_segs, this_shn = speedmap_utils.read_segments_shn(organization_source_record_id=organization_source_record_id)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6638fa7c-f37e-493e-b179-d225662a2766", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"human_date\": \"November 13 2024 (Wednesday)\"}\n" + ] + } + ], + "source": [ + "%%capture_parameters\n", + "human_date = update_vars_index.ANALYSIS_DATE.strftime('%B %d %Y (%A)')\n", + "human_date" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f272c628-b2a3-4c8d-9505-92312fcbe627", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"organization_name\": \"City and County of San Francisco\"}\n" + ] + } + ], + "source": [ + "%%capture_parameters\n", + "organization_name = speedmap_segs.organization_name.iloc[0]\n", + "organization_name" + ] + }, + { + "cell_type": "markdown", + "id": "ef9c53a2-3924-4b4a-b9c8-2b603580e363", + "metadata": { + "tags": [] + }, + "source": [ + "## AM Peak (07:00-10:00)" + ] + }, + { + "cell_type": "markdown", + "id": "9e9bdf56-be99-4693-bfda-349abdd1f279", + "metadata": {}, + "source": [ + "### 20th Percentile Speeds by Segment" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1b5cdb1b-2526-459a-8a8d-40bafa460c2e", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "link = speedmap_utils.map_time_period(district_gdf=this_shn, speedmap_segs=speedmap_segs, analysis_date=update_vars_index.ANALYSIS_DATE,\n", + " time_of_day='AM Peak', map_type='new_speedmap')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d997a853-ef24-4146-afab-cdc4238e6417", + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if link: speedmap_utils.render_spa_link(link)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3c7544a4-a3d6-49c6-b0d7-9d73122b174d", + "metadata": {}, + "outputs": [], + "source": [ + "# if link: speedmap_utils.display_spa_map(link)" + ] + }, + { + "cell_type": "markdown", + "id": "5b63a9ef-a4bb-47a9-a3f4-67cc420dc20d", + "metadata": {}, + "source": [ + "# Segment Speeds (stop to stop segments)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "523de5f9-c1b9-4b42-831d-61c21ee6c8a3", + "metadata": {}, + "outputs": [], + "source": [ + "from shared_utils import catalog_utils, rt_utils\n", + "from calitp_data_analysis import geography_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d260a030-f52a-44bf-b5e9-1655ed8de361", + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "import pandas as pd\n", + "from siuba import *\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "265797da-5bc4-4340-8530-4543d75e9d4a", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'catalog_utils' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[3], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m catalog \u001b[38;5;241m=\u001b[39m \u001b[43mcatalog_utils\u001b[49m\u001b[38;5;241m.\u001b[39mget_catalog(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mgtfs_analytics_data\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'catalog_utils' is not defined" + ] + } + ], + "source": [ + "catalog = catalog_utils.get_catalog('gtfs_analytics_data')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "bb11c9ef-a678-4114-8fbc-bd3a81e29410", + "metadata": {}, + "outputs": [], + "source": [ + "path = f'{catalog.stop_segments.dir}{catalog.stop_segments.route_dir_single_segment}_{update_vars_index.ANALYSIS_DATE}.parquet'" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "f8e24fbe-3c77-4305-bde2-e5ab8a7b1815", + "metadata": {}, + "outputs": [], + "source": [ + "stop_segs = gpd.read_parquet(path, filters=[['organization_source_record_id', '==', organization_source_record_id]])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "8001d8c6-3a98-49ef-b1a5-a04da26f33e8", + "metadata": {}, + "outputs": [], + "source": [ + "stop_segs = stop_segs >> filter(_.time_period == 'peak')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "74361dd3-1211-456d-8d59-2385aea2b5bb", + "metadata": {}, + "outputs": [], + "source": [ + "stop_segs.n_trips = stop_segs.n_trips / 7" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "12768b30-6beb-47d8-b045-bf4c53683399", + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_segment_gdf(gdf: gpd.GeoDataFrame) -> gpd.GeoDataFrame:\n", + " '''\n", + " Project segment speeds gdf and add column for rich speedmap display\n", + " '''\n", + " gdf = gdf.to_crs(geography_utils.CA_NAD83Albers)\n", + " # TODO move upstream and investigate\n", + " gdf['fast_slow_ratio'] = gdf.p80_mph / gdf.p20_mph\n", + " gdf.fast_slow_ratio = gdf.fast_slow_ratio.replace(np.inf, 3)\n", + " gdf = gdf.round(1)\n", + "\n", + " ## shift to right side of road to display direction\n", + " gdf.geometry = gdf.geometry.apply(rt_utils.try_parallel)\n", + " gdf = gdf.apply(rt_utils.arrowize_by_frequency, axis=1, frequency_col='n_trips')\n", + "\n", + " gdf = gdf >> arrange(_.n_trips)\n", + "\n", + " return gdf" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "0bfc78b2-1108-45b5-98c3-b732d4b413d3", + "metadata": {}, + "outputs": [], + "source": [ + "stop_segs = prepare_segment_gdf(stop_segs)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "9b683366-f6b0-4fbe-9e1a-baaf3fb83390", + "metadata": {}, + "outputs": [], + "source": [ + "cmap = rt_utils.ACCESS_ZERO_THIRTY_COLORSCALE\n", + "legend_url = rt_utils.ACCESS_SPEEDMAP_LEGEND_URL" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "77f85ca4-06b0-44df-9b57-6bed789a73a6", + "metadata": {}, + "outputs": [], + "source": [ + "export_result = rt_utils.set_state_export(\n", + " stop_segs, subfolder = 'test', filename='sfmta_stop_segs_test',\n", + " map_type='speedmap',\n", + " color_col='p20_mph', cmap=cmap, legend_url=legend_url,\n", + " map_title=f'SFMTA with stop to stop segments test {update_vars_index.ANALYSIS_DATE}',\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "df1bcfda-9d71-4574-b298-221038a4be80", + "metadata": {}, + "outputs": [], + "source": [ + "link = export_result['spa_link']" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "2f71d04f-33de-4895-ae09-036059a99cbc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "Open Full Map in New Tab" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if link: speedmap_utils.render_spa_link(link)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e5eaf2fa-b012-4337-9382-66e32b487fff", + "metadata": {}, + "outputs": [], + "source": [ + "# if link: speedmap_utils.display_spa_map(link)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e724687-fee7-4dc9-be11-ef73e378a504", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ca_transit_speed_maps/Untitled.ipynb b/ca_transit_speed_maps/Untitled.ipynb new file mode 100644 index 000000000..efcd1c559 --- /dev/null +++ b/ca_transit_speed_maps/Untitled.ipynb @@ -0,0 +1,1314 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "fa16315d-cbe6-46a8-ba8d-1a7f4a13d1f5", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from siuba import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "072c2189-ce8c-4ba8-8ff5-d3019c18ce15", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_parquet('_rt_progress_2024-11-13.parquet')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "42ab2c27-3e3b-47eb-bfd8-4fe284e6c44f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_nameorganization_source_record_idnamebase64_urlcaltrans_districtstatusanalysis_date
1Los Angeles County Metropolitan Transportation...recPnGkwdpnr8jmHBLA Metro Bus ScheduleaHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX2J1cy...07 - Los Angelesspeedmap_segs_available2024-11-13
2Los Angeles County Metropolitan Transportation...recPnGkwdpnr8jmHBLA Metro Rail ScheduleaHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX3JhaW...07 - Los Angelesspeedmap_segs_available2024-11-13
\n", + "
" + ], + "text/plain": [ + " organization_name \\\n", + "1 Los Angeles County Metropolitan Transportation... \n", + "2 Los Angeles County Metropolitan Transportation... \n", + "\n", + " organization_source_record_id name \\\n", + "1 recPnGkwdpnr8jmHB LA Metro Bus Schedule \n", + "2 recPnGkwdpnr8jmHB LA Metro Rail Schedule \n", + "\n", + " base64_url caltrans_district \\\n", + "1 aHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX2J1cy... 07 - Los Angeles \n", + "2 aHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX3JhaW... 07 - Los Angeles \n", + "\n", + " status analysis_date \n", + "1 speedmap_segs_available 2024-11-13 \n", + "2 speedmap_segs_available 2024-11-13 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df >> filter(_.organization_source_record_id == 'recPnGkwdpnr8jmHB')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "933469f5-95ae-4f24-a0ff-1f6bade43c67", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_nameorganization_source_record_idnamebase64_urlcaltrans_districtstatusanalysis_date
95City of BanningrecuGkFhN2WXGK67HBanning Pass ScheduleaHR0cHM6Ly9kYXRhLnRyaWxsaXVtdHJhbnNpdC5jb20vZ3...08 - San Bernardinospeedmap_segs_available2024-11-13
\n", + "
" + ], + "text/plain": [ + " organization_name organization_source_record_id name \\\n", + "95 City of Banning recuGkFhN2WXGK67H Banning Pass Schedule \n", + "\n", + " base64_url caltrans_district \\\n", + "95 aHR0cHM6Ly9kYXRhLnRyaWxsaXVtdHJhbnNpdC5jb20vZ3... 08 - San Bernardino \n", + "\n", + " status analysis_date \n", + "95 speedmap_segs_available 2024-11-13 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df >> filter(_.organization_source_record_id == 'recuGkFhN2WXGK67H')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d4cb0ad2-d2f4-490d-8c52-d626f9e159b9", + "metadata": {}, + "outputs": [], + "source": [ + "from shared_utils import rt_dates, rt_utils, catalog_utils, schedule_rt_utils\n", + "import geopandas as gpd" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "46649c9d-ac8e-46b4-bf27-def490a7ced5", + "metadata": {}, + "outputs": [], + "source": [ + "catalog = catalog_utils.get_catalog('gtfs_analytics_data')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9d5cb43d-7eed-4da0-8b67-d3c05c581404", + "metadata": {}, + "outputs": [], + "source": [ + "from update_vars_index import ANALYSIS_DATE" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "87a5c540-45f3-42be-90e5-69ed757e2a2e", + "metadata": {}, + "outputs": [], + "source": [ + "path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{ANALYSIS_DATE}.parquet'\n", + "speedmap_segs = gpd.read_parquet(path)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "9b6bda8f-f084-4943-baa2-38a2aee1034f", + "metadata": {}, + "outputs": [], + "source": [ + "assert (speedmap_segs >> select(-_.route_short_name)).isna().any().any() == False, 'no cols besides route_short_name should be nan'" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "1b57fffd-3bd3-4210-b62a-5addccdc3d4b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['GCS', 'COMPILED_CACHED_VIEWS', 'SEGMENT_GCS', 'SCHED_GCS', 'RT_SCHED_GCS', 'SHARED_GCS', 'PREDICTIONS_GCS', 'PUBLIC_GCS'])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "catalog.gcs_paths.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "a6b7ec13-b580-4730-a525-26a08076a950", + "metadata": {}, + "outputs": [], + "source": [ + "xpath = f\"{catalog.gcs_paths.SCHED_GCS}{catalog['schedule_tables']['gtfs_key_crosswalk']}_{ANALYSIS_DATE}.parquet\"" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "f95f9ed4-4426-40a7-8b7c-b71d7ca1ca04", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'gs://calitp-analytics-data/data-analyses/gtfs_schedule/crosswalk/gtfs_key_organization_2024-11-13.parquet'" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xpath" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "f1981cfb-92a9-4760-b76c-c2c0bced4300", + "metadata": {}, + "outputs": [], + "source": [ + "df2 = pd.read_parquet(xpath)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "5e60982a-5b01-40e6-af9e-0d3daf8b80dc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
schedule_gtfs_dataset_keynameschedule_source_record_idbase64_urlorganization_source_record_idorganization_namecaltrans_districtcounties_servedhq_cityhq_county...service_area_sq_milespopulationservice_area_popsubrecipient_typeprimary_uzareporter_typeorganization_typevoms_ptvoms_doyear
01770249a5a2e770ca90628434d4934b1VCTC GMV SchedulerecrAG7e0oOiR6FiPaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZzreckQmUdXUzHFmlVfCity of Ojai07 - Los AngelesNoneOjaiNone...<NA>NaN<NA>Rural General Public TransitNoneRural ReporterCounty or Local Government Unit or Department ...<NA>22022
11770249a5a2e770ca90628434d4934b1VCTC GMV SchedulerecrAG7e0oOiR6FiPaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZzrec7EN71rsZxDFxZdVentura County Transportation Commission07 - Los AngelesSanta Clara;VenturaCamarilloVentura...28376117.0209877NoneNoneFull ReporterPublic Agency or Authority of Transit Service45<NA>2022
21770249a5a2e770ca90628434d4934b1VCTC GMV SchedulerecrAG7e0oOiR6FiPaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZzrecS7GnKTcQVX20HEGold Coast Transit District07 - Los AngelesVenturaOxnardVentura...84376117.0374827NoneNoneFull ReporterPublic Agency or Authority of Transit Service22492022
\n", + "

3 rows × 30 columns

\n", + "
" + ], + "text/plain": [ + " schedule_gtfs_dataset_key name \\\n", + "0 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "1 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "2 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "\n", + " schedule_source_record_id base64_url \\\n", + "0 recrAG7e0oOiR6FiP aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "1 recrAG7e0oOiR6FiP aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "2 recrAG7e0oOiR6FiP aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "\n", + " organization_source_record_id organization_name \\\n", + "0 reckQmUdXUzHFmlVf City of Ojai \n", + "1 rec7EN71rsZxDFxZd Ventura County Transportation Commission \n", + "2 recS7GnKTcQVX20HE Gold Coast Transit District \n", + "\n", + " caltrans_district counties_served hq_city hq_county ... \\\n", + "0 07 - Los Angeles None Ojai None ... \n", + "1 07 - Los Angeles Santa Clara;Ventura Camarillo Ventura ... \n", + "2 07 - Los Angeles Ventura Oxnard Ventura ... \n", + "\n", + " service_area_sq_miles population service_area_pop \\\n", + "0 NaN \n", + "1 28 376117.0 209877 \n", + "2 84 376117.0 374827 \n", + "\n", + " subrecipient_type primary_uza reporter_type \\\n", + "0 Rural General Public Transit None Rural Reporter \n", + "1 None None Full Reporter \n", + "2 None None Full Reporter \n", + "\n", + " organization_type voms_pt voms_do year \n", + "0 County or Local Government Unit or Department ... 2 2022 \n", + "1 Public Agency or Authority of Transit Service 45 2022 \n", + "2 Public Agency or Authority of Transit Service 22 49 2022 \n", + "\n", + "[3 rows x 30 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 >> head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "e455cc33-c18d-41f1-8cf4-458a1dff41a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
schedule_gtfs_dataset_keynameschedule_source_record_idbase64_urlorganization_source_record_idorganization_namecaltrans_districtcounties_servedhq_cityhq_county...service_area_sq_milespopulationservice_area_popsubrecipient_typeprimary_uzareporter_typeorganization_typevoms_ptvoms_doyear
\n", + "

0 rows × 30 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [schedule_gtfs_dataset_key, name, schedule_source_record_id, base64_url, organization_source_record_id, organization_name, caltrans_district, counties_served, hq_city, hq_county, is_public_entity, is_publicly_operating, funding_sources, on_demand_vehicles_at_max_service, vehicles_at_max_service, number_of_state_counties, uza_name, density, number_of_counties_with_service, state_admin_funds_expended, service_area_sq_miles, population, service_area_pop, subrecipient_type, primary_uza, reporter_type, organization_type, voms_pt, voms_do, year]\n", + "Index: []\n", + "\n", + "[0 rows x 30 columns]" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 >> filter(_.caltrans_district.isna()) >> distinct(_.name, _keep_all=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "e89bff25-6473-4d80-9b58-0b497a27d0a4", + "metadata": {}, + "outputs": [], + "source": [ + "CROSSWALK_COLS = [\n", + " \"schedule_gtfs_dataset_key\", \"name\",\n", + " \"caltrans_district\",\n", + " \"organization_source_record_id\", \"organization_name\",\n", + " \"base64_url\"\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "707b5caa-2705-4844-b05c-4eb2f2eb8579", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
schedule_gtfs_dataset_keynamecaltrans_districtorganization_source_record_idorganization_namebase64_url
01770249a5a2e770ca90628434d4934b1VCTC GMV Schedule07 - Los AngelesreckQmUdXUzHFmlVfCity of OjaiaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz
11770249a5a2e770ca90628434d4934b1VCTC GMV Schedule07 - Los Angelesrec7EN71rsZxDFxZdVentura County Transportation CommissionaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz
21770249a5a2e770ca90628434d4934b1VCTC GMV Schedule07 - Los AngelesrecS7GnKTcQVX20HEGold Coast Transit DistrictaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz
31770249a5a2e770ca90628434d4934b1VCTC GMV Schedule07 - Los Angelesrec1ErIn9gG1Isk5WCity of Simi ValleyaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz
41770249a5a2e770ca90628434d4934b1VCTC GMV Schedule07 - Los AngelesrecojKzQsBzE1hjVuCity of MoorparkaHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz
.....................
2187f2ae5bcb719c5912462858471a28aa5Glenn Schedule03 - Marysvillerec0sMQyK2v8Cs4IoGlenn CountyaHR0cHM6Ly9jZG4uaGlidXdlYnNpdGVzLmNvbS9hZjI2ZG...
219ff1bc5dde661d62c877165421e9ca257Santa Ynez Mecatran Schedule05 - San Luis Obisporeckp33bhAuZlmO1MCity of SolvangaHR0cDovL2FwcC5tZWNhdHJhbi5jb20vdXJiL3dzL2ZlZW...
220b475cf3b7ceaae9fc30b22cb8d3a1e33SLO Schedule05 - San Luis ObisporecMM99msxjmc6PPvCity of San Luis ObispoaHR0cHM6Ly9hcHAubWVjYXRyYW4uY29tL3VyYi93cy9mZW...
221c4092405159366c705b62df938293a4eMetrolink Schedule08 - San BernardinorecQp6uQAUFcenmQ6San Bernardino County Transportation AuthorityaHR0cHM6Ly93d3cubWV0cm9saW5rdHJhaW5zLmNvbS9nbG...
222c4092405159366c705b62df938293a4eMetrolink Schedule07 - Los Angelesrec7YtRySB7AsTfLwSouthern California Regional Rail AuthorityaHR0cHM6Ly93d3cubWV0cm9saW5rdHJhaW5zLmNvbS9nbG...
\n", + "

217 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " schedule_gtfs_dataset_key name \\\n", + "0 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "1 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "2 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "3 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + "4 1770249a5a2e770ca90628434d4934b1 VCTC GMV Schedule \n", + ".. ... ... \n", + "218 7f2ae5bcb719c5912462858471a28aa5 Glenn Schedule \n", + "219 ff1bc5dde661d62c877165421e9ca257 Santa Ynez Mecatran Schedule \n", + "220 b475cf3b7ceaae9fc30b22cb8d3a1e33 SLO Schedule \n", + "221 c4092405159366c705b62df938293a4e Metrolink Schedule \n", + "222 c4092405159366c705b62df938293a4e Metrolink Schedule \n", + "\n", + " caltrans_district organization_source_record_id \\\n", + "0 07 - Los Angeles reckQmUdXUzHFmlVf \n", + "1 07 - Los Angeles rec7EN71rsZxDFxZd \n", + "2 07 - Los Angeles recS7GnKTcQVX20HE \n", + "3 07 - Los Angeles rec1ErIn9gG1Isk5W \n", + "4 07 - Los Angeles recojKzQsBzE1hjVu \n", + ".. ... ... \n", + "218 03 - Marysville rec0sMQyK2v8Cs4Io \n", + "219 05 - San Luis Obispo reckp33bhAuZlmO1M \n", + "220 05 - San Luis Obispo recMM99msxjmc6PPv \n", + "221 08 - San Bernardino recQp6uQAUFcenmQ6 \n", + "222 07 - Los Angeles rec7YtRySB7AsTfLw \n", + "\n", + " organization_name \\\n", + "0 City of Ojai \n", + "1 Ventura County Transportation Commission \n", + "2 Gold Coast Transit District \n", + "3 City of Simi Valley \n", + "4 City of Moorpark \n", + ".. ... \n", + "218 Glenn County \n", + "219 City of Solvang \n", + "220 City of San Luis Obispo \n", + "221 San Bernardino County Transportation Authority \n", + "222 Southern California Regional Rail Authority \n", + "\n", + " base64_url \n", + "0 aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "1 aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "2 aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "3 aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + "4 aHR0cHM6Ly9nb3ZjYnVzLmNvbS9ndGZz \n", + ".. ... \n", + "218 aHR0cHM6Ly9jZG4uaGlidXdlYnNpdGVzLmNvbS9hZjI2ZG... \n", + "219 aHR0cDovL2FwcC5tZWNhdHJhbi5jb20vdXJiL3dzL2ZlZW... \n", + "220 aHR0cHM6Ly9hcHAubWVjYXRyYW4uY29tL3VyYi93cy9mZW... \n", + "221 aHR0cHM6Ly93d3cubWV0cm9saW5rdHJhaW5zLmNvbS9nbG... \n", + "222 aHR0cHM6Ly93d3cubWV0cm9saW5rdHJhaW5zLmNvbS9nbG... \n", + "\n", + "[217 rows x 6 columns]" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2[CROSSWALK_COLS].drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "fbf844f1-5b87-465f-bf0f-688418943e6e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_nameorganization_source_record_idnamebase64_urlcaltrans_districtstatusanalysis_date
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [organization_name, organization_source_record_id, name, base64_url, caltrans_district, status, analysis_date]\n", + "Index: []" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df >> filter(_.caltrans_district.isna()) >> distinct(_.name, _keep_all=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "9b2c96d0-1b18-423d-884e-1b84d1afb928", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
schedule_gtfs_dataset_keyshape_array_keyshape_idroute_iddirection_idstop_pairstop_pair_namesegment_idtime_of_dayp50_mph...p80_mphnamecaltrans_districtorganization_source_record_idorganization_namebase64_urlgeometryn_trips_schtrips_hr_schroute_short_name
0015d67d5b75b5cf2b710bbadadfb75f59de0051e42d628ca7e100bb7c66ebe9547351.040414__404672nd St & Grand Ave__Bellam Blvd & Francisco Bl...40414-40467-1AM Peak23.25...25.49Bay Area 511 Marin ScheduleNonerecNOb7pqBRlQVG5eMarin County Transit DistrictaHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW...LINESTRING (-122.51997 37.97029, -122.51996 37...51.66666735
10666caf3ec1ecc96b74f4477ee4bc939feb78ef0323d9eb3bf79f5fa326a0f127201312_JUNE24720-131830.03033__31205th / Colorado__5th / Santa Monica3033-3120-1AM Peak9.25...11.58LA Metro Bus ScheduleNonerecPnGkwdpnr8jmHBLos Angeles County Metropolitan Transportation...aHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX2J1cy...LINESTRING (-118.49124 34.01468, -118.49124 34...155.000000720
20881af3822466784992a49f1cc57d38f6c0150fab06fb29eccfe9c72e1143384p_897680SMART1.071021__71031San Rafael SMART__Marin Civic Center SMART71021-71031-1AM Peak25.80...28.12Bay Area 511 Sonoma-Marin Area Rail Transit Sc...NonerecUmm4gcNXaqrwpnSonoma-Marin Area Rail Transit DistrictaHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW...LINESTRING (-122.52271 37.97198, -122.52270 37...51.666667SMART
309a703757d1ed14ca9580b1385e39315a1c3d1dab32a346fd7d575250cbb41c32187261170.08768759__8768760Hawthorne Blvd & Marine Ave__Hawthorne Blvd & ...8768759-8768760-1AM Peak20.27...26.35Lawndale Beat GMV ScheduleNonerecj8LXdeSurpSRNUCity of LawndaleaHR0cHM6Ly9yaWRlbGF3bmRhbGViZWF0LmNvbS9ndGZzLINESTRING (-118.35233 33.89510, -118.35237 33...41.333333EX
409e16227fc42c4fe90204a9d115810341c56e305a58b51f30f3a46ae5f2a93c9p_900750481.07715710__7715720Range Ave & Steele Ln__Range Ave & Paulin Creek7715710-7715720-1AM Peak28.73...36.02Bay Area 511 Sonoma County Transit ScheduleNonerecDupUxInMUgxeizSonoma CountyaHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW...LINESTRING (-122.73249 38.46077, -122.73249 38...20.66666748
..................................................................
81f4c3ea214214ee0d96f7646b3e9d69dc12c175740e7def3747210f21da4e81bb10668117901.0122006__121951Pismo at Archer__Higuera at South (SB)122006-121951-1AM Peak20.61...20.61SLO Peak Transit ScheduleNonerecMM99msxjmc6PPvCity of San Luis ObispoaHR0cDovL2RhdGEucGVha3RyYW5zaXQuY29tL3N0YXRpY2...LINESTRING (-120.66787 35.27334, -120.66801 35...31.0000002B
82f5a749dd65924e025b1293c58f95f8d6ad12bceb4dfbf8ae7788bb65472f94315cf6811a-2f53-4199-b315-4408eb816e82CC0.074742__74689Richmond__Martinez74742-74689-1PM Peak37.28...37.28Bay Area 511 Capitol Corridor ScheduleNonerecvEBkSBc7UxlarCCapitol Corridor Joint Powers AuthorityaHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW...LINESTRING (-122.35390 37.93677, -122.35432 37...30.600000CC
83f74424acf8c41e4c1e9fd42838c4875cba7e1331e1a0c7139ed0c736aeaed04e18106_shp1940.02224__2233Ramona Blvd and Lexington Ave E__Ramona Blvd a...2224-2233-1AM Peak27.64...27.64Foothill ScheduleNonerecZm8PD8WIdcDL0MCity of DuarteaHR0cHM6Ly9mb290aGlsbHRyYW5zaXQucmlkZXJhbGVydH...LINESTRING (-118.03970 34.07202, -118.03948 34...103.333333194
84fb467982dcc77a7f9199bebe709bb70042e6a69955af03151dab76b173c49f4e115141530.061339__61340Washington & Charles__Washington & Pastoria61339-61340-1AM Peak17.50...17.74Bay Area 511 Santa Clara Transit ScheduleNonerecC5CT95EufmQCXrSanta Clara Valley Transportation AuthorityaHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW...LINESTRING (-122.03542 37.37704, -122.03648 37...51.66666753
85ff1bc5dde661d62c877165421e9ca2574319906a6eeb052c39f00e36b2a732d3ROUTEA:1ROUTEA0.0LO_02__exp_08Santa Ines Mission (Mission Dr. & Alisal Rd.)_...LO_02-exp_08-1AM Peak19.71...22.79Santa Ynez Mecatran ScheduleNonereckp33bhAuZlmO1MCity of SolvangaHR0cDovL2FwcC5tZWNhdHJhbi5jb20vdXJiL3dzL2ZlZW...LINESTRING (-120.13668 34.59597, -120.13668 34...41.333333None
\n", + "

86 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " schedule_gtfs_dataset_key shape_array_key \\\n", + "0 015d67d5b75b5cf2b710bbadadfb75f5 9de0051e42d628ca7e100bb7c66ebe95 \n", + "1 0666caf3ec1ecc96b74f4477ee4bc939 feb78ef0323d9eb3bf79f5fa326a0f12 \n", + "2 0881af3822466784992a49f1cc57d38f 6c0150fab06fb29eccfe9c72e1143384 \n", + "3 09a703757d1ed14ca9580b1385e39315 a1c3d1dab32a346fd7d575250cbb41c3 \n", + "4 09e16227fc42c4fe90204a9d11581034 1c56e305a58b51f30f3a46ae5f2a93c9 \n", + ".. ... ... \n", + "81 f4c3ea214214ee0d96f7646b3e9d69dc 12c175740e7def3747210f21da4e81bb \n", + "82 f5a749dd65924e025b1293c58f95f8d6 ad12bceb4dfbf8ae7788bb65472f9431 \n", + "83 f74424acf8c41e4c1e9fd42838c4875c ba7e1331e1a0c7139ed0c736aeaed04e \n", + "84 fb467982dcc77a7f9199bebe709bb700 42e6a69955af03151dab76b173c49f4e \n", + "85 ff1bc5dde661d62c877165421e9ca257 4319906a6eeb052c39f00e36b2a732d3 \n", + "\n", + " shape_id route_id direction_id \\\n", + "0 47 35 1.0 \n", + "1 7201312_JUNE24 720-13183 0.0 \n", + "2 p_897680 SMART 1.0 \n", + "3 21872 6117 0.0 \n", + "4 p_900750 48 1.0 \n", + ".. ... ... ... \n", + "81 10668 11790 1.0 \n", + "82 5cf6811a-2f53-4199-b315-4408eb816e82 CC 0.0 \n", + "83 18106_shp 194 0.0 \n", + "84 115141 53 0.0 \n", + "85 ROUTEA:1 ROUTEA 0.0 \n", + "\n", + " stop_pair stop_pair_name \\\n", + "0 40414__40467 2nd St & Grand Ave__Bellam Blvd & Francisco Bl... \n", + "1 3033__3120 5th / Colorado__5th / Santa Monica \n", + "2 71021__71031 San Rafael SMART__Marin Civic Center SMART \n", + "3 8768759__8768760 Hawthorne Blvd & Marine Ave__Hawthorne Blvd & ... \n", + "4 7715710__7715720 Range Ave & Steele Ln__Range Ave & Paulin Creek \n", + ".. ... ... \n", + "81 122006__121951 Pismo at Archer__Higuera at South (SB) \n", + "82 74742__74689 Richmond__Martinez \n", + "83 2224__2233 Ramona Blvd and Lexington Ave E__Ramona Blvd a... \n", + "84 61339__61340 Washington & Charles__Washington & Pastoria \n", + "85 LO_02__exp_08 Santa Ines Mission (Mission Dr. & Alisal Rd.)_... \n", + "\n", + " segment_id time_of_day p50_mph ... p80_mph \\\n", + "0 40414-40467-1 AM Peak 23.25 ... 25.49 \n", + "1 3033-3120-1 AM Peak 9.25 ... 11.58 \n", + "2 71021-71031-1 AM Peak 25.80 ... 28.12 \n", + "3 8768759-8768760-1 AM Peak 20.27 ... 26.35 \n", + "4 7715710-7715720-1 AM Peak 28.73 ... 36.02 \n", + ".. ... ... ... ... ... \n", + "81 122006-121951-1 AM Peak 20.61 ... 20.61 \n", + "82 74742-74689-1 PM Peak 37.28 ... 37.28 \n", + "83 2224-2233-1 AM Peak 27.64 ... 27.64 \n", + "84 61339-61340-1 AM Peak 17.50 ... 17.74 \n", + "85 LO_02-exp_08-1 AM Peak 19.71 ... 22.79 \n", + "\n", + " name caltrans_district \\\n", + "0 Bay Area 511 Marin Schedule None \n", + "1 LA Metro Bus Schedule None \n", + "2 Bay Area 511 Sonoma-Marin Area Rail Transit Sc... None \n", + "3 Lawndale Beat GMV Schedule None \n", + "4 Bay Area 511 Sonoma County Transit Schedule None \n", + ".. ... ... \n", + "81 SLO Peak Transit Schedule None \n", + "82 Bay Area 511 Capitol Corridor Schedule None \n", + "83 Foothill Schedule None \n", + "84 Bay Area 511 Santa Clara Transit Schedule None \n", + "85 Santa Ynez Mecatran Schedule None \n", + "\n", + " organization_source_record_id \\\n", + "0 recNOb7pqBRlQVG5e \n", + "1 recPnGkwdpnr8jmHB \n", + "2 recUmm4gcNXaqrwpn \n", + "3 recj8LXdeSurpSRNU \n", + "4 recDupUxInMUgxeiz \n", + ".. ... \n", + "81 recMM99msxjmc6PPv \n", + "82 recvEBkSBc7UxlarC \n", + "83 recZm8PD8WIdcDL0M \n", + "84 recC5CT95EufmQCXr \n", + "85 reckp33bhAuZlmO1M \n", + "\n", + " organization_name \\\n", + "0 Marin County Transit District \n", + "1 Los Angeles County Metropolitan Transportation... \n", + "2 Sonoma-Marin Area Rail Transit District \n", + "3 City of Lawndale \n", + "4 Sonoma County \n", + ".. ... \n", + "81 City of San Luis Obispo \n", + "82 Capitol Corridor Joint Powers Authority \n", + "83 City of Duarte \n", + "84 Santa Clara Valley Transportation Authority \n", + "85 City of Solvang \n", + "\n", + " base64_url \\\n", + "0 aHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW... \n", + "1 aHR0cHM6Ly9naXRsYWIuY29tL0xBQ01UQS9ndGZzX2J1cy... \n", + "2 aHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW... \n", + "3 aHR0cHM6Ly9yaWRlbGF3bmRhbGViZWF0LmNvbS9ndGZz \n", + "4 aHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW... \n", + ".. ... \n", + "81 aHR0cDovL2RhdGEucGVha3RyYW5zaXQuY29tL3N0YXRpY2... \n", + "82 aHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW... \n", + "83 aHR0cHM6Ly9mb290aGlsbHRyYW5zaXQucmlkZXJhbGVydH... \n", + "84 aHR0cHM6Ly9hcGkuNTExLm9yZy90cmFuc2l0L2RhdGFmZW... \n", + "85 aHR0cDovL2FwcC5tZWNhdHJhbi5jb20vdXJiL3dzL2ZlZW... \n", + "\n", + " geometry n_trips_sch \\\n", + "0 LINESTRING (-122.51997 37.97029, -122.51996 37... 5 \n", + "1 LINESTRING (-118.49124 34.01468, -118.49124 34... 15 \n", + "2 LINESTRING (-122.52271 37.97198, -122.52270 37... 5 \n", + "3 LINESTRING (-118.35233 33.89510, -118.35237 33... 4 \n", + "4 LINESTRING (-122.73249 38.46077, -122.73249 38... 2 \n", + ".. ... ... \n", + "81 LINESTRING (-120.66787 35.27334, -120.66801 35... 3 \n", + "82 LINESTRING (-122.35390 37.93677, -122.35432 37... 3 \n", + "83 LINESTRING (-118.03970 34.07202, -118.03948 34... 10 \n", + "84 LINESTRING (-122.03542 37.37704, -122.03648 37... 5 \n", + "85 LINESTRING (-120.13668 34.59597, -120.13668 34... 4 \n", + "\n", + " trips_hr_sch route_short_name \n", + "0 1.666667 35 \n", + "1 5.000000 720 \n", + "2 1.666667 SMART \n", + "3 1.333333 EX \n", + "4 0.666667 48 \n", + ".. ... ... \n", + "81 1.000000 2B \n", + "82 0.600000 CC \n", + "83 3.333333 194 \n", + "84 1.666667 53 \n", + "85 1.333333 None \n", + "\n", + "[86 rows x 22 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "speedmap_segs >> filter(_.caltrans_district.isna()) >> distinct(_.name, _keep_all=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ca_transit_speed_maps/_rt_progress_2024-10-16.parquet b/ca_transit_speed_maps/_rt_progress_2024-10-16.parquet new file mode 100644 index 0000000000000000000000000000000000000000..eb81cc72cea5a71509038f9ba39604b184d84df9 GIT binary patch literal 16198 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 O`wtxh*Ej;dp#R_7U>a-y literal 0 HcmV?d00001 diff --git a/ca_transit_speed_maps/_rt_progress_2024-11-13.parquet b/ca_transit_speed_maps/_rt_progress_2024-11-13.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a21b3644469c0889441d248cb332ce5479801fd0 GIT binary patch literal 16417 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πjJ4*sM4Fa3E9lc!;Q#dn5NrR32wJKbLWH>fRZ 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 iPoY}f(=`Z (gpd.GeoDataFrame, ''' Get filtered detailed speedmap segments for an organization, and relevant district SHN. ''' - path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' + # path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' + path = f'{catalog.stop_segments.dir}{catalog.stop_segments.route_dir_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' + speedmap_segs = gpd.read_parquet(path, filters=[['organization_source_record_id', '==', organization_source_record_id]]) # aggregated - assert (speedmap_segs >> select(-_.route_short_name)).isna().any().any() == False, 'no cols besides route_short_name should be nan' + assert (speedmap_segs >> select(-_.route_short_name)).isna().any().any() == False, 'no cols besides route_short_name should be nan'x speedmap_segs = prepare_segment_gdf(speedmap_segs) shn = gpd.read_parquet(rt_utils.SHN_PATH) this_shn = shn >> filter(_.District.isin([int(x[:2]) for x in speedmap_segs.caltrans_district.unique()])) diff --git a/ca_transit_speed_maps/speedmaps.ipynb b/ca_transit_speed_maps/speedmaps.ipynb index 8dc6bbbba..f2a72a81f 100644 --- a/ca_transit_speed_maps/speedmaps.ipynb +++ b/ca_transit_speed_maps/speedmaps.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "46898b5c-b5cc-4096-ab68-8c3e42fab870", "metadata": {}, "outputs": [], @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "9f15ed6a-5ab7-4f57-9695-3f762781b74c", "metadata": { "tags": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "a639fd84-29ca-4678-b568-2b1022701e14", "metadata": {}, "outputs": [], @@ -56,18 +56,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "47c79d99-c82f-4e1e-b11e-2b1e83c13a1b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"human_date\": \"August 14 2024 (Wednesday)\"}\n" - ] - } - ], + "outputs": [], "source": [ "%%capture_parameters\n", "human_date = analysis_date.strftime('%B %d %Y (%A)')\n", @@ -76,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "e4cbefc6-9bbb-4989-85b7-1f31da17fcb8", "metadata": {}, "outputs": [], @@ -87,18 +79,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "6c335d40-7a7b-4641-8a3d-c970b2823cdf", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\"organization_name\": \"City and County of San Francisco\"}\n" - ] - } - ], + "outputs": [], "source": [ "%%capture_parameters\n", "organization_name = rt_day.organization_name\n", @@ -142,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "533a64f4-f374-4f2c-94d3-5146ebe7c036", "metadata": {}, "outputs": [], @@ -161,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "2f317120-99ee-435b-96cd-1236b8ee2e0b", "metadata": { "tags": [] @@ -176,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "3f25f8b6-e5e5-423e-a7ef-50fd06a82aaf", "metadata": { "tags": [] @@ -189,57 +173,22 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "478be483-6dd3-4b0f-adca-dfedf2540088", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "5948822e-8902-4e0f-96a8-ff12af99b89b", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -257,7 +206,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "b0d402fb-024b-4a8b-a11b-521b8a310ce7", "metadata": {}, "outputs": [], @@ -267,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "521f5dc5-3e23-4e61-90f2-4ee35120866b", "metadata": {}, "outputs": [], @@ -278,55 +227,20 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "d70aa1f1-451e-4bfc-9873-466e3304976f", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "ada4b469-0612-473a-a0fb-d8a5644383b1", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -343,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "f5344e63-89d2-43d6-9783-55a3061c99d2", "metadata": {}, "outputs": [], @@ -362,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "835ae4f1-0364-4fbf-a428-41d5233e6424", "metadata": { "tags": [] @@ -377,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "a8ecf442-e6bb-4e30-b2bf-539ecbbc926f", "metadata": { "tags": [] @@ -390,57 +304,22 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "id": "0e18681c-794d-418e-b2b5-8aa7bbcbade1", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "id": "4a3530dd-7432-459e-a22b-3c211f29cff2", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -458,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "id": "ed6db1a8-9774-4a5b-8297-06f0a5067a02", "metadata": {}, "outputs": [], @@ -468,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "f75d40a5-7d9c-49c2-a320-c245d0dfd29b", "metadata": {}, "outputs": [], @@ -479,55 +358,20 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "id": "551d9840-580c-4c30-bf83-8f8a971c61fe", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "id": "029e2e16-50c5-4271-9a46-fdf63fed6090", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -544,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "923f1462-b34a-42d2-a632-c5eb3ac16ac6", "metadata": {}, "outputs": [], @@ -563,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "id": "3ce10fdb-65fd-4b4b-b041-37d453099d9e", "metadata": { "tags": [] @@ -578,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "id": "7f8aaf05-a63a-4e4d-9a7e-1efb63039046", "metadata": { "tags": [] @@ -591,57 +435,22 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "9c6966a9-289c-4284-8db3-7aea3b36d16b", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "c2dd6519-3db1-4881-9efa-98337cb6d298", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -659,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "id": "b8469e6d-aa94-4481-a47b-ff8d29c49a21", "metadata": {}, "outputs": [], @@ -669,7 +478,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "id": "ffa01fd1-0d7c-4def-ae35-a43c160849dc", "metadata": {}, "outputs": [], @@ -680,55 +489,20 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "id": "75202cf8-cd2a-4451-becc-9cdf94db6eff", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Open Full Map in New Tab" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.render_spa_link()" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "id": "a948a37d-e62d-40ce-810d-79b151aa3008", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rt_day.display_spa_map()" ] @@ -747,33 +521,10 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "id": "745e9e8f-47c2-4875-afd2-2c55de086aad", "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "Median Trip Speed by Hour of Day, All Route Types, All Routes, 06:00–22:00, Aug 14, 2024 (Wed)" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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P6zGjRvLz89PMTExGjFihAYMGGBpruDgYLVp00ZTpkzRiRMnVFBQoHfffVebN29WVlaWpdmuOnnypCRd86kqNWvWdO3Djf38888aN26c+vfvXyY+E3L16tWqVKmSAgIC9PLLL2vdunWqUaOGpZlmzpwpX19fPf3005bm+KVTp04pNzdXL774ou6//359+umneuCBB9SnTx+lpaVZHc9l8eLFCg4O9vrlO3fMnTtXTZo0Ue3ateXv76/7779fr776qtq1a2dZpqtFacKECTp37pwuXbqkmTNn6tixY6V6ni0sLNSIESMUGxur6OhoSVfOr/7+/tf8g680z6/Xy2WFMvHJE1YqLCxUq1atNH36dElSTEyM9u3bp+TkZA0aNMjidFe8+eab6tq1a6ndK3Mj77//vt577z0tWbJETZs21e7duzVixAiFh4db/uf1zjvvKC4uTrfffrt8fHzUsmVL9e/fXzt37rQ0FzwjPz9fffv2lWEYmj9/vtVxJEkdOnTQ7t27debMGS1cuFB9+/bV1q1bFRoaakmenTt36pVXXlF6errls/u/VFhYKEnq1auXRo4cKUn63e9+p6+++krJyclq3769lfFc3nrrLQ0YMMDr9/25Y+7cudqyZYtWrVqlOnXqaMOGDYqPj1d4eHiRWanS5Ofnp5SUFA0dOlTVqlWTj4+POnXqpK5du5bqArr4+Hjt27evzFyNuaqs5LrlZ+xq1aqlJk2aFBm78847vb5Sy11HjhzRZ599pr/85S9WR5EkjR071jVr16xZMz366KMaOXKkZsyYYXU01a9fX2lpacrNzVVmZqa2bdum/Px81atXz+pokqSwsDBJumaV1vfff+/ah+u7WuqOHDmidevWlYnZOkkKCgpSgwYNdM899+jNN9+Ur6+v3nzzTcvybNy4UadOnVJkZKR8fX3l6+urI0eOaPTo0YqKirIsV40aNeTr61umz7UbN25URkZGmTjX/vTTT3rmmWeUlJSkHj16qHnz5kpISFC/fv3097//3dJsd911l3bv3q3z588rKytLa9as0Q8//FBq59mEhAStXr1a69evV+3atV3jYWFhunTp0jUrTkvr/Ppbuaxwyxe72NjYa5YmHzhwQHXq1LEoUVGLFi1SaGiounfvbnUUSVdW91SoUPTXxsfHx/Uv8rIgKChItWrV0rlz57R27Vr16tXL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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "try:\n", " rt_day.set_filter(start_time='06:00', end_time='22:00')\n", diff --git a/portfolio/rt/district_04-oakland.md b/portfolio/rt/district_04-oakland.md deleted file mode 100644 index 1faedbdab..000000000 --- a/portfolio/rt/district_04-oakland.md +++ /dev/null @@ -1 +0,0 @@ -# District 04 - Oakland \ No newline at end of file diff --git a/portfolio/rt/district_05-san-luis-obispo.md b/portfolio/rt/district_05-san-luis-obispo.md deleted file mode 100644 index 87615da56..000000000 --- a/portfolio/rt/district_05-san-luis-obispo.md +++ /dev/null @@ -1 +0,0 @@ -# District 05 - San Luis Obispo \ No newline at end of file diff --git a/portfolio/rt/district_06-fresno.md b/portfolio/rt/district_06-fresno.md deleted file mode 100644 index fb7e24a58..000000000 --- a/portfolio/rt/district_06-fresno.md +++ /dev/null @@ -1 +0,0 @@ -# District 06 - Fresno \ No newline at end of file diff --git a/portfolio/rt/district_07-los-angeles.md b/portfolio/rt/district_07-los-angeles.md deleted file mode 100644 index 79901aa5a..000000000 --- a/portfolio/rt/district_07-los-angeles.md +++ /dev/null @@ -1 +0,0 @@ -# District 07 - Los Angeles \ No newline at end of file diff --git a/portfolio/rt/district_08-san-bernardino.md b/portfolio/rt/district_08-san-bernardino.md deleted file mode 100644 index e4a1349f3..000000000 --- a/portfolio/rt/district_08-san-bernardino.md +++ /dev/null @@ -1 +0,0 @@ -# District 08 - San Bernardino \ No newline at end of file diff --git a/portfolio/rt/district_09-bishop.md b/portfolio/rt/district_09-bishop.md deleted file mode 100644 index 92c816ee3..000000000 --- a/portfolio/rt/district_09-bishop.md +++ /dev/null @@ -1 +0,0 @@ -# District 09 - Bishop \ No newline at end of file diff --git a/portfolio/rt/district_10-stockton.md b/portfolio/rt/district_10-stockton.md deleted file mode 100644 index 7c5729992..000000000 --- a/portfolio/rt/district_10-stockton.md +++ /dev/null @@ -1 +0,0 @@ -# District 10 - Stockton \ No newline at end of file diff --git a/portfolio/rt/district_11-san-diego.md b/portfolio/rt/district_11-san-diego.md deleted file mode 100644 index e45d27452..000000000 --- a/portfolio/rt/district_11-san-diego.md +++ /dev/null @@ -1 +0,0 @@ -# District 11 - San Diego \ No newline at end of file diff --git a/portfolio/rt/district_12-irvine.md b/portfolio/rt/district_12-irvine.md deleted file mode 100644 index 7a3d7159d..000000000 --- a/portfolio/rt/district_12-irvine.md +++ /dev/null @@ -1 +0,0 @@ -# District 12 - Irvine \ No newline at end of file diff --git a/portfolio/sites/rt.yml b/portfolio/sites/rt.yml index a2b668650..be4e2854a 100644 --- a/portfolio/sites/rt.yml +++ b/portfolio/sites/rt.yml @@ -1,159 +1,133 @@ directory: ./ca_transit_speed_maps/ -notebook: ./ca_transit_speed_maps/01_new_speedmaps.ipynb +notebook: ./ca_transit_speed_maps/speedmaps.ipynb parts: - chapters: - caption: District 01 - Eureka params: district: 01 - Eureka sections: - - organization_source_record_id: recaaoqEDvwhcmIVT - - organization_source_record_id: recynxkqEoo9dJEvw - - organization_source_record_id: recaa3naoNR4a5RsJ - - organization_source_record_id: recPwXKbGLL4aIqXV - - organization_source_record_id: recpWBEjXzLHqCjhE - - organization_source_record_id: recOnKhqF25crJt4q + - itp_id: 18 + - itp_id: 108 + - itp_id: 135 + - itp_id: 159 - caption: District 02 - Redding params: district: 02 - Redding sections: - - organization_source_record_id: recI1fuNpr306H0hw - - organization_source_record_id: recx4ZG2lvZb7kGAL - - organization_source_record_id: recKN0Q28cOQdsy5L - - organization_source_record_id: recEtov4XTJZDjtuj + - itp_id: 259 - caption: District 03 - Marysville params: district: 03 - Marysville sections: - - organization_source_record_id: recf7l9tozKXOmqqZ - - organization_source_record_id: recaJnArpFEk5QooE - - organization_source_record_id: rec43oyrfhtPDdRHj - - organization_source_record_id: reczUcQgqgtMpkpKC - - organization_source_record_id: recX9lccSE1jmjsmG - - organization_source_record_id: rec3u4aMplqObcoTR - - organization_source_record_id: recS1JKEz73Hev8pJ - - organization_source_record_id: recH2FdHvrL7nIpHA + - itp_id: 105 + - itp_id: 331 + - itp_id: 372 - caption: District 04 - Oakland params: district: 04 - Oakland sections: - - organization_source_record_id: recOZgevYf7Jimm9L - - organization_source_record_id: recvEBkSBc7UxlarC - - organization_source_record_id: recjnaKVDEgulsko3 - - organization_source_record_id: rechaapWbeffO33OX - - organization_source_record_id: reczluQLW1y5oQqF8 - - organization_source_record_id: recot6qBamlOoLcrM - - organization_source_record_id: recUbGDXhPdx3494b - - organization_source_record_id: recsNvWvLQwGsoxlE - - organization_source_record_id: recmB4uxrVLRXYF3L - - organization_source_record_id: recRM3c9Zfaft4V2B - - organization_source_record_id: recn8zTmGbYZv1qxV - - organization_source_record_id: recEEJVeGrHGoTwgj - - organization_source_record_id: rec75nESVRqpwNiLv - - organization_source_record_id: recoX7qMhlPrgfuz3 - - organization_source_record_id: recANs4M9yDhvDyob - - organization_source_record_id: recNOb7pqBRlQVG5e - - organization_source_record_id: recIeP8mUucOsbvbz - - organization_source_record_id: rec9RGrya9SjWYp2p - - organization_source_record_id: recsBfXgev9ICDCY1 - - organization_source_record_id: recmatCuQAUrNcs8j - - organization_source_record_id: recw3mRsmKDTNnVlT - - organization_source_record_id: recC5CT95EufmQCXr - - organization_source_record_id: reclLbvvKE1V4zsZg - - organization_source_record_id: rec7ShjfgRPLU0yjY - - organization_source_record_id: recDupUxInMUgxeiz - - organization_source_record_id: recUmm4gcNXaqrwpn - - organization_source_record_id: recD9x7GHPrN46v6m - - organization_source_record_id: recIKnsnTdKQ0vsiv + - itp_id: 4 + - itp_id: 56 + - itp_id: 61 + - itp_id: 282 + - itp_id: 110 + - itp_id: 247 + - itp_id: 301 + - itp_id: 350 + - itp_id: 70 + - itp_id: 336 + - itp_id: 127 + - itp_id: 194 + - itp_id: 218 + - itp_id: 246 + - itp_id: 257 + - itp_id: 280 + - itp_id: 290 + - itp_id: 294 + - itp_id: 310 + - itp_id: 381 + - itp_id: 314 + - itp_id: 315 + - itp_id: 33 + - itp_id: 368 - caption: District 05 - San Luis Obispo params: district: 05 - San Luis Obispo sections: - - organization_source_record_id: recMM99msxjmc6PPv - - organization_source_record_id: rec9zGMJgNnes75K1 - - organization_source_record_id: reckp33bhAuZlmO1M - - organization_source_record_id: receZJ9sEnP9vy3g0 - - organization_source_record_id: reciakGBN1DP9dK9N - - organization_source_record_id: recswCrw6a6htmXJ4 - - organization_source_record_id: recDFXyxaWQpiY4mw + - itp_id: 298 + - itp_id: 312 + - itp_id: 208 + - itp_id: 289 + - itp_id: 296 - caption: District 06 - Fresno params: district: 06 - Fresno sections: - - organization_source_record_id: rec0bKUhHAajTNIlf - - organization_source_record_id: rec6gNibVKjDVy4aX - - organization_source_record_id: recIh3vq8jwuuJlvL - - organization_source_record_id: reczIiFqdL5AXTpm1 - - organization_source_record_id: rec5MLJKrAgeM8f6H - - organization_source_record_id: recWLwvtjXhiVWjKt + - itp_id: 116 + - itp_id: 361 + - itp_id: 126 + - itp_id: 148 + - itp_id: 188 - caption: District 07 - Los Angeles params: district: 07 - Los Angeles sections: - - organization_source_record_id: recxsWR0KRrQTdjmg - - organization_source_record_id: rec6z2ivjTxc8Sag3 - - organization_source_record_id: recD4Vzt0EDC3VY7I - - organization_source_record_id: recd0hxcumVMausDU - - organization_source_record_id: rec5ome04BbA9uf4y - - organization_source_record_id: recZm8PD8WIdcDL0M - - organization_source_record_id: recX4nQfupRQf3xGD - - organization_source_record_id: recj8LXdeSurpSRNU - - organization_source_record_id: rec4pgjrmdhCh4z01 - - organization_source_record_id: recojKzQsBzE1hjVu - - organization_source_record_id: recPkUZgzjCjk5GrV - - organization_source_record_id: reckQmUdXUzHFmlVf - - organization_source_record_id: reczF5Y8R9CUJmfSy - - organization_source_record_id: rec8zhnCPETu6qEiH - - organization_source_record_id: recImm5SmW2zq9rMT - - organization_source_record_id: recJHFDLpGRMIFgnL - - organization_source_record_id: rec1ErIn9gG1Isk5W - - organization_source_record_id: recPJULRJk1Yn824N - - organization_source_record_id: recvzE9NXgGMmqcTH - - organization_source_record_id: rec2LbE0IBKBAkvQr - - organization_source_record_id: recSqgaa8QiQ8CRjl - - organization_source_record_id: recS7GnKTcQVX20HE - - organization_source_record_id: rec00qSzZL8KqiXAo - - organization_source_record_id: recPnGkwdpnr8jmHB - - organization_source_record_id: recPnGkwdpnr8jmHB - - organization_source_record_id: recBW9vkDYWIKPIu4 - - organization_source_record_id: rec7EN71rsZxDFxZd + - itp_id: 16 + - itp_id: 45 + - itp_id: 54 + - itp_id: 87 + - itp_id: 97 + - itp_id: 183 + - itp_id: 210 + - itp_id: 228 + - itp_id: 231 + - itp_id: 243 + - itp_id: 260 + - itp_id: 295 + - itp_id: 300 + - itp_id: 308 + - itp_id: 337 + - itp_id: 339 + - itp_id: 112 + - itp_id: 123 + - itp_id: 182 + - itp_id: 380 + - itp_id: 170 - caption: District 08 - San Bernardino params: district: 08 - San Bernardino sections: - - organization_source_record_id: recniaSbsXcRSLsWe - - organization_source_record_id: recuGkFhN2WXGK67H - - organization_source_record_id: reciWrBgYsAIm9eKK - - organization_source_record_id: recG5aXxDPI645S86 - - organization_source_record_id: recGcv4NidDjwVSiN - - organization_source_record_id: recYgajd92VLqio1p - - organization_source_record_id: recJcXMNC5MUm2uDe + - itp_id: 34 + - itp_id: 214 + - itp_id: 232 + - itp_id: 238 + - itp_id: 269 + - itp_id: 360 - caption: District 09 - Bishop params: district: 09 - Bishop sections: - - organization_source_record_id: recRajLNJI206nnAr + - itp_id: 99 - caption: District 10 - Stockton params: district: 10 - Stockton sections: - - organization_source_record_id: recNeVOEwWUtYe8xm - - organization_source_record_id: recmQVsPDG6sLtD6j - - organization_source_record_id: recpgYVeU3VePMeWx - - organization_source_record_id: recZgWVXkpix390of - - organization_source_record_id: recSiaaMmBXW7fUZS - - organization_source_record_id: reclbzT9trIiGwjBB + - itp_id: 107 + - itp_id: 349 + - itp_id: 10 + - itp_id: 284 + - itp_id: 484 - caption: District 11 - San Diego params: district: 11 - San Diego sections: - - organization_source_record_id: rech5YtfjpQvVIBAF - - organization_source_record_id: recRBcrX4ZvTyvSnm - - organization_source_record_id: recfbLFdDnCxgIfAB - - organization_source_record_id: recZALk4vysuoTVjF + - itp_id: 226 + - itp_id: 277 + - itp_id: 278 - caption: District 12 - Irvine params: district: 12 - Irvine sections: - - organization_source_record_id: recfma7GNR5lQTTTg + - itp_id: 235 readme: ./ca_transit_speed_maps/README.md title: California Transit Speed Maps From 82d4825e114b12841166f4cc192b152cb14a23a1 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 17:00:28 +0000 Subject: [PATCH 12/21] actually stick with speedmap segments, really just Muni has issues --- ca_transit_speed_maps/speedmap_utils.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ca_transit_speed_maps/speedmap_utils.py b/ca_transit_speed_maps/speedmap_utils.py index 4f9d0bd3c..c995b767a 100644 --- a/ca_transit_speed_maps/speedmap_utils.py +++ b/ca_transit_speed_maps/speedmap_utils.py @@ -14,9 +14,8 @@ def read_segments_shn(organization_source_record_id: str) -> (gpd.GeoDataFrame, ''' Get filtered detailed speedmap segments for an organization, and relevant district SHN. ''' - # path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' - path = f'{catalog.stop_segments.dir}{catalog.stop_segments.route_dir_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' - + path = f'{catalog.speedmap_segments.dir}{catalog.speedmap_segments.shape_stop_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' + # path = f'{catalog.stop_segments.dir}{catalog.stop_segments.route_dir_single_segment_detail}_{update_vars_index.ANALYSIS_DATE}.parquet' speedmap_segs = gpd.read_parquet(path, filters=[['organization_source_record_id', '==', organization_source_record_id]]) # aggregated assert (speedmap_segs >> select(-_.route_short_name)).isna().any().any() == False, 'no cols besides route_short_name should be nan'x speedmap_segs = prepare_segment_gdf(speedmap_segs) From 8c04912d92bf997b3c26a51bb747b8181af98922 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 17:02:22 +0000 Subject: [PATCH 13/21] add comparison nb --- ca_transit_speed_maps/02_sfmta_compare.ipynb | 43 +++++--------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/ca_transit_speed_maps/02_sfmta_compare.ipynb b/ca_transit_speed_maps/02_sfmta_compare.ipynb index 6a65293b6..0160ef538 100644 --- a/ca_transit_speed_maps/02_sfmta_compare.ipynb +++ b/ca_transit_speed_maps/02_sfmta_compare.ipynb @@ -1,5 +1,15 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "e8cc9678-0508-461e-9f2d-8c0e169fc617", + "metadata": {}, + "source": [ + "# SFMTA segment speeds data has fewer segments and some incredible speeds compared to legacy\n", + "\n", + "## Why? segment speeds is generally as good or better elsewhere..." + ] + }, { "cell_type": "markdown", "id": "fdf37ad7-7ce7-49a5-9bec-c087c2306a45", @@ -113,31 +123,6 @@ "organization_name" ] }, - { - "cell_type": "markdown", - "id": "4c90af26-abf2-4763-a135-39f7257683b7", - "metadata": {}, - "source": [ - "# {organization_name}" - ] - }, - { - "cell_type": "markdown", - "id": "09dc323a-6967-46a9-9bd4-d969f7ce7c73", - "metadata": { - "tags": [] - }, - "source": [ - "## About These Maps:\n", - "\n", - "* Each map shows bus (and rail, if applicable) speeds for {organization_name}, with a map each for the morning peak, midday, and afternoon peak periods on {human_date}.\n", - "* On the map, routes are split into segments corresponding to the distance between two stops, allowing you to focus on specific portions of the route experiencing a slowdown.\n", - "* Route segments are arrow-shaped to indicate direction of travel. Thicker segments indicate more frequent transit routes.\n", - "* State Highway Network routes are outlined in gray.\n", - "* Hover over, a segment with your mouse to see the exact speed, route name, and transit service frequency in that segment. \n", - " * Higher-frequency routes (3+ trips per hour) are especially important, since those slowdowns correspond to more vehicles, and riders, delayed in traffic." - ] - }, { "cell_type": "markdown", "id": "e2317d91-607e-4a5d-80e3-77734fc8a27f", @@ -575,14 +560,6 @@ "source": [ "# if link: speedmap_utils.display_spa_map(link)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0e724687-fee7-4dc9-be11-ef73e378a504", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 2bcfbc1bfb24a494bd7aa09aaa267ed7aa43fe4b Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Sat, 16 Nov 2024 17:03:21 +0000 Subject: [PATCH 14/21] actually don't run route/dir detail --- .../scripts/average_segment_speeds.py | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/rt_segment_speeds/scripts/average_segment_speeds.py b/rt_segment_speeds/scripts/average_segment_speeds.py index 23d3a6740..bbaf8956a 100644 --- a/rt_segment_speeds/scripts/average_segment_speeds.py +++ b/rt_segment_speeds/scripts/average_segment_speeds.py @@ -273,31 +273,32 @@ def segment_averages_detail( for analysis_date in analysis_date_list: - # segment_averages( - # [analysis_date], - # segment_type, - # group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, - # export_file = ROUTE_SEG_FILE, - # weighted_averages = True - # ) - segment_averages( [analysis_date], segment_type, group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, - export_file = ROUTE_SEG_DETAIL_FILE, + export_file = ROUTE_SEG_FILE, weighted_averages = True ) - + + # potential option, not using for now # segment_averages( # [analysis_date], # segment_type, - # group_cols = (OPERATOR_COLS + ROUTE_DIR_COLS + - # STOP_PAIR_COLS + ["time_of_day"]), - # export_file = TIME_OF_DAY_FILE, - # weighted_averages = False + # group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, + # export_file = ROUTE_SEG_DETAIL_FILE, + # weighted_averages = True # ) + segment_averages( + [analysis_date], + segment_type, + group_cols = (OPERATOR_COLS + ROUTE_DIR_COLS + + STOP_PAIR_COLS + ["time_of_day"]), + export_file = TIME_OF_DAY_FILE, + weighted_averages = False + ) + ''' from segment_speed_utils.project_vars import weeks_available From 663e5c310ad71c075fb94068089f40aeed802e11 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Mon, 18 Nov 2024 16:22:30 +0000 Subject: [PATCH 15/21] clear rt site --- portfolio/rt/README.md | 66 -------------------------- portfolio/rt/_config.yml | 43 ----------------- portfolio/rt/_toc.yml | 41 ---------------- portfolio/rt/district_01-eureka.md | 1 - portfolio/rt/district_02-redding.md | 1 - portfolio/rt/district_03-marysville.md | 1 - 6 files changed, 153 deletions(-) delete mode 100644 portfolio/rt/README.md delete mode 100644 portfolio/rt/_config.yml delete mode 100644 portfolio/rt/_toc.yml delete mode 100644 portfolio/rt/district_01-eureka.md delete mode 100644 portfolio/rt/district_02-redding.md delete mode 100644 portfolio/rt/district_03-marysville.md diff --git a/portfolio/rt/README.md b/portfolio/rt/README.md deleted file mode 100644 index dbca276c6..000000000 --- a/portfolio/rt/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# California Transit Speed Maps - -Supporting transit is integral to Caltrans' vision of delivering a connected, equitable, and more sustainable state transportation network as well as the Department’s work to combat the climate crisis. - -To help realize that vision, the California Integrated Travel Program (Cal-ITP) is developing analyses alongside our partners such as the Caltrans Division of Research, Innovation and System Information (DRISI) in order to provide Caltrans staff and external stakeholders with actionable data to prioritize transit projects. - -Transit in California is overwhelmingly provided by buses. However, speeds have been declining for years, and now average below 10mph across much of California – and often much lower during peak times in urban areas. These slow speeds translate to countless hours wasted for transit riders and jeopardize the ability of California’s transit agencies to provide frequent, reliable service. - -We also measure speed variation. Low speeds delay transit, but variation is equally problematic since it leads to an inconsistent experience for transit riders and complicates scheduling of transit services. - -Our maps already include routes and operators accounting for about 80% of bus riders in the state, including operators in every Caltrans district. Cal-ITP continues to work daily to onboard and support new agencies in providing quality data that improves the transit rider experience and powers useful and timely analysis. - -This site is updated at least quarterly. - -Select source code can be found at: - -[https://github.com/cal-itp/data-analyses/tree/main/ca_transit_speed_maps](https://github.com/cal-itp/data-analyses/tree/main/ca_transit_speed_maps) - -[https://github.com/cal-itp/data-analyses/tree/main/rt_delay/rt_analysis](https://github.com/cal-itp/data-analyses/tree/main/rt_delay/rt_analysis) - -[https://github.com/cal-itp/data-analyses/blob/main/_shared_utils/shared_utils/rt_utils.py](https://github.com/cal-itp/data-analyses/blob/main/_shared_utils/shared_utils/rt_utils.py) - - -## Time Period Definitions - -* AM Peak: 07:00-10:00 -* Midday: 10:00-15:00 -* PM Peak: 15:00-20:00 -* Evening: 20:00-24:00 -* Owl: 00:00-04:00 -* Early AM: 04:00-07:00 - -## Methodology - -Segment speed is estimated using the time and distance between vehicle positions reports, with distance being measured linearly along the corresponding transit route. These maps show speeds along segments, which are calculated by interpolating the two nearest position reports for each trip in order to estimate speed along each segment, then taking the 20th percentile of speeds for that segment in each time period. This site shows data for a specific day, usually a Wednesday (and not a holiday or other date we believe could be atypical). - -Generally, segments are constructed from one stop to the next, however, if the distance between stops is large we add interpolated segments every kilometer to provide additional resolution for rural and express services. - -We use the ratio between 80th and 20th percentile speeds in a segment to measure speed variation. - -## What's New? - -We're aligining with segment speeds published via the [open data portal!](https://gis.data.ca.gov/datasets/4937eeb59fdb4e56ae75e64688c7f2c0_0/explore) - -While the datasets don't fully match just yet, this site is now based on the same underlying data. This should help us update it more often, enhance accuracy for complex route shapes, and include as many transit operators as possible. - -The site also includes a more informative speed and variation by time of day chart at the bottom of the page. - -## Data Sources -Archived GTFS-Realtime Vehicle Positions data, plus corresponding GTFS Schedule data. - -Each map includes a link to download its geospatial data in a gzip-compressed GeoJSON format (.geojson.gz). Most file compression software, including 7zip on Windows, will decompress these files. Once decompressed, most GIS software including ESRI ArcGIS Pro and QGIS can import the GeoJSON. - -## Ongoing Work - -The Cal-ITP team is working to transition the site to a rolling average of recent dates, instead of a single day. - -Questions or feedback? Please email hello@calitp.org - -## Who We Are - -This website was created by the [California Department of Transportation](https://dot.ca.gov/)'s Division of Data and Digital Services. We are a group of data analysts and scientists who analyze transportation data, such as General Transit Feed Specification (GTFS) data, or data from funding programs such as the Active Transportation Program. Our goal is to transform messy and indecipherable original datasets into usable, customer-friendly products to better the transportation landscape. For more of our work, visit our [portfolio](https://analysis.calitp.org/). - -Alt text Alt text - -
Caltrans®, the California Department of Transportation® and the Caltrans logo are registered service marks of the California Department of Transportation and may not be copied, distributed, displayed, reproduced or transmitted in any form without prior written permission from the California Department of Transportation. diff --git a/portfolio/rt/_config.yml b/portfolio/rt/_config.yml deleted file mode 100644 index 92e1f62d6..000000000 --- a/portfolio/rt/_config.yml +++ /dev/null @@ -1,43 +0,0 @@ -# Book settings -# Learn more at https://jupyterbook.org/customize/config.html - -title: California Transit Speed Maps -author: Cal-ITP -copyright: "2024" -#logo: calitp_logo_MAIN.png - -# Force re-execution of notebooks on each build. -# See https://jupyterbook.org/content/execute.html -execute: - execute_notebooks: 'off' - allow_errors: false - timeout: -1 - -# Define the name of the latex output file for PDF builds -latex: - latex_documents: - targetname: book.tex - -launch_buttons: - binderhub_url: "https://mybinder.org" - jupyterhub_url: "https://hubtest.k8s.calitp.jarv.us" - thebe: true - -repository: - url: https://github.com/cal-itp/data-analyses/ # Online location of your book -# path_to_book: docs # Optional path to your book, relative to the repository root - path_to_book: ca_transit_speed_maps - branch: main # Which branch of the repository should be used when creating links (optional) - -# Add GitHub buttons to your book -# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository -html: - use_issues_button: true - use_repository_button: true - use_edit_page_button: true - google_analytics_id: 'G-JCX3Z8JZJC' - -sphinx: - config: - html_js_files: - - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js \ No newline at end of file diff --git a/portfolio/rt/_toc.yml b/portfolio/rt/_toc.yml deleted file mode 100644 index 704e6f5ef..000000000 --- a/portfolio/rt/_toc.yml +++ /dev/null @@ -1,41 +0,0 @@ -format: jb-book -parts: -- caption: null - chapters: - - file: district_01-eureka.md - sections: - - glob: district_01-eureka/* - - file: district_02-redding.md - sections: - - glob: district_02-redding/* - - file: district_03-marysville.md - sections: - - glob: district_03-marysville/* - - file: district_04-oakland.md - sections: - - glob: district_04-oakland/* - - file: district_05-san-luis-obispo.md - sections: - - glob: district_05-san-luis-obispo/* - - file: district_06-fresno.md - sections: - - glob: district_06-fresno/* - - file: district_07-los-angeles.md - sections: - - glob: district_07-los-angeles/* - - file: district_08-san-bernardino.md - sections: - - glob: district_08-san-bernardino/* - - file: district_09-bishop.md - sections: - - glob: district_09-bishop/* - - file: district_10-stockton.md - sections: - - glob: district_10-stockton/* - - file: district_11-san-diego.md - sections: - - glob: district_11-san-diego/* - - file: district_12-irvine.md - sections: - - glob: district_12-irvine/* -root: README diff --git a/portfolio/rt/district_01-eureka.md b/portfolio/rt/district_01-eureka.md deleted file mode 100644 index f0060fc25..000000000 --- a/portfolio/rt/district_01-eureka.md +++ /dev/null @@ -1 +0,0 @@ -# District 01 - Eureka \ No newline at end of file diff --git a/portfolio/rt/district_02-redding.md b/portfolio/rt/district_02-redding.md deleted file mode 100644 index 128b1bbf9..000000000 --- a/portfolio/rt/district_02-redding.md +++ /dev/null @@ -1 +0,0 @@ -# District 02 - Redding \ No newline at end of file diff --git a/portfolio/rt/district_03-marysville.md b/portfolio/rt/district_03-marysville.md deleted file mode 100644 index bab692d75..000000000 --- a/portfolio/rt/district_03-marysville.md +++ /dev/null @@ -1 +0,0 @@ -# District 03 - Marysville \ No newline at end of file From 9febabaa6ba397b4fb44ba0e9a7ac0155865006f Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Mon, 18 Nov 2024 23:17:01 +0000 Subject: [PATCH 16/21] upload xml from Arc --- open_data/metadata.json | 2 +- open_data/update_vars.py | 2 +- open_data/xml/ca_transit_routes.xml | 437 +++++------------ open_data/xml/ca_transit_stops.xml | 437 +++++------------ open_data/xml/speeds_by_route_time_of_day.xml | 443 ++++++------------ open_data/xml/speeds_by_stop_segments.xml | 443 ++++++------------ 6 files changed, 534 insertions(+), 1230 deletions(-) diff --git a/open_data/metadata.json b/open_data/metadata.json index 3d0e74675..d591e5059 100644 --- a/open_data/metadata.json +++ b/open_data/metadata.json @@ -1 +1 @@ -{"ca_hq_transit_areas": {"dataset_name": "ca_hq_transit_areas", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Estimated High Quality Transit Corridors and Major Transit Stops as described in Public Resources Code 21155, 21064.3, 21060.2.", "description": "Use GTFS schedule trips, stop_times, shapes, and stops to estimate whether corridor segments have scheduled frequencies of 15 minutes or less.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Land Use, Transit-Oriented Development, TOD, High Quality Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/high_quality_transit_areas/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Eric Dasmalchi", "contact_email": "eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated using a spatial process derived from General Transit Feed Specification (GTFS) schedule data. To find high-quality bus corridors, we split each corridor into 1,500 meter segments and counted frequencies at the stop within that segment with the highest number of transit trips. If that stop saw at least 4 trips per hour for at least one hour in the morning, and again for at least one hour in the afternoon, we consider that segment a high-quality bus corridor. Segments without a stop are not considered high-quality corridors. Major transit stops were identified as either the intersection of two high-quality corridors from the previous step, a rail or bus rapid transit station, or a ferry terminal with bus service. Note that the definition of `bus rapid transit` in Public Resources Code 21060.2 includes features not captured by available data sources, these features were captured manually using information from transit agency sources and imagery. We believe this data to be broadly accurate, and fit for purposes including overall dashboards, locating facilities in relation to high quality transit areas, and assessing community transit coverage. However, the spatial determination of high-quality transit areas from GTFS data necessarily involves some assumptions as described above. Any critical determinations of whether a specific parcel is located within a high-quality transit area should be made in conjunction with local sources, such as transit agency timetables. Notes: Null values may be present. The `hqta_details` columns defines which part of the Public Resources Code definition the HQTA classification was based on. If `hqta_details` references a single operator, then `agency_secondary` and `base64_url_secondary` are null. If `hqta_details` references the same operator, then `agency_secondary` and `base64_url_secondary` are the same as `agency_primary` and `base64_url_primary`.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_HQ_Transit_Areas/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"agency_pri": "agency_primary", "agency_sec": "agency_secondary", "hqta_detai": "hqta_details", "base64_url": "base64_url_primary", "base64_u_1": "base64_url_secondary", "org_id_pri": "org_id_primary", "org_id_sec": "org_id_secondary"}}, "ca_hq_transit_stops": {"dataset_name": "ca_hq_transit_stops", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Estimated stops along High Quality Transit Corridors, plus major transit stops for bus rapid transit, ferry, rail modes as described in Public Resources Code 21155, 21064.3, 21060.2.", "description": "Use GTFS schedule trips, stop_times, shapes, and stops to estimate whether corridor segments have scheduled frequencies of 15 minutes or less.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Land Use, Transit-Oriented Development, TOD, High Quality Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/high_quality_transit_areas/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Eric Dasmalchi", "contact_email": "eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated using a spatial process derived from General Transit Feed Specification (GTFS) schedule data. To find high-quality bus corridors, we split each corridor into 1,500 meter segments and counted frequencies at the stop within that segment with the highest number of transit trips. If that stop saw at least 4 trips per hour for at least one hour in the morning, and again for at least one hour in the afternoon, we consider that segment a high-quality bus corridor. Segments without a stop are not considered high-quality corridors. Major transit stops were identified as either the intersection of two high-quality corridors from the previous step, a rail or bus rapid transit station, or a ferry terminal with bus service. Note that the definition of `bus rapid transit` in Public Resources Code 21060.2 includes features not captured by available data sources, these features were captured manually using information from transit agency sources and imagery. We believe this data to be broadly accurate, and fit for purposes including overall dashboards, locating facilities in relation to high quality transit areas, and assessing community transit coverage. However, the spatial determination of high-quality transit areas from GTFS data necessarily involves some assumptions as described above. Any critical determinations of whether a specific parcel is located within a high-quality transit area should be made in conjunction with local sources, such as transit agency timetables. Notes: Null values may be present. The `hqta_details` columns defines which part of the Public Resources Code definition the HQTA classification was based on. If `hqta_details` references a single operator, then `agency_secondary` and `base64_url_secondary` are null. If `hqta_details` references the same operator, then `agency_secondary` and `base64_url_secondary` are the same as `agency_primary` and `base64_url_primary`.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_HQ_Transit_Stops/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"agency_pri": "agency_primary", "agency_sec": "agency_secondary", "hqta_detai": "hqta_details", "base64_url": "base64_url_primary", "base64_u_1": "base64_url_secondary", "org_id_pri": "org_id_primary", "org_id_sec": "org_id_secondary"}}, "ca_transit_routes": {"dataset_name": "ca_transit_routes", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Provide all CA transit stops and routes (geospatial) from all transit operators.", "description": "Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, GTFS, Transit routes, Transit stops, Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_Transit_Routes/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"caltrans_district": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "agency_name_primary": "agency_primary", "agency_name_secondary": "agency_secondary", "route_name_used": "route_name", "route_types_served": "routetypes", "n_hours_in": "n_hours_in_service", "route_ids_": "route_ids_served"}}, "ca_transit_stops": {"dataset_name": "ca_transit_stops", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Provide all CA transit stops and routes (geospatial) from all transit operators.", "description": "Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, GTFS, Transit routes, Transit stops, Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_Transit_Stops/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"caltrans_district": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "agency_name_primary": "agency_primary", "agency_name_secondary": "agency_secondary", "route_name_used": "route_name", "route_types_served": "routetypes", "n_hours_in": "n_hours_in_service", "route_ids_": "route_ids_served"}}, "speeds_by_stop_segments": {"dataset_name": "speeds_by_stop_segments", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Average all-day, peak, and offpeak transit speeds by segments for all CA operators that provide GTFS real-time vehicle positions data.", "description": "All day and peak transit 20th, 50th, and 80th percentile speeds on stop segments estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data.", "public_access": "Public.", "creation_date": "2023-06-14", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Transit, GTFS, GTFS RT, real time, speeds, vehicle positions ", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku / Eric Dasmalchi", "contact_email": "tiffany.ku@dot.ca.gov / eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated by combining GTFS real-time vehicle positions to GTFS scheduled trips, shapes, stops, and stop times tables. GTFS shapes provides the route alignment path. Multiple trips may share the same shape, with a route typically associated with multiple shapes. Shapes are cut into segments at stop positions (stop_id-stop_sequence combination). A `stop segment` refers to the portion of shapes between the prior stop and the current stop. Vehicle positions are spatially joined to 35 meter buffered segments. Within each segment-trip, the first and last vehicle position observed are used to calculate the speed. Since multiple trips may occur over a segment each day, the multiple trip speeds provide a distribution. From this distribution, the 20th percentile, 50th percentile (median), and 80th percentile speeds are calculated. For all day speed metrics, all trips are used. For peak speed metrics, only trips with start times between 7 - 9:59 AM and 4 - 7:59 PM are used to find the 20th, 50th, and 80th percentile metrics. Data processing notes: (a) GTFS RT trips whose vehicle position timestamps span 10 minutes or less are dropped. Incomplete data would lead to unreliable estimates of speed at the granularity we need. (b) Segment-trip speeds of over 70 mph are excluded. These are erroneously calculated as transit does not typically reach those speeds. (c) Other missing or erroneous calculations, either arising from only one vehicle position found in a segment (change in time or change in distance cannot be calculated).", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/Speeds_By_Stop_Segments/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"stop_seque": "stop_sequence", "time_of_da": "time_of_day", "time_perio": "time_period", "district_n": "district_name", "direction_": "direction_id", "common_sha": "common_shape_id", "avg_sched_": "avg_sched_trip_min", "avg_rt_tri": "avg_rt_trip_min", "caltrans_d": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "stop_pair_": "stop_pair_name"}}, "speeds_by_route_time_of_day": {"dataset_name": "speeds_by_route_time_of_day", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Average transit speeds by route-direction estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data.", "description": "Provide average transit speeds, number of trips by route-direction.", "public_access": "Public.", "creation_date": "2023-06-14", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Transit, GTFS, GTFS RT, real time, speeds, vehicle positions ", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated by combining GTFS real-time vehicle positions with GTFS scheduled trips and shapes. GTFS real-time (RT) vehicle positions are spatially joined to GTFS scheduled shapes, so only vehicle positions traveling along the route alignment path are kept. A sample of five vehicle positions are selected (min, 25th percentile, 50th percentile, 75th percentile, max). The trip speed is calculated using these five vehicle positions. Each trip is categorized into a time-of-day. The average speed for a route-direction-time_of_day is calculated. Additional metrics are stored, such as the number of trips observed, the average scheduled service minutes, and the average RT observed service minutes. For convenience, we also provide a singular shape (common_shape_id) to associate with a route-direction. This is the shape that had the most number of trips for a given route-direction. Time-of-day is determined by the GTFS scheduled trip start time. The trip start hour (military time) is categorized based on the following: Owl (0-3), Early AM (4-6), AM Peak (7-9), Midday (10-14), PM Peak (15-19), and Evening (20-23). The start and end hours are inclusive (e.g., 4-6 refers to 4am, 5am, and 6am).", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/Speeds_By_Route_Time_of_Day/FeatureServer", "revision_date": "2024-10-21", "rename_cols": {"stop_seque": "stop_sequence", "time_of_da": "time_of_day", "time_perio": "time_period", "district_n": "district_name", "direction_": "direction_id", "common_sha": "common_shape_id", "avg_sched_": "avg_sched_trip_min", "avg_rt_tri": "avg_rt_trip_min", "caltrans_d": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "stop_pair_": "stop_pair_name"}}} \ No newline at end of file +{"ca_hq_transit_areas": {"dataset_name": "ca_hq_transit_areas", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Estimated High Quality Transit Corridors and Major Transit Stops as described in Public Resources Code 21155, 21064.3, 21060.2.", "description": "Use GTFS schedule trips, stop_times, shapes, and stops to estimate whether corridor segments have scheduled frequencies of 15 minutes or less.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Land Use, Transit-Oriented Development, TOD, High Quality Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/high_quality_transit_areas/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Eric Dasmalchi", "contact_email": "eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated using a spatial process derived from General Transit Feed Specification (GTFS) schedule data. To find high-quality bus corridors, we split each corridor into 1,500 meter segments and counted frequencies at the stop within that segment with the highest number of transit trips. If that stop saw at least 4 trips per hour for at least one hour in the morning, and again for at least one hour in the afternoon, we consider that segment a high-quality bus corridor. Segments without a stop are not considered high-quality corridors. Major transit stops were identified as either the intersection of two high-quality corridors from the previous step, a rail or bus rapid transit station, or a ferry terminal with bus service. Note that the definition of `bus rapid transit` in Public Resources Code 21060.2 includes features not captured by available data sources, these features were captured manually using information from transit agency sources and imagery. We believe this data to be broadly accurate, and fit for purposes including overall dashboards, locating facilities in relation to high quality transit areas, and assessing community transit coverage. However, the spatial determination of high-quality transit areas from GTFS data necessarily involves some assumptions as described above. Any critical determinations of whether a specific parcel is located within a high-quality transit area should be made in conjunction with local sources, such as transit agency timetables. Notes: Null values may be present. The `hqta_details` columns defines which part of the Public Resources Code definition the HQTA classification was based on. If `hqta_details` references a single operator, then `agency_secondary` and `base64_url_secondary` are null. If `hqta_details` references the same operator, then `agency_secondary` and `base64_url_secondary` are the same as `agency_primary` and `base64_url_primary`.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_HQ_Transit_Areas/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"agency_pri": "agency_primary", "agency_sec": "agency_secondary", "hqta_detai": "hqta_details", "base64_url": "base64_url_primary", "base64_u_1": "base64_url_secondary", "org_id_pri": "org_id_primary", "org_id_sec": "org_id_secondary"}}, "ca_hq_transit_stops": {"dataset_name": "ca_hq_transit_stops", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Estimated stops along High Quality Transit Corridors, plus major transit stops for bus rapid transit, ferry, rail modes as described in Public Resources Code 21155, 21064.3, 21060.2.", "description": "Use GTFS schedule trips, stop_times, shapes, and stops to estimate whether corridor segments have scheduled frequencies of 15 minutes or less.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Land Use, Transit-Oriented Development, TOD, High Quality Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/high_quality_transit_areas/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Eric Dasmalchi", "contact_email": "eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated using a spatial process derived from General Transit Feed Specification (GTFS) schedule data. To find high-quality bus corridors, we split each corridor into 1,500 meter segments and counted frequencies at the stop within that segment with the highest number of transit trips. If that stop saw at least 4 trips per hour for at least one hour in the morning, and again for at least one hour in the afternoon, we consider that segment a high-quality bus corridor. Segments without a stop are not considered high-quality corridors. Major transit stops were identified as either the intersection of two high-quality corridors from the previous step, a rail or bus rapid transit station, or a ferry terminal with bus service. Note that the definition of `bus rapid transit` in Public Resources Code 21060.2 includes features not captured by available data sources, these features were captured manually using information from transit agency sources and imagery. We believe this data to be broadly accurate, and fit for purposes including overall dashboards, locating facilities in relation to high quality transit areas, and assessing community transit coverage. However, the spatial determination of high-quality transit areas from GTFS data necessarily involves some assumptions as described above. Any critical determinations of whether a specific parcel is located within a high-quality transit area should be made in conjunction with local sources, such as transit agency timetables. Notes: Null values may be present. The `hqta_details` columns defines which part of the Public Resources Code definition the HQTA classification was based on. If `hqta_details` references a single operator, then `agency_secondary` and `base64_url_secondary` are null. If `hqta_details` references the same operator, then `agency_secondary` and `base64_url_secondary` are the same as `agency_primary` and `base64_url_primary`.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_HQ_Transit_Stops/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"agency_pri": "agency_primary", "agency_sec": "agency_secondary", "hqta_detai": "hqta_details", "base64_url": "base64_url_primary", "base64_u_1": "base64_url_secondary", "org_id_pri": "org_id_primary", "org_id_sec": "org_id_secondary"}}, "ca_transit_routes": {"dataset_name": "ca_transit_routes", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Provide all CA transit stops and routes (geospatial) from all transit operators.", "description": "Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, GTFS, Transit routes, Transit stops, Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_Transit_Routes/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"caltrans_district": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "agency_name_primary": "agency_primary", "agency_name_secondary": "agency_secondary", "route_name_used": "route_name", "route_types_served": "routetypes", "n_hours_in": "n_hours_in_service", "route_ids_": "route_ids_served"}}, "ca_transit_stops": {"dataset_name": "ca_transit_stops", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Provide all CA transit stops and routes (geospatial) from all transit operators.", "description": "Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops.", "public_access": "Public.", "creation_date": "2022-02-08", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, GTFS, Transit routes, Transit stops, Transit", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt.", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/CA_Transit_Stops/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"caltrans_district": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "agency_name_primary": "agency_primary", "agency_name_secondary": "agency_secondary", "route_name_used": "route_name", "route_types_served": "routetypes", "n_hours_in": "n_hours_in_service", "route_ids_": "route_ids_served"}}, "speeds_by_stop_segments": {"dataset_name": "speeds_by_stop_segments", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Average all-day, peak, and offpeak transit speeds by segments for all CA operators that provide GTFS real-time vehicle positions data.", "description": "All day and peak transit 20th, 50th, and 80th percentile speeds on stop segments estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data.", "public_access": "Public.", "creation_date": "2023-06-14", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Transit, GTFS, GTFS RT, real time, speeds, vehicle positions ", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku / Eric Dasmalchi", "contact_email": "tiffany.ku@dot.ca.gov / eric.dasmalchi@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated by combining GTFS real-time vehicle positions to GTFS scheduled trips, shapes, stops, and stop times tables. GTFS shapes provides the route alignment path. Multiple trips may share the same shape, with a route typically associated with multiple shapes. Shapes are cut into segments at stop positions (stop_id-stop_sequence combination). A `stop segment` refers to the portion of shapes between the prior stop and the current stop. Vehicle positions are spatially joined to 35 meter buffered segments. Within each segment-trip, the first and last vehicle position observed are used to calculate the speed. Since multiple trips may occur over a segment each day, the multiple trip speeds provide a distribution. From this distribution, the 20th percentile, 50th percentile (median), and 80th percentile speeds are calculated. For all day speed metrics, all trips are used. For peak speed metrics, only trips with start times between 7 - 9:59 AM and 4 - 7:59 PM are used to find the 20th, 50th, and 80th percentile metrics. Data processing notes: (a) GTFS RT trips whose vehicle position timestamps span 10 minutes or less are dropped. Incomplete data would lead to unreliable estimates of speed at the granularity we need. (b) Segment-trip speeds of over 70 mph are excluded. These are erroneously calculated as transit does not typically reach those speeds. (c) Other missing or erroneous calculations, either arising from only one vehicle position found in a segment (change in time or change in distance cannot be calculated).", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/Speeds_By_Stop_Segments/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"stop_seque": "stop_sequence", "time_of_da": "time_of_day", "time_perio": "time_period", "district_n": "district_name", "direction_": "direction_id", "common_sha": "common_shape_id", "avg_sched_": "avg_sched_trip_min", "avg_rt_tri": "avg_rt_trip_min", "caltrans_d": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "stop_pair_": "stop_pair_name"}}, "speeds_by_route_time_of_day": {"dataset_name": "speeds_by_route_time_of_day", "publish_entity": "Data & Digital Services / California Integrated Travel Project", "summary_purpose": "Average transit speeds by route-direction estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data.", "description": "Provide average transit speeds, number of trips by route-direction.", "public_access": "Public.", "creation_date": "2023-06-14", "place": "California", "status": "completed", "frequency": "monthly", "theme_topic": "transportation", "theme_keywords": "Transportation, Transit, GTFS, GTFS RT, real time, speeds, vehicle positions ", "data_dict_type": "XML", "readme": "https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md", "readme_desc": "This site allows you to access the code used to create this dataset and provides additional explanatory resources.", "contact_organization": "Caltrans", "contact_person": "Tiffany Ku", "contact_email": "tiffany.ku@dot.ca.gov", "horiz_accuracy": "4 meters", "boilerplate_desc": "The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein.", "boilerplate_license": "Creative Commons 4.0 Attribution.", "methodology": "This data was estimated by combining GTFS real-time vehicle positions with GTFS scheduled trips and shapes. GTFS real-time (RT) vehicle positions are spatially joined to GTFS scheduled shapes, so only vehicle positions traveling along the route alignment path are kept. A sample of five vehicle positions are selected (min, 25th percentile, 50th percentile, 75th percentile, max). The trip speed is calculated using these five vehicle positions. Each trip is categorized into a time-of-day. The average speed for a route-direction-time_of_day is calculated. Additional metrics are stored, such as the number of trips observed, the average scheduled service minutes, and the average RT observed service minutes. For convenience, we also provide a singular shape (common_shape_id) to associate with a route-direction. This is the shape that had the most number of trips for a given route-direction. Time-of-day is determined by the GTFS scheduled trip start time. The trip start hour (military time) is categorized based on the following: Owl (0-3), Early AM (4-6), AM Peak (7-9), Midday (10-14), PM Peak (15-19), and Evening (20-23). The start and end hours are inclusive (e.g., 4-6 refers to 4am, 5am, and 6am).", "data_dict_url": "https://gisdata.dot.ca.gov/arcgis/rest/services/CHrailroad/Speeds_By_Route_Time_of_Day/FeatureServer", "revision_date": "2024-11-13", "rename_cols": {"stop_seque": "stop_sequence", "time_of_da": "time_of_day", "time_perio": "time_period", "district_n": "district_name", "direction_": "direction_id", "common_sha": "common_shape_id", "avg_sched_": "avg_sched_trip_min", "avg_rt_tri": "avg_rt_trip_min", "caltrans_d": "district_name", "organization_source_record_id": "org_id", "organization_name": "agency", "stop_pair_": "stop_pair_name"}}} \ No newline at end of file diff --git a/open_data/update_vars.py b/open_data/update_vars.py index a851b3a99..8c42de7f5 100644 --- a/open_data/update_vars.py +++ b/open_data/update_vars.py @@ -1,7 +1,7 @@ from pathlib import Path from shared_utils import catalog_utils, rt_dates -analysis_date = rt_dates.DATES["oct2024g"] +analysis_date = rt_dates.DATES["nov2024"] GTFS_DATA_DICT = catalog_utils.get_catalog("gtfs_analytics_data") diff --git a/open_data/xml/ca_transit_routes.xml b/open_data/xml/ca_transit_routes.xml index c9abad723..fb80aaaea 100644 --- a/open_data/xml/ca_transit_routes.xml +++ b/open_data/xml/ca_transit_routes.xml @@ -1,307 +1,130 @@ - - - - - eng - - - - - utf8 - - - - - dataset - - - - dataset - - - - 2024-10-08 - - - ISO 19139 Geographic Information - Metadata - Implementation Specification - - - 2007 - - - - - - geometryOnly - - - - - - - composite - - - - - - - - - - - - 4326 - - - EPSG - - - 6.2(3.0.1) - - - - - - - - - - - ca_transit_routes - - - - - 2022-02-08 - - - - creation - - - - - - - - 2024-10-16 - - - - revision - - - - - - - - Caltrans - - - - publisher - - - - - - - - Tiffany Ku - - - Caltrans - - - Data & Digital Services / California Integrated Travel Project - - - - - - - tiffany.ku@dot.ca.gov - - - - - - - - pointOfContact - - - - - - - mapDigital - - - - - - Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops. - - - Provide all CA transit stops and routes (geospatial) from all transit operators. - - - - completed - - - - - - - monthly - - - - - - - - transportation - - - - theme - - - - - - - - Downloadable Data - - - - - - - - Public. - - - - - - - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein. - - - - - - - Creative Commons 4.0 Attribution. - - - - license - - - - - - - vector - - - - - eng - - - - - utf8 - - - - transportation - - - Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.2.32739 - - - - - California - - - - - - - - - - - File Geodatabase Feature Class - - - - - - - - - - https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md - - - Readme - - - This site allows you to access the code used to create this dataset and provides additional explanatory resources. - - - - information - - - - - - - - - - - - - - - feature - - - - - - - - 4 meters - - - - - - - - - - This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt. - - - - - - - - \ No newline at end of file + + + +eng + + +utf8 + + +dataset + + +dataset + + + + +2024-11-18 + + +ISO 19139 Geographic Information - Metadata - Implementation Specification + + +2007 + + + + +geometryOnly + + + + +composite + + + + + + + + + + +4326 + + +EPSG + + +6.2(3.0.1) + + + + + + + + + + +<gco:CharacterString>ca_transit_routes</gco:CharacterString> + + + + +mapDigital + + + + +Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops. + + +Provide all CA transit stops and routes (geospatial) from all transit operators. + + + + +Transportation + + +GTFS + + +Transit routes + + +Transit stops + + +Transit + + + + + + +Public. + + + + +vector + + +eng + + +utf8 + + +Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.12.32739 + + + + + + + + +File Geodatabase Feature Class + + + + + + + + diff --git a/open_data/xml/ca_transit_stops.xml b/open_data/xml/ca_transit_stops.xml index 1a5965092..b9f5826dc 100644 --- a/open_data/xml/ca_transit_stops.xml +++ b/open_data/xml/ca_transit_stops.xml @@ -1,307 +1,130 @@ - - - - - eng - - - - - utf8 - - - - - dataset - - - - dataset - - - - 2024-10-08 - - - ISO 19139 Geographic Information - Metadata - Implementation Specification - - - 2007 - - - - - - geometryOnly - - - - - - - point - - - - - - - - - - - - 4326 - - - EPSG - - - 6.2(3.0.1) - - - - - - - - - - - ca_transit_stops - - - - - 2022-02-08 - - - - creation - - - - - - - - 2024-10-16 - - - - revision - - - - - - - - Caltrans - - - - publisher - - - - - - - - Tiffany Ku - - - Caltrans - - - Data & Digital Services / California Integrated Travel Project - - - - - - - tiffany.ku@dot.ca.gov - - - - - - - - pointOfContact - - - - - - - mapDigital - - - - - - Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops. - - - Provide all CA transit stops and routes (geospatial) from all transit operators. - - - - completed - - - - - - - monthly - - - - - - - - transportation - - - - theme - - - - - - - - Downloadable Data - - - - - - - - Public. - - - - - - - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein. - - - - - - - Creative Commons 4.0 Attribution. - - - - license - - - - - - - vector - - - - - eng - - - - - utf8 - - - - transportation - - - Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.2.32739 - - - - - California - - - - - - - - - - - File Geodatabase Feature Class - - - - - - - - - - https://github.com/cal-itp/data-analyses/blob/main/open_data/README.md - - - Readme - - - This site allows you to access the code used to create this dataset and provides additional explanatory resources. - - - - information - - - - - - - - - - - - - - - feature - - - - - - - - 4 meters - - - - - - - - - - This data was assembled from the General Transit Feed Specification (GTFS) schedule data. GTFS tables are text files, but these have been compiled for all operators and transformed into geospatial data, with minimal data processing. The transit routes dataset is assembled from two tables: (1) `shapes.txt`, which defines the route alignment path, and (2) `trips.txt` and `stops.txt`, for routes not found in `shapes.txt`. `shapes.txt` is an optional GTFS table with richer information than just transit stop longitude and latitude. The transit stops dataset is assembled from `stops.txt`, which contains information about the route, stop sequence, and stop longitude and latitude. References: https://gtfs.org/. https://gtfs.org/schedule/reference/#shapestxt. https://gtfs.org/schedule/reference/#stopstxt. https://gtfs.org/schedule/reference/#tripstxt. - - - - - - - - \ No newline at end of file + + + +eng + + +utf8 + + +dataset + + +dataset + + + + +2024-11-18 + + +ISO 19139 Geographic Information - Metadata - Implementation Specification + + +2007 + + + + +geometryOnly + + + + +point + + + + + + + + + + +4326 + + +EPSG + + +6.2(3.0.1) + + + + + + + + + + +<gco:CharacterString>ca_transit_stops</gco:CharacterString> + + + + +mapDigital + + + + +Provide compiled GTFS schedule data in geospatial format. Transit routes associates route information to shapes. Transit stops associates aggregated stop times and route information aggregated for each stops. + + +Provide all CA transit stops and routes (geospatial) from all transit operators. + + + + +Transportation + + +GTFS + + +Transit routes + + +Transit stops + + +Transit + + + + + + +Public. + + + + +vector + + +eng + + +utf8 + + +Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.12.32739 + + + + + + + + +File Geodatabase Feature Class + + + + + + + + diff --git a/open_data/xml/speeds_by_route_time_of_day.xml b/open_data/xml/speeds_by_route_time_of_day.xml index 7a4b73f6f..b75a2356b 100644 --- a/open_data/xml/speeds_by_route_time_of_day.xml +++ b/open_data/xml/speeds_by_route_time_of_day.xml @@ -1,307 +1,136 @@ - - - - - eng - - - - - utf8 - - - - - dataset - - - - dataset - - - - 2024-10-08 - - - ISO 19139 Geographic Information - Metadata - Implementation Specification - - - 2007 - - - - - - geometryOnly - - - - - - - composite - - - - - - - - - - - - 4326 - - - EPSG - - - 6.2(3.0.1) - - - - - - - - - - - speeds_by_route_time_of_day - - - - - 2023-06-14 - - - - creation - - - - - - - - 2024-10-16 - - - - revision - - - - - - - - Caltrans - - - - publisher - - - - - - - - Tiffany Ku - - - Caltrans - - - Data & Digital Services / California Integrated Travel Project - - - - - - - tiffany.ku@dot.ca.gov - - - - - - - - pointOfContact - - - - - - - mapDigital - - - - - - Provide average transit speeds, number of trips by route-direction. - - - Average transit speeds by route-direction estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data. - - - - completed - - - - - - - monthly - - - - - - - - transportation - - - - theme - - - - - - - - Downloadable Data - - - - - - - - Public. - - - - - - - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein. - - - - - - - Creative Commons 4.0 Attribution. - - - - license - - - - - - - vector - - - - - eng - - - - - utf8 - - - - transportation - - - Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.2.32739 - - - - - California - - - - - - - - - - - File Geodatabase Feature Class - - - - - - - - - - https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md - - - Readme - - - This site allows you to access the code used to create this dataset and provides additional explanatory resources. - - - - information - - - - - - - - - - - - - - - feature - - - - - - - - 4 meters - - - - - - - - - - This data was estimated by combining GTFS real-time vehicle positions with GTFS scheduled trips and shapes. GTFS real-time (RT) vehicle positions are spatially joined to GTFS scheduled shapes, so only vehicle positions traveling along the route alignment path are kept. A sample of five vehicle positions are selected (min, 25th percentile, 50th percentile, 75th percentile, max). The trip speed is calculated using these five vehicle positions. Each trip is categorized into a time-of-day. The average speed for a route-direction-time_of_day is calculated. Additional metrics are stored, such as the number of trips observed, the average scheduled service minutes, and the average RT observed service minutes. For convenience, we also provide a singular shape (common_shape_id) to associate with a route-direction. This is the shape that had the most number of trips for a given route-direction. Time-of-day is determined by the GTFS scheduled trip start time. The trip start hour (military time) is categorized based on the following: Owl (0-3), Early AM (4-6), AM Peak (7-9), Midday (10-14), PM Peak (15-19), and Evening (20-23). The start and end hours are inclusive (e.g., 4-6 refers to 4am, 5am, and 6am). - - - - - - - - \ No newline at end of file + + + +eng + + +utf8 + + +dataset + + +dataset + + + + +2024-11-18 + + +ISO 19139 Geographic Information - Metadata - Implementation Specification + + +2007 + + + + +geometryOnly + + + + +composite + + + + + + + + + + +4326 + + +EPSG + + +6.2(3.0.1) + + + + + + + + + + +<gco:CharacterString>speeds_by_route_time_of_day</gco:CharacterString> + + + + +mapDigital + + + + +Provide average transit speeds, number of trips by route-direction. + + +Average transit speeds by route-direction estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data. + + + + +Transportation + + +Transit + + +GTFS + + +GTFS RT + + +real time + + +speeds + + +vehicle positions + + + + + + +Public. + + + + +vector + + +eng + + +utf8 + + +Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.12.32739 + + + + + + + + +File Geodatabase Feature Class + + + + + + + + diff --git a/open_data/xml/speeds_by_stop_segments.xml b/open_data/xml/speeds_by_stop_segments.xml index 4d405e9b5..a47438d65 100644 --- a/open_data/xml/speeds_by_stop_segments.xml +++ b/open_data/xml/speeds_by_stop_segments.xml @@ -1,307 +1,136 @@ - - - - - eng - - - - - utf8 - - - - - dataset - - - - dataset - - - - 2024-10-08 - - - ISO 19139 Geographic Information - Metadata - Implementation Specification - - - 2007 - - - - - - geometryOnly - - - - - - - composite - - - - - - - - - - - - 4326 - - - EPSG - - - 6.2(3.0.1) - - - - - - - - - - - speeds_by_stop_segments - - - - - 2023-06-14 - - - - creation - - - - - - - - 2024-10-16 - - - - revision - - - - - - - - Caltrans - - - - publisher - - - - - - - - Tiffany Ku / Eric Dasmalchi - - - Caltrans - - - Data & Digital Services / California Integrated Travel Project - - - - - - - tiffany.ku@dot.ca.gov / eric.dasmalchi@dot.ca.gov - - - - - - - - pointOfContact - - - - - - - mapDigital - - - - - - All day and peak transit 20th, 50th, and 80th percentile speeds on stop segments estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data. - - - Average all-day, peak, and offpeak transit speeds by segments for all CA operators that provide GTFS real-time vehicle positions data. - - - - completed - - - - - - - monthly - - - - - - - - transportation - - - - theme - - - - - - - - Downloadable Data - - - - - - - - Public. - - - - - - - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information Use Limitation - The data are made available to the public solely for informational purposes. Information provided in the Caltrans GIS Data Library is accurate to the best of our knowledge and is subject to change on a regular basis, without notice. While Caltrans makes every effort to provide useful and accurate information, we do not warrant the information to be authoritative, complete, factual, or timely. Information is provided on an 'as is' and an 'as available' basis. The Department of Transportation is not liable to any party for any cost or damages, including any direct, indirect, special, incidental, or consequential damages, arising out of or in connection with the access or use of, or the inability to access or use, the Site or any of the Materials or Services described herein. - - - - - - - Creative Commons 4.0 Attribution. - - - - license - - - - - - - vector - - - - - eng - - - - - utf8 - - - - transportation - - - Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.2.32739 - - - - - California - - - - - - - - - - - File Geodatabase Feature Class - - - - - - - - - - https://github.com/cal-itp/data-analyses/blob/main/rt_segment_speeds/README.md - - - Readme - - - This site allows you to access the code used to create this dataset and provides additional explanatory resources. - - - - information - - - - - - - - - - - - - - - feature - - - - - - - - 4 meters - - - - - - - - - - This data was estimated by combining GTFS real-time vehicle positions to GTFS scheduled trips, shapes, stops, and stop times tables. GTFS shapes provides the route alignment path. Multiple trips may share the same shape, with a route typically associated with multiple shapes. Shapes are cut into segments at stop positions (stop_id-stop_sequence combination). A `stop segment` refers to the portion of shapes between the prior stop and the current stop. Vehicle positions are spatially joined to 35 meter buffered segments. Within each segment-trip, the first and last vehicle position observed are used to calculate the speed. Since multiple trips may occur over a segment each day, the multiple trip speeds provide a distribution. From this distribution, the 20th percentile, 50th percentile (median), and 80th percentile speeds are calculated. For all day speed metrics, all trips are used. For peak speed metrics, only trips with start times between 7 - 9:59 AM and 4 - 7:59 PM are used to find the 20th, 50th, and 80th percentile metrics. Data processing notes: (a) GTFS RT trips whose vehicle position timestamps span 10 minutes or less are dropped. Incomplete data would lead to unreliable estimates of speed at the granularity we need. (b) Segment-trip speeds of over 70 mph are excluded. These are erroneously calculated as transit does not typically reach those speeds. (c) Other missing or erroneous calculations, either arising from only one vehicle position found in a segment (change in time or change in distance cannot be calculated). - - - - - - - - \ No newline at end of file + + + +eng + + +utf8 + + +dataset + + +dataset + + + + +2024-11-18 + + +ISO 19139 Geographic Information - Metadata - Implementation Specification + + +2007 + + + + +geometryOnly + + + + +composite + + + + + + + + + + +4326 + + +EPSG + + +6.2(3.0.1) + + + + + + + + + + +<gco:CharacterString>speeds_by_stop_segments</gco:CharacterString> + + + + +mapDigital + + + + +All day and peak transit 20th, 50th, and 80th percentile speeds on stop segments estimated on a single day for all CA transit operators that provide GTFS real-time vehicle positions data. + + +Average all-day, peak, and offpeak transit speeds by segments for all CA operators that provide GTFS real-time vehicle positions data. + + + + +Transportation + + +Transit + + +GTFS + + +GTFS RT + + +real time + + +speeds + + +vehicle positions + + + + + + +Public. + + + + +vector + + +eng + + +utf8 + + +Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 12.9.12.32739 + + + + + + + + +File Geodatabase Feature Class + + + + + + + + From b9aab28eb4066be4d9771e3a078792fe3e79a0df Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Wed, 20 Nov 2024 18:55:24 +0000 Subject: [PATCH 17/21] unpack dict inputs, finish rt_scheduled_v_ran --- rt_scheduled_v_ran/logs/rt_v_scheduled_route_metrics.log | 1 + rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rt_scheduled_v_ran/logs/rt_v_scheduled_route_metrics.log b/rt_scheduled_v_ran/logs/rt_v_scheduled_route_metrics.log index e14138ed6..648714d02 100644 --- a/rt_scheduled_v_ran/logs/rt_v_scheduled_route_metrics.log +++ b/rt_scheduled_v_ran/logs/rt_v_scheduled_route_metrics.log @@ -77,3 +77,4 @@ 2024-10-23 09:50:14.254 | INFO | __main__:route_metrics:85 - route aggregation 2024-10-18: 0:00:02.744769 2024-10-23 09:50:16.036 | INFO | __main__:route_metrics:85 - route aggregation 2024-10-19: 0:00:01.776961 2024-10-23 09:50:18.482 | INFO | __main__:route_metrics:85 - route aggregation 2024-10-20: 0:00:02.442012 +2024-11-20 10:54:08.184 | INFO | __main__:route_metrics:85 - route aggregation 2024-11-13: 0:00:05.430277 diff --git a/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py b/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py index 92edf36a7..176c0db68 100644 --- a/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py +++ b/rt_scheduled_v_ran/scripts/rt_v_scheduled_routes.py @@ -9,7 +9,7 @@ from segment_speed_utils import gtfs_schedule_wrangling, metrics from update_vars import RT_SCHED_GCS, GTFS_DATA_DICT -ROUTE_DIR_COLS = GTFS_DATA_DICT["stop_segments"]["route_dir_cols"] +ROUTE_DIR_COLS = [*GTFS_DATA_DICT["stop_segments"]["route_dir_cols"]] def average_rt_trip_times( df: pd.DataFrame From f685c41c34fcf4a0d390b90011d84affc33daad8 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Wed, 20 Nov 2024 18:58:47 +0000 Subject: [PATCH 18/21] remove route-dir detail from average seg speeds (revert to main), will keep for speedmap segs --- rt_segment_speeds/scripts/average_segment_speeds.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/rt_segment_speeds/scripts/average_segment_speeds.py b/rt_segment_speeds/scripts/average_segment_speeds.py index bbaf8956a..313426798 100644 --- a/rt_segment_speeds/scripts/average_segment_speeds.py +++ b/rt_segment_speeds/scripts/average_segment_speeds.py @@ -269,7 +269,6 @@ def segment_averages_detail( TIME_OF_DAY_FILE = dict_inputs["shape_stop_single_segment"] + "_test" ROUTE_SEG_FILE = dict_inputs["route_dir_single_segment"] - ROUTE_SEG_DETAIL_FILE = dict_inputs["route_dir_single_segment_detail"] for analysis_date in analysis_date_list: @@ -280,15 +279,6 @@ def segment_averages_detail( export_file = ROUTE_SEG_FILE, weighted_averages = True ) - - # potential option, not using for now - # segment_averages( - # [analysis_date], - # segment_type, - # group_cols = OPERATOR_COLS + ROUTE_DIR_COLS + STOP_PAIR_COLS, - # export_file = ROUTE_SEG_DETAIL_FILE, - # weighted_averages = True - # ) segment_averages( [analysis_date], From 24463a9a3e48b3b80d45465ce517c881c8f82245 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Mon, 25 Nov 2024 18:20:53 +0000 Subject: [PATCH 19/21] format --- _shared_utils/shared_utils/rt_dates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_shared_utils/shared_utils/rt_dates.py b/_shared_utils/shared_utils/rt_dates.py index 3a9acf7f1..fb2e42886 100644 --- a/_shared_utils/shared_utils/rt_dates.py +++ b/_shared_utils/shared_utils/rt_dates.py @@ -72,7 +72,7 @@ "oct2024e": "2024-10-19", "oct2024f": "2024-10-20", "oct2024g": "2024-10-21", # additional one-off to capture Amtrak in HQTA - "nov2024": "2024-11-13" + "nov2024": "2024-11-13", } y2023_dates = [ From 62ad61d6959a4cb42261641bb4e83d013f9f3b9c Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Mon, 25 Nov 2024 19:20:29 +0000 Subject: [PATCH 20/21] add a bit to README --- open_data/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/open_data/README.md b/open_data/README.md index 1de42e1b2..ecb672b5d 100644 --- a/open_data/README.md +++ b/open_data/README.md @@ -33,9 +33,10 @@ Traffic Ops had a request for all transit routes and transit stops to be publish * Check the log results, which tells you if there are columns missing from `data_dictionary.yml`. These columns and their descriptions need to be added. Every column in the ESRI layer must have a definition, and where there's an external data dictionary website to cite, provide a definition source. 1. In terminal: `python update_fields_fgdc.py`. This populates fields with `data_dictionary.yml` values. * Only run if `update_data_dict` had changes to incorporate -1. Run [arcgis_pro_script](./arcgis_pro_script.py) to create XML files. - * Open a notebook in Hub and find the `ARCGIS_PATH` +1. Run [arcgis_pro_script](./arcgis_pro_script.py) to create XML files. Often it's easier to run via the [notebook](./arcgis_pro_notebook_sample), but the script exists for better version control and to track feature changes. + * Open a notebook in Hub and find the `ARCGIS_PATH` (your preferred local path for ArcGIS work) * Hardcode that path for `arcpy.env.workspace = ARCGIS_PATH` + * Download `metadata.json` and place in your local path. * The exported XML metadata will be in file gdb directory. * Upload the XML metadata into Hub in `open_data/xml/`. 1. If there are new datasets added, open `update_vars.py` and modify the script. @@ -43,7 +44,7 @@ Traffic Ops had a request for all transit routes and transit stops to be publish * Change into the `open_data` directory: `cd open_data/`. * The overwritten XML is stored in `open_data/xml/run_in_esri/`. * Download the overwritten XML files locally to run in ArcGIS. -1. Run [arcgis_pro_script](./arcgis_pro_script.py) after import the updated XML metadata for each feature class. +1. Run [arcgis_pro_script](./arcgis_pro_script.py) after importing the updated XML metadata for each feature class. * There are steps to create FGDC templates for each datasets to store field information. * This only needs to be done once when a new dataset is created. 1. In terminal: `python cleanup.py` to clean up old XML files and remove zipped shapefiles. From c3511d737598b7039aba4eada9ad8a3317a89131 Mon Sep 17 00:00:00 2001 From: Eric Dasmalchi Date: Mon, 25 Nov 2024 20:03:12 +0000 Subject: [PATCH 21/21] add to intake justification instructions --- open_data/intake_justification.md | 6 ++++-- rt_segment_speeds/logs/cut_stop_segments.log | 2 ++ rt_segment_speeds/segment_speed_utils/project_vars.py | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/open_data/intake_justification.md b/open_data/intake_justification.md index 050b2058f..67617729a 100644 --- a/open_data/intake_justification.md +++ b/open_data/intake_justification.md @@ -3,14 +3,16 @@ Document links, justification, for why datasets need to be made public. Submit this information every time a ticket is open to update the existing layers. ## Intranet Links -1. [Geospatial open data request](https://forms.office.com/Pages/ResponsePage.aspx?id=ZAobYkAXzEONiEVA00h1VuRQZHWRcbdNm496kj4opnZUNUo1NjRNRFpIOVRBMVFFTFJDM1JKNkY0SC4u) +1. [Geospatial open data request (routine updates)](https://forms.office.com/Pages/ResponsePage.aspx?id=ZAobYkAXzEONiEVA00h1VuRQZHWRcbdNm496kj4opnZUNUo1NjRNRFpIOVRBMVFFTFJDM1JKNkY0SC4u) + * District: `Sacramento HQ` * Division / Program: `Rail and Mass Transportation` * Update or New: `Update existing service` * Enterprise Geodatabase Name: `HQ` * Feature Class Name: `HQ.ca_hq_transit_stops, HQ.ca_hq_transit_areas, HQ.ca_transit_stops, HQ.ca_transit_routes, HQ.speeds_by_stop_segments, HQ.speeds_by_route_time_of_day` + * Can provide a list of multiple feature classes to update in a single ticket, and use the same for "Name of updated service" -1. [Open support ticket for GIS](https://forms.office.com/Pages/ResponsePage.aspx?id=ZAobYkAXzEONiEVA00h1VuRQZHWRcbdNm496kj4opnZUNkI2T0hGWElZMUcwTDRUOUNCU0VWMTUxWi4u) +1. [Open support ticket for GIS (if you notice an issue)](https://forms.office.com/Pages/ResponsePage.aspx?id=ZAobYkAXzEONiEVA00h1VuRQZHWRcbdNm496kj4opnZUNkI2T0hGWElZMUcwTDRUOUNCU0VWMTUxWi4u) ## Intake Justification ### High Quality Transit Areas diff --git a/rt_segment_speeds/logs/cut_stop_segments.log b/rt_segment_speeds/logs/cut_stop_segments.log index d183cd547..84af12a79 100644 --- a/rt_segment_speeds/logs/cut_stop_segments.log +++ b/rt_segment_speeds/logs/cut_stop_segments.log @@ -61,3 +61,5 @@ 2024-10-22 14:53:23.396 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-10-20: 0:02:47.476220 2024-11-15 11:58:50.588 | INFO | __main__::155 - cut segments 2024-11-13: 0:23:35.849980 2024-11-15 12:05:36.298 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-11-13: 0:05:14.586933 +2024-11-25 11:51:31.638 | INFO | __main__::155 - cut segments 2024-01-17: 0:21:23.110335 +2024-11-25 11:57:30.752 | INFO | __main__::244 - speedmap segments and proxy_stop_times 2024-01-17: 0:04:25.925486 diff --git a/rt_segment_speeds/segment_speed_utils/project_vars.py b/rt_segment_speeds/segment_speed_utils/project_vars.py index 4155dea71..f2feb7ede 100644 --- a/rt_segment_speeds/segment_speed_utils/project_vars.py +++ b/rt_segment_speeds/segment_speed_utils/project_vars.py @@ -11,7 +11,7 @@ SHARED_GCS = GTFS_DATA_DICT.gcs_paths.SHARED_GCS PUBLIC_GCS = GTFS_DATA_DICT.gcs_paths.PUBLIC_GCS -analysis_date = rt_dates.DATES["nov2024"] +analysis_date = rt_dates.DATES["jan2024"] oct2023_week = rt_dates.get_week("oct2023", exclude_wed=True) apr2023_week = rt_dates.get_week("apr2023", exclude_wed=True)