slv.measurements.mobile.receptors.load_trax_network_points#

slv.measurements.mobile.receptors.load_trax_network_points(spacing=50, segment_spacing=2000, meters=False, rebuild=False)[source]#

The 50-m network points with their 2-km segment membership.

Both point sets come from load_trax_points() (lair.geo.points_along_line on the UTA line network, so shared track is one row of points and every pair is at least spacing apart; each point is tagged with the letters of the lines within spacing/2 of it). Columns: point (stable integer id), lines (e.g. "BGR" on the downtown trunk), segment (index of the nearest staged 2-km point), segment_dist_m, and s_R/s_G/s_B/s_S — distance along each line the point sits on (metres from that line’s start, NaN off it), which is what makes “how much of the segment did this crossing cover” measurable along the track instead of as a straight line (find_segment_crossings()). Cached as $SLV_USER_DATA_DIR/trax/points_<spacing>m_network.geojson (UTM 12 N); returned in lon/lat unless meters=True. Generating the 50-m points the first time takes ~1 h (pure-Python graph walk over a 5-m graph of the network; 1,397 points, 2026-09-17) — do it on a compute node; afterwards load_trax_points reads its own cache in seconds.

Return type:

GeoDataFrame