{
  "version": "engineering101-v1",
  "native_grid_shape": [
    52,
    368,
    520
  ],
  "horizontal_cell_m": 500,
  "z_edges_AGL_m": [
    0.0,
    6.25,
    12.5,
    18.75,
    25.0,
    31.25,
    37.5,
    43.75,
    50.0,
    62.5,
    75.0,
    87.5,
    100.0,
    112.5,
    125.0,
    137.5,
    150.0,
    162.5,
    175.0,
    187.5,
    200.0,
    225.0,
    250.0,
    275.0,
    300.0,
    350.0,
    400.0,
    450.0,
    500.0,
    562.5,
    625.0,
    687.5,
    750.0,
    812.5,
    875.0,
    937.5,
    1000.0,
    1125.0,
    1250.0,
    1375.0,
    1500.0,
    1625.0,
    1750.0,
    1875.0,
    2000.0,
    2125.0,
    2250.0,
    2375.0,
    2500.0,
    2625.0,
    2750.0,
    2875.0,
    3000.0
  ],
  "native_hourly_definition": "State immediately after hourly surface exchange and release. Sparse kg per native cell; ug/m3 = kg*1e9/(500*500*layer_thickness).",
  "daily_definition": "24 hourly endpoints averaged with mass/24 per particle, matching the frozen CPU baseline.",
  "trajectory_policy": "Deterministic diagnostic subsample: stable ID modulo nper == 0. One primary per source/event; secondary IDs use same systematic rule. Not a full-count trajectory data set or a random/unbiased estimate.",
  "trajectory_expansion_factor": 8192,
  "mass_accounting": "Native fields contain all particles including the near region. Near queries and trajectories are views, never added to regional mass. Each segment occurs once with a 4-bit overlapping-envelope mask.",
  "near_envelope": "Horizontal radius 500 m around each outlet, all modeled heights. Actual accepted reflected pieces including birth-to-first-step and lateral exits.",
  "segment_columns": [
    "x0_m",
    "y0_m",
    "z0_orthometric_m",
    "x1_m",
    "y1_m",
    "z1_orthometric_m",
    "actual_piece_mass_kg",
    "duration_s",
    "within_step_start_s",
    "outlet_envelope_bitmask",
    "step_start_s",
    "stable_particle_id",
    "source_or_secondary_origin",
    "age_at_step_start_s",
    "actual_step_final_mass_kg",
    "actual_step_initial_mass_kg"
  ],
  "loss_timing": "Contact uptake at piece endpoints; wet/chemical loss at step end. Terrain epsilon offsets have zero duration.",
  "residence_definition": "Accepted-path intersection with outside-stack cylinder radius max(5 m,2*diameter), outlet orthometric height +/-5 m. This model does not resolve an in-pipe jet or in-pipe residence. Returning entries include aged parcels crossing from outside, not just newborn particles.",
  "residence_columns": [
    "outlet_index",
    "stable_particle_id",
    "origin",
    "entry_elapsed_s",
    "residence_s",
    "actual_piece_mass_kg",
    "actual_mass_time_kg_s",
    "entry_age_s",
    "entry_at_birth",
    "aged_entry_from_outside"
  ],
  "outlet_local_xyz_orthometric_m": [
    [
      237072.61659810907,
      134020.5948306591,
      26.643596707748394
    ],
    [
      237037.27749036293,
      133937.51768109284,
      56.59352729550348
    ],
    [
      237106.1627254098,
      134480.1938190336,
      87.29896924788244
    ],
    [
      236167.8544763135,
      134153.84045206505,
      71.71025748369624
    ]
  ],
  "outlet_ids": [
    "LS12",
    "LS13",
    "LS15",
    "LJ01"
  ],
  "shared_geometry": "../shared_geometry.npz",
  "daily_surface_pools": "daily_surface_pools/day_DD_end.npz; actual day-end states, not daily averages (provided for benchmark and production)",
  "temporal_support": "Regional fields are full-count hourly endpoint mass. Collar residence is selected-path time support within each 30 s step. They are distinct diagnostics; a visual crossfade does not form a conservative concentration field. Display expansion factor is not actual parcel mass."
}