{
  "scenario_id": "snap50_high_tailwater",
  "label": "S4 50 m local snap, high tailwater",
  "rainfall_id": "july2025_133mm_12h",
  "rainfall_label": "July 2025 reported event, 133 mm / 12 h",
  "run_id": "july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps",
  "status": "WARN",
  "created_at_utc": "2026-05-06T02:37:46+00:00",
  "reproducibility_ledger": {
    "scenario": {
      "scenario_id": "snap50_high_tailwater",
      "label": "S4 50 m local snap, high tailwater",
      "run_id": "july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps",
      "rainfall_id": "july2025_133mm_12h",
      "rainfall_label": "July 2025 reported event, 133 mm / 12 h",
      "scenario_definition": "80% native drainage, 40% non-desilted local components, 20% initial fill, high tailwater, terrain-or-0.05% trunk invert slope prior, and 50 m local-drain snapping to nearby main legs; pumps are off.",
      "pump_state": "off",
      "drain_state": "80% native, 40% local, 50 m snap, high tailwater"
    },
    "environment": {
      "created_at_utc": "2026-05-06T02:37:45+00:00",
      "hostname": "Udits-Mac-Studio-6.local",
      "platform": "macOS-26.2-arm64-arm-64bit-Mach-O",
      "system": "Darwin",
      "machine": "arm64",
      "python": "3.14.3 (main, Feb  3 2026, 15:32:20) [Clang 17.0.0 (clang-1700.6.3.2)]",
      "python_executable": "<SOURCE_WORKSPACE>/flood_model/.venv/bin/python",
      "cwd": "<SOURCE_WORKSPACE>/flood_model",
      "repo_root": "<SOURCE_WORKSPACE>/flood_model",
      "project_root": "<SOURCE_WORKSPACE>",
      "git": {
        "available": false,
        "reason": "CalledProcessError: Command '['git', 'rev-parse', '--show-toplevel']' returned non-zero exit status 128."
      },
      "preflight_report": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/gurugram_dss_preflight_with_wheelhouse_20260506.json",
        "exists": true,
        "size_bytes": 2833,
        "modified_utc": "2026-05-06T02:20:57.034598+00:00",
        "sha256": "3a48668da5e1973f8275c653fd07ee8f5bc42459af330936e09098c158597c2a",
        "hash_mode": "full"
      },
      "offline_wheelhouse_manifest": {
        "path": "<SOURCE_WORKSPACE>/offline_wheelhouse/darwin-arm64-cp314/WHEELHOUSE_MANIFEST.json",
        "exists": true,
        "size_bytes": 2466,
        "modified_utc": "2026-05-06T02:20:07.884157+00:00",
        "sha256": "e7ffc2680c6b1edcace582d2e517cefa8b1c72df3ce01cae5807bd049ab11ee6",
        "hash_mode": "full"
      }
    },
    "code_files": {
      "solver": {
        "path": "<SOURCE_WORKSPACE>/flood_model/scripts/run_gurugram_triangular_alpha.py",
        "exists": true,
        "size_bytes": 284002,
        "modified_utc": "2026-05-05T14:48:30.262754+00:00",
        "sha256": "961a1672647ee8ed12020a9b992d5aa518f6c63fe4e888d976016282e39147a0",
        "hash_mode": "full"
      },
      "scenario_matrix": {
        "path": "<SOURCE_WORKSPACE>/flood_model/scripts/run_mcg_scenario_matrix.py",
        "exists": true,
        "size_bytes": 39824,
        "modified_utc": "2026-05-05T17:20:10.812701+00:00",
        "sha256": "8808b27279f18507a4b093b61b5fae98a0e245dea5e0e2426d4af185184244e1",
        "hash_mode": "full"
      },
      "dss_builder": {
        "path": "<SOURCE_WORKSPACE>/flood_model/scripts/build_mcg_final_review_desiltation_dss.py",
        "exists": true,
        "size_bytes": 196614,
        "modified_utc": "2026-05-06T02:32:35.618140+00:00",
        "sha256": "6af4fe8f59a0c9a1a1e28614c6e17e8433e39bf315703e2b98d75c5e641bf997",
        "hash_mode": "full"
      },
      "qa_builder": {
        "path": "<SOURCE_WORKSPACE>/flood_model/scripts/build_gurugram_professional_qa.py",
        "exists": true,
        "size_bytes": 50232,
        "modified_utc": "2026-05-06T02:31:40.991060+00:00",
        "sha256": "693fbe77880b018856a790c39c1eb2a3816af1bec8465fc5e73861eee0bfce15",
        "hash_mode": "full"
      }
    },
    "source_files": {
      "run_npz": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/gpu_triangular/gpu_triangular_alpha_outputs.npz",
        "exists": true,
        "size_bytes": 168240098,
        "modified_utc": "2026-05-05T15:10:21.120726+00:00",
        "sha256_sample": "aae15397bc640378dbfa40625e9779f1ff853c8d4f27f03d94158ebf3c81c533",
        "hash_mode": "first_last_8388608_bytes"
      },
      "report_json": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/gurugram_triangular_alpha_report.json",
        "exists": true,
        "size_bytes": 53861,
        "modified_utc": "2026-05-05T15:10:23.643878+00:00",
        "sha256": "2f5a08f1c74834a18ed668bb56da3ab95c04434ad8cb415a294a160398e283de",
        "hash_mode": "full"
      },
      "batch_json": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps/adaptive_gpu_batch_summary.json",
        "exists": true,
        "size_bytes": 40657,
        "modified_utc": "2026-05-05T15:10:12.752205+00:00",
        "sha256": "321c4399a99bf605fed0baedd15d1aa00abb7046e601bd2c773d8231865b5995",
        "hash_mode": "full"
      },
      "merged_manifest": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/merged_citywide_manifest.json",
        "exists": true,
        "size_bytes": 4909,
        "modified_utc": "2026-05-05T15:10:23.644283+00:00",
        "sha256": "844b90096557e1050415fd593b379544641b1ba0d9431fa0c0c21db76cb8830c",
        "hash_mode": "full"
      },
      "dss_html": {
        "path": "<SOURCE_WORKSPACE>/final_review/MCG_Flood_DSS_final_review.html",
        "exists": true,
        "size_bytes": 27974484,
        "modified_utc": "2026-05-06T02:33:34.509317+00:00",
        "sha256": "5cdebd9035fd4b845f86c742329bb5193d373858962d2acdb5433588b18e74a1",
        "hash_mode": "full"
      },
      "hyetograph_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/inputs/gurugram_full_city_physics_from_flood_agents_20260504/mac_office/floodcode/print_maps/ward22_detailed_modeling/galleria_wards_21_22_23_24_adaptive_grid/anuga_setup/forcing/decision_hyetographs/july2025_reported_133mm_12h_hourly.csv",
        "exists": true,
        "size_bytes": 721,
        "modified_utc": "2026-05-02T17:30:17+00:00",
        "sha256": "356427769ee7ff21c5fe39c8d4ce558f19fa6dbb2ac0dbebcf7813f8187958e4",
        "hash_mode": "full"
      },
      "surface_inlets_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_adaptive_bcr_fabdem5m_min25m2_supertile6/citywide_july2025_reported_133mm_12h_hourly_citywide_partial70/exchange_tables/surface_inlet_exchange_table.csv",
        "exists": true,
        "size_bytes": 1781122,
        "modified_utc": "2026-05-03T15:58:20+00:00",
        "sha256": "228f009772dc41ba9a45cba60ceca332077d714ec06a5f3ef4bb9976078100e3",
        "hash_mode": "full"
      },
      "pump_inventory_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_actual_pumps_20260504/mcg_actual_pump_inventory_normalized.csv",
        "exists": true,
        "size_bytes": 25359,
        "modified_utc": "2026-05-04T20:51:33.305209+00:00",
        "sha256": "67f5c5e970ce72f3fae94547aa88bc2706e6a59fd469ef71d68512660a6dab6d",
        "hash_mode": "full"
      },
      "pump_connections_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_pump_drainage_connections_20260505/pump_to_drainage_connections.csv",
        "exists": true,
        "size_bytes": 17508,
        "modified_utc": "2026-05-05T03:14:01.111149+00:00",
        "sha256": "99bdec889046d69b609e491c2af03f0af81c9422678a16f74e0240c6a56efe0a",
        "hash_mode": "full"
      },
      "desilted_segments_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_desilted_networks_20260505/desilted_network_segments.csv",
        "exists": true,
        "size_bytes": 22782683,
        "modified_utc": "2026-05-05T03:07:43.332655+00:00",
        "sha256": "d12f9affeb48a6f35ce6b649d6127e671dbd4f429141285dd0a3c01875d38ab2",
        "hash_mode": "full"
      },
      "reported_hotspots_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/refinement_points/full_city_155_plus_all_tile1_hotspots_20260504.csv",
        "exists": true,
        "size_bytes": 49927,
        "modified_utc": "2026-05-04T14:35:44.205807+00:00",
        "sha256": "687c6fb02ead778c9e9564c3933a451b95cc9b124c024bb51781470779f858ac",
        "hash_mode": "full"
      },
      "pump_receptors_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_pump_recharge_candidates_20260505/pump_output_receptor_candidates.csv",
        "exists": true,
        "size_bytes": 191357,
        "modified_utc": "2026-05-05T09:45:15.550914+00:00",
        "sha256": "3d1ee88a3527066f6c5a1316b8ca6ea1d4408fbb6bbc624a854f95b6c9007e05",
        "hash_mode": "full"
      },
      "recharge_candidates_csv": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_pump_recharge_candidates_20260505/groundwater_recharge_screen_candidates.csv",
        "exists": true,
        "size_bytes": 919350,
        "modified_utc": "2026-05-05T09:45:15.567045+00:00",
        "sha256": "47bc4adf193233d3417406ca8bdf0d53bdf84babf1b0987c3d0d359aaa6133d2",
        "hash_mode": "full"
      },
      "groundwater_monitor_csv": {
        "path": "<EXTERNAL_SOURCE_WORKSPACE>/Gurugram_narrative/08_citywide_adaptive_final/cgwb_naquim2023_groundwater_monitoring_points.csv",
        "exists": true,
        "size_bytes": 7364,
        "modified_utc": "2026-05-04T18:26:11.466080+00:00",
        "sha256": "35c908ff898d967808d3e68d58baa7860a5bf364d15ad29e54a0c773590ae9c6",
        "hash_mode": "full"
      }
    },
    "run_report_excerpt": {
      "backend_run": {
        "backend": "mlx",
        "completed_requested_duration": true,
        "duration_s": 43200.0,
        "edge_step_updates_per_s": 290544013.9950597,
        "final_node_volume_m3": 313938.3410644531,
        "final_park_volume_m3": 0.0,
        "final_sump_volume_m3": 0.0,
        "final_surface_volume_m3": 15333536.65625,
        "finite_result": true,
        "infiltration_loss_m3": 16298424.171875,
        "initial_drainage_storage_volume_m3": 349475.40954589844,
        "is_gpu": true,
        "mass_residual_ratio": 0.0009241980418117141,
        "max_depth_m": 5.5092926025390625,
        "max_persistence_above_threshold_min": 719.7205810546875,
        "max_velocity_depth_gated_mps": 11.585448265075684,
        "outfall_discharge_m3": 33790.459899902344,
        "overflow_surcharge_m3": 357481.0054321289,
        "park_overflow_m3": 0.0,
        "rainfall_input_m3": 52053756.4375,
        "runtime_s": 587.0841062101535,
        "snapshot_count": 25,
        "step_count": 349089.0,
        "steps_per_s": 594.6149730632285,
        "sump_capture_m3": 0.0,
        "sump_full_bypass_m3": 0.0,
        "sump_pumped_to_drain_m3": 0.0,
        "sump_pumped_to_park_m3": 0.0,
        "surface_capture_m3": 1725583.242980957,
        "surface_surcharge_m3": 1369842.936328888,
        "timestep_max_s": 5.0,
        "timestep_mean_s": 0.7425040605690676,
        "timestep_min_s": 0.004683894621848594,
        "triangle_step_updates_per_s": 183538052.64901656,
        "wet_triangle_count_005m": 458930
      },
      "forcing": {
        "effective_infiltration_mode": "horton",
        "hyetograph_csv": "<SOURCE_WORKSPACE>/flood_model/inputs/gurugram_full_city_physics_from_flood_agents_20260504/mac_office/floodcode/print_maps/ward22_detailed_modeling/galleria_wards_21_22_23_24_adaptive_grid/anuga_setup/forcing/decision_hyetographs/july2025_reported_133mm_12h_hourly.csv",
        "hyetograph_rain_duration_s": 43200.0,
        "hyetograph_total_depth_mm": 133.0,
        "mode": "hyetograph_horton",
        "prepared_excess": null,
        "requested_infiltration_mode": "horton",
        "simulated_duration_s": 43200.0,
        "uniform_rainfall_mmhr": null
      },
      "coupling": {
        "mode": "dynamic_pipe_citywide_main_leg_routing",
        "capacity_reference": "nominal",
        "drain_capacity_factor": 0.8,
        "local_drain_capacity_factor": 0.4,
        "tailwater_case": "high",
        "trunk_invert_slope_mode": "terrain_or_design_low_0p05pct",
        "local_drain_main_leg_snap_distance_m": 50.0,
        "mapped_inlet_count": 2210,
        "network_links": 7074,
        "node_count": 7895,
        "enabled_outfall_count": 4,
        "virtual_outfalls_used": false,
        "native_desilted_drainage": {
          "capacity_factor_note": "Native desilted storm/sewer links use drain_capacity_factor; local_drain_capacity_factor applies only to non-desilted local drains.",
          "capacity_reference": "nominal",
          "drain_capacity_factor": 0.8,
          "included_segment_count": 6433,
          "included_sewer_segment_count": 4033,
          "included_storm_segment_count": 2400,
          "link_capacity_m3ps_sum": 5073.266399999991,
          "local_drain_capacity_factor": null,
          "manhole_inventory_note": "No full manhole point inventory was found in the MCG desilted KMZ-derived segment table; native nodes are derived from snapped segment endpoints and main-leg tie candidates.",
          "mode": "pipe_links",
          "native_link_count": 6433,
          "native_node_count_delta": 6295,
          "native_surface_inlet_count": 0,
          "native_tie_link_count": 118,
          "segment_table": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_desilted_networks_20260505/desilted_network_segments.csv",
          "skipped_segment_count": 0,
          "skipped_tie_count": 0,
          "storage_capacity_m3_sum": 83295.40484060797,
          "surface_inlet_capacity_m3ps_sum": 0.0,
          "surface_inlet_fraction": 0.05,
          "surface_inlet_network_types": [
            "storm"
          ],
          "surface_inlet_note": "Surface intake along desilted lines is disabled unless mode is pipe_links_and_surface_inlets; without verified manhole/inlet inventory, pipe_links is the hydraulic-safe default.",
          "tie_distance_m": 100.0,
          "tie_rule": "Native desilted endpoints are provisionally tied to the nearest prepared main-leg node when nearest_main_leg_distance_m is within tie_distance_m. This is a sensitivity prior until as-built storm-network connectivity is supplied.",
          "tile_bounds_utm43n": [
            691866.904,
            3135488.924,
            706945.348,
            3147567.917
          ]
        },
        "random_choking": {
          "choked_link_count": 0,
          "eligible_link_count": 7074,
          "mode": "off",
          "requested_fraction": 0.0,
          "residual_capacity_factor": 0.1,
          "seed": 20260505
        },
        "hotspot_choking": {
          "apply_to": "inlets_and_links",
          "buffer_m": 100.0,
          "mode": "off",
          "points_csv": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/refinement_points/full_city_155_plus_all_tile1_hotspots_20260504.csv",
          "residual_capacity_factor": 0.2
        }
      },
      "mesh": {
        "active_triangle_count": 1511773,
        "bcr_building_fraction_mean": 0.3080289661884308,
        "bcr_open_fraction_mean": 0.700205385684967,
        "bed_mode": "terrain",
        "boundary_mode": "outflow",
        "building_flow_mode": "bcr_parameter",
        "building_parameterization": {
          "building_fraction_max": 1.0,
          "building_fraction_mean": 0.30351969599723816,
          "building_fraction_min": 0.0,
          "covered_building_fraction_mean": 0.6537270545959473,
          "covered_triangle_count": 233889,
          "description": "Fast building-coverage-ratio treatment: building-covered triangles remain on the terrain bed as hydraulically active parameter cells; roof rainfall redistribution is inherited from the copied rainfall_multiplier field; Horton infiltration is multiplied by open fraction.",
          "min_open_fraction": 0.05,
          "mode": "bcr_parameter",
          "open_fraction_max": 1.0,
          "open_fraction_mean": 0.7039326429367065,
          "open_fraction_min": 0.05000000074505806
        },
        "edge_count": 2678549.0,
        "triangle_count": 1696257
      },
      "batch_aggregate": {
        "active_triangle_count_sum": 1038482.0,
        "cfl_evaluation_count_sum": 10911.0,
        "completed_or_skipped_tile_count": 6,
        "edge_count_sum": 2678549.0,
        "edge_step_updates_per_s_weighted": 290544013.9950597,
        "final_node_volume_m3_sum": 313938.3410644531,
        "final_park_volume_m3_sum": 0.0,
        "final_sump_volume_m3_sum": 0.0,
        "final_surface_volume_m3_sum": 15333536.65625,
        "finite_tile_count": 6,
        "hotspot_choked_inlet_count_sum": 0.0,
        "hotspot_choked_inlet_node_count_sum": 0.0,
        "hotspot_choked_link_count_sum": 0.0,
        "hotspot_choked_selected_inlet_capture_m3ps_after_sum": 0.0,
        "hotspot_choked_selected_inlet_capture_m3ps_before_sum": 0.0,
        "hotspot_choked_selected_link_capacity_m3ps_after_sum": 0.0,
        "hotspot_choked_selected_link_capacity_m3ps_before_sum": 0.0,
        "hotspot_choked_total_inlet_capture_m3ps_after_sum": 0.0,
        "hotspot_choked_total_inlet_capture_m3ps_before_sum": 0.0,
        "hotspot_choked_total_link_capacity_m3ps_after_sum": 0.0,
        "hotspot_choked_total_link_capacity_m3ps_before_sum": 0.0,
        "hotspot_choking_hotspot_point_count_sum": 0.0,
        "inferred_local_to_main_leg_link_capacity_m3ps_sum_sum": 110.55760000000001,
        "inferred_local_to_main_leg_link_count_sum": 35.0,
        "infiltration_loss_m3_sum": 16298424.171875,
        "initial_drainage_storage_volume_m3_sum": 349475.40954589844,
        "mapped_inlet_count_sum": 7322.0,
        "mass_residual_ratio_max": 0.0009241980418117141,
        "max_depth_m_max": 5.5092926025390625,
        "max_velocity_depth_gated_mps_max": 11.585448265075684,
        "mesh_quality_deactivated_area_m2_sum": 1708487.4359703064,
        "mesh_quality_deactivated_triangle_count_sum": 50379.0,
        "native_desilted_included_segment_count_sum": 53990.0,
        "native_desilted_link_capacity_m3ps_sum_sum": 31141.6839999992,
        "native_desilted_native_link_count_sum": 53990.0,
        "native_desilted_node_count_delta_sum": 51589.0,
        "native_desilted_surface_inlet_count_sum": 0.0,
        "native_desilted_tie_link_count_sum": 3040.0,
        "network_links_sum": 60149.0,
        "node_count_sum": 58237.0,
        "outfall_discharge_m3_sum": 33790.459899902344,
        "overflow_surcharge_m3_sum": 357481.0054321289,
        "park_overflow_m3_sum": 0.0,
        "rainfall_input_m3_sum": 52053756.4375,
        "random_choked_link_capacity_m3ps_sum_after_sum": 0.0,
        "random_choked_link_capacity_m3ps_sum_before_sum": 0.0,
        "random_choked_link_count_sum": 0.0,
        "random_choked_total_link_capacity_m3ps_after_sum": 0.0,
        "random_choked_total_link_capacity_m3ps_before_sum": 0.0,
        "runtime_s_sum": 587.0841062101535,
        "snapshot_count_sum": 150.0,
        "step_count_sum": 349089.0,
        "steps_per_s_weighted": 594.6149730632285,
        "sump_capture_m3_sum": 0.0,
        "sump_full_bypass_m3_sum": 0.0,
        "sump_pumped_to_drain_m3_sum": 0.0,
        "sump_pumped_to_park_m3_sum": 0.0,
        "surface_capture_m3_sum": 1725583.242980957,
        "surface_surcharge_m3_sum": 1369842.936328888,
        "timestep_max_s_max": 5.0,
        "timestep_mean_s_weighted": 0.7425040605690676,
        "timestep_min_s_min": 0.004683894621848594,
        "triangle_count_sum": 1696257.0,
        "triangle_step_updates_per_s_weighted": 183538052.64901656,
        "wet_triangle_count_005m_sum": 187190.0
      },
      "merged_manifest_counts": {
        "tile_count": 6,
        "triangle_count": 1696257,
        "node_count": 943219
      }
    }
  },
  "input_validation": {
    "status": "OK",
    "issues": [
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "batch_dir",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "merged_dir",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "run_npz",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/gpu_triangular/gpu_triangular_alpha_outputs.npz"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "report_json",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/gurugram_triangular_alpha_report.json"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "batch_json",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps/adaptive_gpu_batch_summary.json"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "merged_manifest",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/merged_citywide_manifest.json"
      },
      {
        "status": "OK",
        "area": "scenario_paths",
        "check": "dss_html",
        "detail": "Found <SOURCE_WORKSPACE>/final_review/MCG_Flood_DSS_final_review.html"
      },
      {
        "status": "OK",
        "area": "hyetograph",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/inputs/gurugram_full_city_physics_from_flood_agents_20260504/mac_office/floodcode/print_maps/ward22_detailed_modeling/galleria_wards_21_22_23_24_adaptive_grid/anuga_setup/forcing/decision_hyetographs/july2025_reported_133mm_12h_hourly.csv"
      },
      {
        "status": "OK",
        "area": "hyetograph",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "hyetograph",
        "check": "rows",
        "detail": "12 rows."
      }
    ],
    "hyetograph": {
      "path": "<SOURCE_WORKSPACE>/flood_model/inputs/gurugram_full_city_physics_from_flood_agents_20260504/mac_office/floodcode/print_maps/ward22_detailed_modeling/galleria_wards_21_22_23_24_adaptive_grid/anuga_setup/forcing/decision_hyetographs/july2025_reported_133mm_12h_hourly.csv",
      "rows": 12,
      "duration_min": 720.0,
      "total_depth_mm": 133.0,
      "peak_intensity_mmhr": 72.95833333333333
    }
  },
  "hydraulic_qa": {
    "status": "WARN",
    "issues": [
      {
        "status": "OK",
        "area": "hydraulic",
        "check": "duration",
        "detail": "Run completed requested duration."
      },
      {
        "status": "OK",
        "area": "hydraulic",
        "check": "finite_result",
        "detail": "Solver reported finite result."
      },
      {
        "status": "OK",
        "area": "hydraulic",
        "check": "finite_tiles",
        "detail": "6/6 tiles finite."
      },
      {
        "status": "OK",
        "area": "hydraulic",
        "check": "mass_balance",
        "detail": "Mass residual ratio 9.242e-04."
      },
      {
        "status": "WARN",
        "area": "hydraulic",
        "check": "timestep_min",
        "detail": "Very small CFL timestep observed: 0.0047 s."
      },
      {
        "status": "INFO",
        "area": "hydraulic",
        "check": "timestep_summary",
        "detail": "Mean timestep 0.743 s; max timestep 5.000 s."
      },
      {
        "status": "WARN",
        "area": "hydraulic",
        "check": "max_depth",
        "detail": "Maximum depth 5.51 m is high; inspect DEM depressions and boundary drainage."
      },
      {
        "status": "WARN",
        "area": "hydraulic",
        "check": "max_velocity",
        "detail": "Maximum depth-gated velocity 11.59 m/s is high; inspect local slopes/channels."
      },
      {
        "status": "OK",
        "area": "hydraulic",
        "check": "persistence",
        "detail": "Max persistence 719.7 min within 720.0 min run."
      },
      {
        "status": "INFO",
        "area": "drainage",
        "check": "outfall_ratio",
        "detail": "Outfall discharge is 0.065% of rainfall input; review tailwater/storage assumptions."
      },
      {
        "status": "OK",
        "area": "drainage",
        "check": "network_active",
        "detail": "7074 links and 2210 mapped inlets active."
      },
      {
        "status": "OK",
        "area": "arrays",
        "check": "required_keys",
        "detail": "All required NPZ keys are present."
      },
      {
        "status": "OK",
        "area": "arrays",
        "check": "final_depth_m_negative",
        "detail": "final_depth_m has no material negative depths."
      },
      {
        "status": "OK",
        "area": "arrays",
        "check": "max_depth_m_negative",
        "detail": "max_depth_m has no material negative depths."
      },
      {
        "status": "OK",
        "area": "arrays",
        "check": "snapshot_times",
        "detail": "25 monotonic snapshot times."
      }
    ],
    "metrics": {
      "duration_s": 43200.0,
      "finite_tiles": 6.0,
      "tile_count": 6.0,
      "mass_residual_ratio": 0.0009241980418117141,
      "timestep_min_s": 0.004683894621848594,
      "timestep_mean_s": 0.7425040605690676,
      "timestep_max_s": 5.0,
      "max_depth_m": 5.5092926025390625,
      "max_velocity_depth_gated_mps": 11.585448265075684,
      "max_persistence_min": 719.7205810546875,
      "volumes_m3": {
        "rainfall_input_m3": 52053756.4375,
        "infiltration_loss_m3": 16298424.171875,
        "surface_capture_m3": 1725583.242980957,
        "surface_surcharge_m3": 1369842.936328888,
        "overflow_surcharge_m3": 357481.0054321289,
        "outfall_discharge_m3": 33790.459899902344,
        "sump_pumped_to_drain_m3": 0.0,
        "initial_drainage_storage_volume_m3": 349475.40954589844
      },
      "runtime_s": 587.0841062101535,
      "wall_s": 626.317236083094,
      "triangle_updates_per_s": 183538052.64901656
    },
    "array_profile": {
      "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_5scenario_final_12h_finest100m2/july2025_133mm_12h_drain080_init020_twhigh_slopeterrain_or_design_low_0p05pct_localsnap050m_without_pumps_merged/gpu_triangular/gpu_triangular_alpha_outputs.npz",
      "exists": true,
      "deep_checks": true,
      "keys": [
        "active_surface_mask",
        "bcr_open_fraction",
        "bed_elevation_m",
        "building_fraction",
        "building_mask",
        "centroids_world",
        "depth_snapshots_m",
        "final_depth_m",
        "final_velocity_depth_gated_mps",
        "final_velocity_mps",
        "max_depth_m",
        "max_velocity_depth_gated_mps",
        "max_velocity_mps",
        "nodes_world",
        "persistence_above_threshold_min",
        "persistence_depth_threshold_m",
        "snapshot_times_s",
        "source_active_surface_mask",
        "triangles",
        "velocity_report_depth_threshold_m",
        "velocity_snapshots_depth_gated_mps",
        "velocity_snapshots_mps"
      ],
      "shapes": {
        "bed_elevation_m": [
          1696257
        ],
        "centroids_world": [
          1696257,
          2
        ],
        "final_depth_m": [
          1696257
        ],
        "max_depth_m": [
          1696257
        ],
        "max_velocity_depth_gated_mps": [
          1696257
        ],
        "nodes_world": [
          943219,
          2
        ],
        "persistence_above_threshold_min": [
          1696257
        ],
        "snapshot_times_s": [
          25
        ],
        "triangles": [
          1696257,
          3
        ]
      },
      "stats": {
        "final_depth_m": {
          "finite_fraction": 1.0,
          "min": -3.637978807091713e-12,
          "max": 5.124665260314941
        },
        "max_depth_m": {
          "finite_fraction": 1.0,
          "min": 0.0,
          "max": 5.5092926025390625
        },
        "max_velocity_depth_gated_mps": {
          "finite_fraction": 1.0,
          "min": 0.0,
          "max": 11.585448265075684
        },
        "persistence_above_threshold_min": {
          "finite_fraction": 1.0,
          "min": 0.0,
          "max": 719.7205810546875
        },
        "bed_elevation_m": {
          "finite_fraction": 1.0,
          "min": 206.50465393066406,
          "max": 340.0943603515625
        }
      }
    }
  },
  "global_input_validation": {
    "status": "WARN",
    "issues": [
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_adaptive_bcr_fabdem5m_min25m2_supertile6/citywide_july2025_reported_133mm_12h_hourly_citywide_partial70/exchange_tables/surface_inlet_exchange_table.csv"
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "rows",
        "detail": "5922 rows."
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "duplicate_inlet_id",
        "detail": "No duplicate inlet_id values."
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "lat_lon",
        "detail": "Latitude/longitude ranges are valid."
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "scenario_local_capacity_m3s",
        "detail": "scenario_local_capacity_m3s values are valid."
      },
      {
        "status": "OK",
        "area": "surface_inlets",
        "check": "rim_level_m",
        "detail": "rim_level_m values are valid."
      },
      {
        "status": "OK",
        "area": "pump_inventory",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_actual_pumps_20260504/mcg_actual_pump_inventory_normalized.csv"
      },
      {
        "status": "OK",
        "area": "pump_inventory",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "pump_inventory",
        "check": "rows",
        "detail": "54 rows."
      },
      {
        "status": "OK",
        "area": "pump_inventory",
        "check": "duplicate_pump_id",
        "detail": "No duplicate pump_id values."
      },
      {
        "status": "WARN",
        "area": "pump_inventory",
        "check": "lat_lon",
        "detail": "3 non-solver-ready pump rows have missing/invalid latitude/longitude."
      },
      {
        "status": "OK",
        "area": "pump_inventory",
        "check": "assigned_capacity_lps",
        "detail": "assigned_capacity_lps values are valid."
      },
      {
        "status": "WARN",
        "area": "pump_inventory",
        "check": "solver_ready",
        "detail": "4 pump records are not solver-ready."
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_pump_drainage_connections_20260505/pump_to_drainage_connections.csv"
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "rows",
        "detail": "50 rows."
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "duplicate_pump_id",
        "detail": "No duplicate pump_id values."
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "pump_capacity_m3s",
        "detail": "pump_capacity_m3s values are valid."
      },
      {
        "status": "OK",
        "area": "pump_connections",
        "check": "connection_distance_m",
        "detail": "connection_distance_m values are valid."
      },
      {
        "status": "WARN",
        "area": "pump_connections",
        "check": "long_connections",
        "detail": "4 pump connections exceed 1000 m."
      },
      {
        "status": "WARN",
        "area": "pump_connections",
        "check": "target_capacity",
        "detail": "2 targets have pump utilization above 100%."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_desilted_networks_20260505/desilted_network_segments.csv"
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "rows",
        "detail": "38016 rows."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "duplicate_segment_id",
        "detail": "No duplicate segment_id values."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "length_m",
        "detail": "length_m values are valid."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "hydraulic_slope_used",
        "detail": "hydraulic_slope_used values are valid."
      },
      {
        "status": "OK",
        "area": "desilted_segments",
        "check": "effective_capacity_90pct_m3s",
        "detail": "effective_capacity_90pct_m3s values are valid."
      },
      {
        "status": "OK",
        "area": "reported_hotspots",
        "check": "exists",
        "detail": "Found <SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/refinement_points/full_city_155_plus_all_tile1_hotspots_20260504.csv"
      },
      {
        "status": "OK",
        "area": "reported_hotspots",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "reported_hotspots",
        "check": "rows",
        "detail": "180 rows."
      },
      {
        "status": "WARN",
        "area": "reported_hotspots",
        "check": "duplicate_point_id",
        "detail": "3 duplicate point_id values."
      },
      {
        "status": "OK",
        "area": "groundwater_monitor",
        "check": "exists",
        "detail": "Found <EXTERNAL_SOURCE_WORKSPACE>/Gurugram_narrative/08_citywide_adaptive_final/cgwb_naquim2023_groundwater_monitoring_points.csv"
      },
      {
        "status": "OK",
        "area": "groundwater_monitor",
        "check": "columns",
        "detail": "Required columns present."
      },
      {
        "status": "OK",
        "area": "groundwater_monitor",
        "check": "rows",
        "detail": "58 rows."
      },
      {
        "status": "OK",
        "area": "groundwater_monitor",
        "check": "lat_lon",
        "detail": "Latitude/longitude ranges are valid."
      }
    ],
    "tables": {
      "surface_inlets": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_adaptive_bcr_fabdem5m_min25m2_supertile6/citywide_july2025_reported_133mm_12h_hourly_citywide_partial70/exchange_tables/surface_inlet_exchange_table.csv",
        "rows": 5922,
        "columns": [
          "inlet_id",
          "asset_id",
          "asset_class",
          "ward",
          "longitude",
          "latitude",
          "rim_level_m",
          "normal_capture_efficiency",
          "clogged_capture_efficiency",
          "scenario_capture_efficiency",
          "best_guess_capacity_m3s",
          "scenario_local_capacity_m3s",
          "exchange_rule",
          "confidence"
        ],
        "capacity_m3s_sum": 7025.7502,
        "asset_classes": {
          "local storm drain": 5452,
          "master storm drain": 384,
          "main drain leg": 86
        }
      },
      "pump_inventory": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_actual_pumps_20260504/mcg_actual_pump_inventory_normalized.csv",
        "rows": 54,
        "columns": [
          "hotspot_id",
          "pump_id",
          "source",
          "candidate_source",
          "sheet_row",
          "sr_no",
          "ward_source",
          "department",
          "nearest_landmark",
          "pump_location_name",
          "pump_type",
          "raw_capacity",
          "raw_number_of_pump_set",
          "actual_pump_count",
          "pump_hp",
          "hp_values",
          "capacity_lpm_values",
          "capacity_lpm_total",
          "assigned_capacity_lps",
          "assigned_20hp_pumps",
          "pump_package",
          "capacity_basis",
          "outlet_discharge_point",
          "operator_contact",
          "remarks",
          "latitude",
          "longitude",
          "coordinate_basis",
          "coordinate_note",
          "local_geocode_match",
          "local_geocode_score",
          "activation_depth_m",
          "stop_depth_m",
          "screened_capacity_m3",
          "nearest_model_tile",
          "nearest_model_snap_m",
          "is_solver_ready",
          "qa_flags"
        ],
        "solver_ready_count": 50,
        "capacity_lps_sum": 2305.833333333333
      },
      "pump_connections": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_pump_drainage_connections_20260505/pump_to_drainage_connections.csv",
        "rows": 50,
        "columns": [
          "pump_id",
          "pump_location_name",
          "outlet_discharge_point",
          "outlet_intent",
          "selection_rule",
          "pump_capacity_lps",
          "pump_capacity_m3s",
          "selected_discharge_capacity_m3s",
          "target_asset_id",
          "target_name",
          "target_layer",
          "target_network_type",
          "target_capacity_m3s",
          "target_connection_source",
          "connection_distance_m",
          "connection_confidence",
          "qa_flags",
          "pump_x",
          "pump_y",
          "pump_lon",
          "pump_lat",
          "target_x",
          "target_y",
          "target_lon",
          "target_lat",
          "target_assigned_pump_capacity_m3s",
          "assigned_pump_count_on_target",
          "target_capacity_utilization_by_pumps"
        ],
        "capacity_m3s_sum": 2.01166,
        "max_connection_distance_m": 1396.43,
        "confidence": {
          "high": 25,
          "medium": 18,
          "field_check_required": 7
        }
      },
      "desilted_segments": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/mcg_desilted_networks_20260505/desilted_network_segments.csv",
        "rows": 38016,
        "columns": [
          "segment_id",
          "network_type",
          "source_name",
          "conveyance_mode",
          "rain_ingestion_enabled",
          "operational_capacity_fraction",
          "length_m",
          "vertex_count",
          "flow_reversed_from_kmz",
          "upstream_x",
          "upstream_y",
          "downstream_x",
          "downstream_y",
          "upstream_lon",
          "upstream_lat",
          "downstream_lon",
          "downstream_lat",
          "upstream_ground_m",
          "downstream_ground_m",
          "terrain_endpoint_slope",
          "hydraulic_slope_used",
          "slope_basis",
          "upstream_invert_m",
          "downstream_invert_m",
          "invert_basis",
          "upstream_crown_or_top_m",
          "downstream_crown_or_top_m",
          "minimum_cover_to_crown_or_top_m",
          "roughness_n",
          "nominal_width_m",
          "nominal_depth_m",
          "nominal_diameter_m",
          "capacity_full_m3s",
          "effective_capacity_90pct_m3s",
          "capacity_basis",
          "nearest_main_leg_id",
          "nearest_main_leg_name",
          "nearest_main_leg_distance_m",
          "main_leg_tie_candidate",
          "bbox_intersects_model_frame"
        ],
        "network_type_counts": {
          "sewer": 28037,
          "storm": 9979
        },
        "length_km_sum": 717.6494299999999,
        "effective_capacity_90pct_m3s_sum": 26774.72
      },
      "reported_hotspots": {
        "path": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/refinement_points/full_city_155_plus_all_tile1_hotspots_20260504.csv",
        "rows": 180,
        "columns": [
          "point_id",
          "x",
          "y",
          "crs",
          "target_cell_m",
          "buffer_m",
          "refinement_class",
          "source",
          "source_triangle_id",
          "max_depth_m",
          "qa_class",
          "lulc_class",
          "lulc_label",
          "nearest_inlet_distance_m",
          "point_name",
          "ward_no"
        ],
        "ward_counts": {
          "missing": 28,
          "15.0": 10,
          "34.0": 10,
          "20.0": 8,
          "35.0": 8,
          "16.0": 7,
          "21.0": 7,
          "27.0": 6,
          "24.0": 6,
          "33.0": 5,
          "2.0": 5,
          "8.0": 5,
          "25.0": 5,
          "11.0": 5,
          "12.0": 5,
          "13.0": 5,
          "18.0": 4,
          "3.0": 4,
          "4.0": 4,
          "14.0": 4,
          "36.0": 4,
          "19.0": 3,
          "31.0": 3,
          "32.0": 3,
          "1.0": 3,
          "7.0": 3,
          "9.0": 3,
          "22.0": 3,
          "10.0": 3,
          "29.0": 2,
          "23.0": 2,
          "26.0": 2,
          "17.0": 1,
          "28.0": 1,
          "30.0": 1,
          "6.0": 1,
          "5.0": 1
        }
      },
      "groundwater_monitor": {
        "path": "<EXTERNAL_SOURCE_WORKSPACE>/Gurugram_narrative/08_citywide_adaptive_final/cgwb_naquim2023_groundwater_monitoring_points.csv",
        "rows": 58,
        "columns": [
          "season",
          "site_name",
          "latitude",
          "longitude",
          "water_level_mbgl",
          "source"
        ]
      }
    }
  },
  "qa_json": "<SOURCE_WORKSPACE>/flood_model/outputs/gurugram_citywide_gpu/professional_qa/scenario_qa/snap50_high_tailwater.json"
}
