Skip to content

Commit 1b2b4bc

Browse files
committed
rename deadhead functions for clarity; format
1 parent d6eae24 commit 1b2b4bc

12 files changed

Lines changed: 83 additions & 225 deletions

docs/examples/Utah_Transit_Agency_example.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import os
99

1010
from nrel.routee.transit import (
11+
aggregate_results_by_trip,
1112
build_routee_features_with_osm,
1213
predict_for_all_trips,
13-
aggregate_results_by_trip,
1414
repo_root,
1515
)
1616

@@ -76,9 +76,13 @@
7676
energy_by_trip = aggregate_results_by_trip(routee_results, routee_vehicle_model)
7777

7878
# Merge HVAC energy
79-
energy_by_trip = energy_by_trip.merge(temp_energy_df, on='trip_id', how='left')
80-
energy_by_trip["kwh_per_mi_winter"] = (energy_by_trip["kWhs"] + energy_by_trip["Winter_HVAC_Energy"]) / energy_by_trip["miles"]
81-
energy_by_trip["kwh_per_mi_summer"] = (energy_by_trip["kWhs"] + energy_by_trip["Summer_HVAC_Energy"]) / energy_by_trip["miles"]
79+
energy_by_trip = energy_by_trip.merge(temp_energy_df, on="trip_id", how="left")
80+
energy_by_trip["kwh_per_mi_winter"] = (
81+
energy_by_trip["kWhs"] + energy_by_trip["Winter_HVAC_Energy"]
82+
) / energy_by_trip["miles"]
83+
energy_by_trip["kwh_per_mi_summer"] = (
84+
energy_by_trip["kWhs"] + energy_by_trip["Summer_HVAC_Energy"]
85+
) / energy_by_trip["miles"]
8286

8387
# Check the results for some random trips
8488
energy_by_trip

docs/examples/_convert_examples.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from pathlib import Path
2-
import nbformat
31
import argparse
42
import sys
3+
from pathlib import Path
4+
5+
import nbformat
56

67

78
def script_to_notebook(script_path: Path, notebook_path: Path) -> None:

nrel/routee/transit/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
]
88

99
from .prediction.gtfs_feature_processing import build_routee_features_with_osm
10-
from .prediction.routee import predict_for_all_trips, aggregate_results_by_trip
10+
from .prediction.routee import aggregate_results_by_trip, predict_for_all_trips
1111

1212

1313
def package_root() -> Path:

nrel/routee/transit/prediction/add_temp_feature.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import os
2+
from typing import Any
3+
4+
import boto3
15
import geopandas as gpd
6+
import numpy as np
27
import pandas as pd
3-
import boto3
48
from botocore import UNSIGNED
59
from botocore.config import Config
6-
import os
7-
import numpy as np
8-
from typing import Any
910

1011

1112
def add_HVAC_energy(feed: Any, trips_df: pd.DataFrame) -> Any:

nrel/routee/transit/prediction/between_trip_deadhead.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from geopy.distance import geodesic
77

88

9-
def create_betweenTrip_deadhead_trips(
9+
def create_between_trip_deadhead_trips(
1010
trips_df: pd.DataFrame, stop_times_df: pd.DataFrame
1111
) -> pd.DataFrame:
1212
"""Create deadhead trips between consecutive trips for each block.
@@ -66,7 +66,7 @@ def create_betweenTrip_deadhead_trips(
6666
return deadhead_trips
6767

6868

69-
def create_betweenTrip_deadhead_stops(
69+
def create_between_trip_deadhead_stops(
7070
feed: Any, deadhead_trips: pd.DataFrame
7171
) -> tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]:
7272
"""Create stop_times and stops for deadhead trips between consecutive trips to generate the feed object for between trip deadhead trips.
@@ -75,7 +75,7 @@ def create_betweenTrip_deadhead_stops(
7575
feed: Any
7676
GTFS feed object (e.g. result from read_in_gtfs).
7777
deadhead_trips: pd.DataFrame
78-
deadhead trip results from create_betweenTrip_deadhead_trips.py.
78+
deadhead trip results from create_between_trip_deadhead_trips.py.
7979
Returns
8080
-------
8181
pd.DataFrame
@@ -186,7 +186,7 @@ def create_betweenTrip_deadhead_stops(
186186
]
187187
stop_times_df["stop_id"] = range(1, len(stop_times_df) + 1)
188188
stop_times_df["stop_id"] = stop_times_df["stop_id"].apply(
189-
lambda x: f"betweenTrip_deadhead_{x}"
189+
lambda x: f"between_trip_deadhead_{x}"
190190
)
191191
stop_times_df["departure_time"] = stop_times_df["arrival_time"]
192192
stop_times_df["shape_dist_traveled"] = 0.0

nrel/routee/transit/prediction/create_betweenTrip_deadhead_stops.py

Lines changed: 0 additions & 152 deletions
This file was deleted.

nrel/routee/transit/prediction/depot_deadhead.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
def create_depot_deadhead_trips(trips_df: pd.DataFrame) -> pd.DataFrame:
1313
"""Create deadhead trips from and to depots for each block.
14+
15+
This function essentially creates rows for the trips.txt DataFrame.
16+
It does not generate shape traces for them (that is handled by other
17+
functions in this module).
18+
1419
Parameters
1520
----------
1621
trips_df : pd.DataFrame
@@ -92,10 +97,10 @@ def create_depot_deadhead_trips(trips_df: pd.DataFrame) -> pd.DataFrame:
9297
return deadhead_trips_df
9398

9499

95-
def add_depot_to_blocks(
100+
def infer_depot_trip_endpoints(
96101
trips_df: pd.DataFrame, feed: Any, path_to_depots: str | Path
97102
) -> tuple[Any, Any]:
98-
"""Add origin/destination depot geometry to each block id.
103+
"""Add origin/destination depot geometry for each block.
99104
100105
Parameters
101106
----------
@@ -221,7 +226,8 @@ def create_depot_deadhead_stops(
221226
last_stops_gdf: gpd.GeoDataFrame,
222227
deadhead_trips: pd.DataFrame,
223228
) -> tuple[pd.DataFrame, pd.DataFrame]:
224-
"""Creat stop_times and stops for deadhead trips from and to depots for each block to generate the feed object for depot deadhead trips.
229+
"""Create stop_times and stops for deadhead trips from and to depots.
230+
225231
Parameters
226232
----------
227233
first_stops_gdf: gpd.GeoDataFrame

nrel/routee/transit/prediction/generate_deadhead_traces.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
1-
import pandas as pd
2-
import geopandas as gpd
3-
import osmnx as ox
4-
import networkx as nx
5-
from shapely.geometry import LineString
6-
from shapely.ops import linemerge, unary_union
71
import math
82

93
# single-global-graph approach; per-row cached graphs removed
104
import multiprocessing as mp
11-
from typing import Tuple, Any
5+
from typing import Any, Tuple
126

7+
import geopandas as gpd
8+
import networkx as nx
9+
import osmnx as ox
10+
import pandas as pd
11+
from shapely.geometry import LineString
12+
from shapely.ops import linemerge, unary_union
1313

1414
# Optionally hold a single pre-fetched graph for the whole study area.
1515
GLOBAL_GRAPH = None
1616

1717

18-
# Note: per-row cached graph fetch removed. This module now requires a single
19-
# pre-fetched study-area graph assigned to GLOBAL_GRAPH (via bbox in
20-
# `add_deadhead_trips`) and all routing workers use that graph.
21-
22-
2318
def _parallel_map(
2419
func: Any, iterable: Any, n_processes: int | None, chunksize: int = 8
2520
) -> list[Any]:
@@ -32,6 +27,7 @@ def _parallel_map(
3227
results.append(item)
3328
return results
3429

30+
3531
def _haversine_km(lat1: Any, lon1: Any, lat2: Any, lon2: Any) -> float:
3632
"""Get the haversine distance between two points in kilometers."""
3733
R = 6371.0
@@ -153,7 +149,7 @@ def _process_deadhead_trip_row(args: Tuple[Any, ...]) -> list[Any]:
153149
return []
154150

155151

156-
def add_deadhead_trips(
152+
def create_deadhead_shapes(
157153
df: gpd.GeoDataFrame,
158154
o_col: str = "geometry_origin",
159155
d_col: str = "geometry_destination",
@@ -171,9 +167,7 @@ def add_deadhead_trips(
171167
global GLOBAL_GRAPH
172168

173169
# Create bounding box around for osmnx graph based on O/D geometry
174-
all_points = pd.concat(
175-
[df["geometry_origin"], df["geometry_destination"]]
176-
)
170+
all_points = pd.concat([df["geometry_origin"], df["geometry_destination"]])
177171
lons = all_points.apply(lambda p: p.x)
178172
lats = all_points.apply(lambda p: p.y)
179173
min_lon, max_lon = lons.min(), lons.max() # Bounding box

nrel/routee/transit/prediction/grade/download.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
from __future__ import annotations
22

3-
from pathlib import Path
4-
53
import logging
4+
from pathlib import Path
65

76
import requests
87

0 commit comments

Comments
 (0)