Skip to contents

This function processes GPS track data into a spatial grid summary, calculating time spent and other metrics for each grid cell. The grid size can be specified to analyze spatial patterns at different scales.

Usage

preprocess_track_data(data, grid_size = 500)

Arguments

data

A data frame containing GPS track data with columns:

  • Trip: Unique trip identifier

  • Time: Timestamp of the GPS point

  • Lat: Latitude

  • Lng: Longitude

  • Speed (M/S): Speed in meters per second

  • Range (Meters): Range in meters

  • Heading: Heading in degrees

grid_size

Numeric. Size of grid cells in meters. Must be one of:

  • 100: ~100m grid cells

  • 250: ~250m grid cells

  • 500: ~500m grid cells (default)

  • 1000: ~1km grid cells

Value

A tibble with the following columns:

  • Trip: Trip identifier

  • lat_grid: Latitude of grid cell center

  • lng_grid: Longitude of grid cell center

  • time_spent_mins: Total time spent in grid cell in minutes

  • mean_speed: Average speed in grid cell (M/S)

  • mean_range: Average range in grid cell (Meters)

  • first_seen: First timestamp in grid cell

  • last_seen: Last timestamp in grid cell

  • n_points: Number of GPS points in grid cell

Details

The function creates a grid by rounding coordinates based on the specified grid size. Grid sizes are approximate due to the conversion from meters to degrees, with calculations based on 1 degree ≈ 111km at the equator. Time spent is calculated using the time differences between consecutive points.

Examples

if (FALSE) { # \dontrun{
# Process tracks with 500m grid (default)
result_500m <- preprocess_track_data(tracks_data)

# Use 100m grid for finer resolution
result_100m <- preprocess_track_data(tracks_data, grid_size = 100)

# Use 1km grid for broader patterns
result_1km <- preprocess_track_data(tracks_data, grid_size = 1000)
} # }