NovaMobility Lab|Salt Lake City Complete Trip Data

Public-sample guide

Documentation

Use the sample safely, inspect its verified structure, and move from file discovery to reproducible analysis.

Getting started

Five-step quick start

Download the public sample
Review the data dictionary
Open the example notebook
Inspect trip and segment records
Cite the dataset and paper

Verified package

File Structure

The current public sample archive contains the following files.

complete_trip_saltlake_2020_1day_Sample_v1.0/
├── data/
│   └── part-001-of-001.parquet
├── data_dictionary.csv
└── Getting_Started.ipynb
Companion network package. network.zip is provided separately and contains auto, transit, and walk/bike node and link tables used to resolve route_taken node IDs.

Verified fields

Data Dictionary

The release includes a field-level dictionary. This compact preview uses descriptions verified from that file.

FieldTypeDescription
linked_trip_idstringIdentifier for a reconstructed linked journey containing one or more trip segments.
trip_idstringIdentifier for a reconstructed single-mode trip segment.
segment_orderintegerSequential position of a segment within a linked journey.
travel_modestringInferred segment-level mode: car, walk/bike, bus, or rail.
trip_durationfloatReconstructed segment duration in minutes.
network_distancefloatReconstructed network distance in miles.
trip_weightfloatPopulation expansion weight for eligible records.

Hands-on analysis

Example Analysis Notebook

The example notebook demonstrates how to locate and load the public sample, inspect complete trips and travel segments, run quality checks, summarize travel modes, link related records, and use the companion network tables to visualize a selected route without exposing unnecessary identifiers.

Place network.zip beside the extracted release directory to enable route visualization. Browser execution will use JupyterLite when configured and is intended for a smaller tutorial subset, not large-scale processing.

Discover and load release files

from pathlib import Path
import pandas as pd

data_dir = Path("data")
csv_files = list(data_dir.glob("*.csv"))
parquet_files = list(data_dir.glob("*.parquet"))

def load_table(path: Path) -> pd.DataFrame:
    if path.suffix.lower() == ".csv":
        return pd.read_csv(path)
    if path.suffix.lower() == ".parquet":
        return pd.read_parquet(path)
    raise ValueError(f"Unsupported: {path.suffix}")

Inspect safely

files = csv_files or parquet_files
if not files:
    raise FileNotFoundError(
        "Download and extract the public sample first."
    )

table = load_table(files[0])
print(table.shape)
print(table.columns.tolist())
table.head()

Review missing values

missing_summary = (
    table.isna()
    .sum()
    .sort_values(ascending=False)
    .rename("missing_values")
)
missing_summary.head(20)

Discover likely identifiers

candidate_trip_id_columns = [
    c for c in table.columns
    if "trip" in c.lower() and "id" in c.lower()
]

candidate_coordinate_columns = [
    c for c in table.columns
    if any(term in c.lower() for term in
           ["lat", "lon", "lng", "latitude", "longitude"])
]

Data processing overview

Six broad stages

Mobility observations
Quality control
Trip segmentation
Mode inference
Complete-trip linkage
Privacy-aware release

Interpretation

Known Limitations

  • The public sample covers one undisclosed day and may not represent all seasonal or long-term travel patterns.
  • Spatial and temporal information may be aggregated or generalized for privacy.
  • Travel modes are inferred and may contain classification uncertainty.
  • Device-based mobility observations may not represent the full population.
  • Some complete trips may contain multiple travel modes.
  • The public sample is intended for evaluation and reproducibility support, not as a replacement for the controlled full dataset.

Common questions

FAQ

Why is the exact sample date not disclosed?

The date and month are withheld and temporal fields are generalized to reduce disclosure risk while preserving research utility.

Is the full dataset publicly downloadable?

No. Full-dataset access is controlled, reviewed, and may require a Data Use Agreement.

Can the public sample be used in a publication?

It is intended to support research evaluation and reproducibility. Check the final release license when configured and cite the dataset and paper.

Why can mode percentages exceed 100% in the explorer?

The explorer reports percentages of trips containing each mode. A complete trip may contain multiple modes, so those percentages do not necessarily sum to 100%.

Does the notebook run directly in the browser?

The notebook can be viewed or downloaded immediately. Browser-based execution will be available through JupyterLite when configured. JupyterLite runs Python in the browser and is intended for the smaller tutorial subset, not large-scale processing.

How should the dataset be cited?

Use the current BibTeX on the Paper & Citation page and check for updates if a journal DOI becomes available.

Who should I contact with access questions?

Contact the research team. The project email will appear here when configured.