================================================================================
TIMELINE JSON STRUCTURE ANALYSIS
================================================================================

File: /Users/azeem/repos/personal-tracker/data/Timeline.json
Analysis Date: 2025-08-31 16:35:18

ROOT LEVEL STRUCTURE:
----------------------------------------
semanticSegments: list with 43295 items
rawSignals: list with 9549 items
userLocationProfile: dict with 3 keys

================================================================================
DETAILED STRUCTURE:
================================================================================

 (dict) - 3 keys:
  semanticSegments (list) - 43295 items:
    Sample item structure:
    semanticSegments[0] (dict) - 3 keys:
      startTime: str = 2013-12-31T22:00:00.000+00:00
      endTime: str = 2014-01-01T00:00:00.000+00:00
      semanticSegments[0].timelinePath (list) - 1 items:
        Sample item structure:
        semanticSegments[0].timelinePath[0] (dict) - 2 keys:
          point: str = 51.6659027°, -0.4058773°
          time: str = 2013-12-31T22:29:00.000+00:00
    ... and 43294 more items
  rawSignals (list) - 9549 items:
    Sample item structure:
    rawSignals[0] (dict) - 1 keys:
      rawSignals[0].position (dict) - 6 keys:
        LatLng: str = 51.5151973°, -0.1312666°
        accuracyMeters: int = 100
        altitudeMeters: float = 86.30000305175781
        source: str = UNKNOWN
        timestamp: str = 2025-08-01T16:09:32.000+01:00
        speedMetersPerSecond: float = 0.0
    ... and 9548 more items
  userLocationProfile (dict) - 3 keys:
    userLocationProfile.frequentPlaces (list) - 10 items:
      Sample item structure:
      userLocationProfile.frequentPlaces[0] (dict) - 3 keys:
        placeId: str = ChIJAAAAAAAAAAARjhi7lioZa2Y
        placeLocation: str = 51.6658192°, -0.4056977°
        label: str = HOME
      ... and 9 more items
    userLocationProfile.frequentTrips (list) - 9 items:
      Sample item structure:
      userLocationProfile.frequentTrips[0] (dict) - 7 keys:
        userLocationProfile.frequentTrips[0].waypointIds (list) - 4 items:
          Sample item structure:
          ... (max depth reached)
          ... and 3 more items
        userLocationProfile.frequentTrips[0].modeDistribution (list) - 4 items:
          Sample item structure:
          ... (max depth reached)
          ... and 3 more items
        startTimeMinutes: int = 504
        endTimeMinutes: int = 551
        durationMinutes: int = 47
        confidence: float = 0.0
        commuteDirection: str = COMMUTE_DIRECTION_HOME_TO_WORK
      ... and 8 more items
    userLocationProfile.persona (dict) - 1 keys:
      userLocationProfile.persona.travelModeAffinities (list) - 7 items:
        Sample item structure:
        userLocationProfile.persona.travelModeAffinities[0] (dict) - 2 keys:
          mode: str = WALKING
          affinity: float = 0.4837758243083954
        ... and 6 more items

================================================================================
SEMANTIC SEGMENTS ANALYSIS:
================================================================================

Total semantic segments: 43295

Segments with visits: 14890
Segments with timeline paths: 13322

SAMPLE VISIT STRUCTURE:
----------------------------------------
sample_visit (dict) - 5 keys:
  startTime: str = 2013-12-31T22:29:21.000+00:00
  endTime: str = 2014-01-01T17:10:30.000+00:00
  startTimeTimezoneUtcOffsetMinutes: int = 0
  endTimeTimezoneUtcOffsetMinutes: int = 0
  sample_visit.visit (dict) - 3 keys:
    hierarchyLevel: int = 0
    probability: float = 0.6399999856948853
    sample_visit.visit.topCandidate (dict) - 4 keys:
      placeId: str = ChIJyaJWtZVqdkgRZHVIi0HKLto
      semanticType: str = HOME
      probability: float = 0.9986714720726013
      sample_visit.visit.topCandidate.placeLocation (dict) - 1 keys:
        latLng: str = 51.6659399°, -0.4059464°

SAMPLE TIMELINE PATH STRUCTURE:
----------------------------------------
sample_timelinePath (dict) - 3 keys:
  startTime: str = 2013-12-31T22:00:00.000+00:00
  endTime: str = 2014-01-01T00:00:00.000+00:00
  sample_timelinePath.timelinePath (list) - 1 items:
    Sample item structure:
    sample_timelinePath.timelinePath[0] (dict) - 2 keys:
      point: str = 51.6659027°, -0.4058773°
      time: str = 2013-12-31T22:29:00.000+00:00
