code: def trajectory_bounding_boxes(
      num_trajectories, object_ids, points: GeoSeries
  ):
      """Compute the bounding boxes of sets of trajectories.
  
      Parameters
      ----------
      num_trajectories
          number of trajectories (unique object ids)
      object_ids
          column of object (e.g., vehicle) ids
      points: GeoSeries
          Series of trajectory points
  
      Returns
      -------
      result : cudf.DataFrame
          minimum bounding boxes (in kilometers) for each trajectory
  
          x_min : cudf.Series
              the minimum x-coordinate of each bounding box
          y_min : cudf.Series
              the minimum y-coordinate of each bounding box
          x_max : cudf.Series
              the maximum x-coordinate of each bounding box
          y_max : cudf.Series
              the maximum y-coordinate of each bounding box
  
      Examples
      --------
      Compute the minimum bounding boxes of derived trajectories
  
      >>> objects, traj_offsets = cuspatial.derive_trajectories(
              [0, 0, 1, 1],  # object_id
              [0, 1, 2, 3],  # x
              [0, 0, 1, 1],  # y
              [0, 10, 0, 10] # timestamp
          )
      >>> traj_bounding_boxes = cuspatial.trajectory_bounding_boxes(
              len(traj_offsets),
              objects['object_id'],
              objects['x'],
              objects['y']
          )
      >>> print(traj_bounding_boxes)
          x_min   y_min   x_max   y_max
      0     0.0     0.0     2.0     2.0
      1     1.0     1.0     3.0     3.0
      """
  
      if len(points) > 0 and not contains_only_points(points):
          raise ValueError(
              "`points` must only contain point geometries."
          )
  
      object_ids = as_column(object_ids, dtype=np.int32)
      xs = as_column(points.points.x)
      ys = as_column(points.points.y)
      return DataFrame._from_data(
          *cpp_trajectory_bounding_boxes(
              num_trajectories, object_ids, xs, ys
          )
      )
  
file_path: cuspatial/python/cuspatial/cuspatial/core/trajectory.py
imports: import numpy
  from cudf import DataFrame, Series
  from cudf.core.column import as_column
  from cuspatial import GeoSeries
  from cuspatial._lib.trajectory import derive_trajectories, trajectory_bounding_boxes, trajectory_distances_and_speeds
  from cuspatial.utils.column_utils import contains_only_points, normalize_timestamp_column
label_desc: Use image node_id 2 for calling a global function with example usage: trajectory_bounding_boxes(num_trajectories, object_ids, points) and returns: DataFrame