models.trip module¶
Trip model for boat routes.
- class models.trip.Trip(csv_path: str)[source]¶
Bases:
objectBoat trip with waypoints loaded from CSV.
- route_name¶
Route name (from CSV filename stem).
- points¶
List of TripPoint waypoints.
- Type:
List[models.trip.TripPoint]
- duration¶
Total trip duration in seconds.
- estimate_energy_required(boat_k_factor: float) float[source]¶
Estimate total energy (kWh) for the full trip using cube-law power per segment.
- Parameters:
boat_k_factor – Boat k-factor (motor_power / range_speed^3).
- Returns:
Total energy in kWh.
- get_energy_between(start_elapsed_seconds: float, end_elapsed_seconds: float, boat_k_factor: float) float[source]¶
Energy (kWh) consumed in [start_elapsed, end_elapsed] using same segment integration as estimate_energy_required.
- Parameters:
start_elapsed_seconds – Window start (s from trip start).
end_elapsed_seconds – Window end (s from trip start).
boat_k_factor – Boat k-factor (motor_power / range_speed^3).
- Returns:
Energy in kWh for the window.
- class models.trip.TripPoint(timestamp: datetime, point_type: str, speed: float, heading: float, latitude: float, longitude: float)[source]¶
Bases:
objectOne waypoint in a trip route.
- timestamp¶
Time at this point.
- Type:
datetime.datetime
- point_type¶
Type label (e.g. Static, Dock, Terrestrial, Interpolated).
- Type:
str
- speed¶
Speed in knots.
- Type:
float
- heading¶
Heading in degrees.
- Type:
float
- latitude¶
Latitude.
- Type:
float
- longitude¶
Longitude.
- Type:
float
- heading: float¶
- latitude: float¶
- longitude: float¶
- point_type: str¶
- speed: float¶
- timestamp: datetime¶