{
 "ocl_version": "0.1.0",
 "name": "Via dei Bonoli",
 "slug": "via-dei-bonoli",
 "confidence": "B",
 "reported_claims": [],
 "ladder": [
  {
   "window_m": 2.0,
   "max_gradient_pct": 53.8729045538048,
   "diagnostic": true,
   "flags": [
    "structure_excluded"
   ],
   "start_distance_m": 266.0,
   "end_distance_m": 268.0,
   "start_elevation_m": 425.2608819738505,
   "end_elevation_m": 426.33834006492657,
   "min_gradient_pct": -20.00533966521516,
   "suppressed_max_gradient_pct": 95.43496876607094,
   "suppressed_location_m": [
    251.0,
    253.0
   ]
  },
  {
   "window_m": 3.0,
   "max_gradient_pct": 46.532653467013084,
   "diagnostic": true,
   "flags": [
    "structure_excluded"
   ],
   "start_distance_m": 266.0,
   "end_distance_m": 269.0,
   "start_elevation_m": 425.2608819738505,
   "end_elevation_m": 426.65686157786087,
   "min_gradient_pct": -13.491514820013132,
   "suppressed_max_gradient_pct": 76.04014896014444,
   "suppressed_location_m": [
    250.0,
    253.0
   ]
  },
  {
   "window_m": 5.0,
   "max_gradient_pct": 33.99608818818706,
   "diagnostic": false,
   "flags": [
    "structure_excluded"
   ],
   "start_distance_m": 267.0,
   "end_distance_m": 272.0,
   "start_elevation_m": 425.77776756472133,
   "end_elevation_m": 427.4775719741307,
   "min_gradient_pct": -6.876468129073601,
   "suppressed_max_gradient_pct": 46.78777775853632,
   "suppressed_location_m": [
    249.0,
    254.0
   ]
  },
  {
   "window_m": 10.0,
   "max_gradient_pct": 31.354431254683277,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 185.0,
   "end_distance_m": 195.0,
   "start_elevation_m": 412.7454417016725,
   "end_elevation_m": 415.88088482714085,
   "min_gradient_pct": -0.6127114286618962
  },
  {
   "window_m": 20.0,
   "max_gradient_pct": 25.575869099047566,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 184.0,
   "end_distance_m": 204.0,
   "start_elevation_m": 412.52653688802377,
   "end_elevation_m": 417.6417107078333,
   "min_gradient_pct": 5.25504063413166
  },
  {
   "window_m": 25.0,
   "max_gradient_pct": 25.01501997960645,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 185.0,
   "end_distance_m": 210.0,
   "start_elevation_m": 412.7454417016725,
   "end_elevation_m": 418.99919669657413,
   "min_gradient_pct": 7.19762335718201
  },
  {
   "window_m": 50.0,
   "max_gradient_pct": 20.618813661083323,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 166.0,
   "end_distance_m": 216.0,
   "start_elevation_m": 409.8925901833346,
   "end_elevation_m": 420.2019970138763,
   "min_gradient_pct": 10.117769919948387
  },
  {
   "window_m": 100.0,
   "max_gradient_pct": 17.920909006287843,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 119.0,
   "end_distance_m": 219.0,
   "start_elevation_m": 402.7183994415997,
   "end_elevation_m": 420.6393084478875,
   "min_gradient_pct": 11.413424899947017
  }
 ],
 "shape": {
  "ascent_concentration": 0.327,
  "concentration_window_frac": 0.25,
  "longest_pitch_10pct_m": 228.0,
  "shape_class": "sustained"
 },
 "length_m": 312.0258160643004,
 "start_elevation_m": 387.02895037598853,
 "end_elevation_m": 430.9684058984327,
 "endpoint_gain_m": 43.93945552244418,
 "overall_gradient_pct": 14.081993623690868,
 "accumulated_ascent_m": 44.955861891123845,
 "window_maxima": {
  "max_5m": {
   "gradient_pct": 33.99608818818706,
   "start_distance_m": 267.0,
   "end_distance_m": 272.0,
   "midpoint_distance_m": 269.5,
   "start_elevation_m": 425.77776756472133,
   "end_elevation_m": 427.4775719741307,
   "start_xy": [
    2715475.916122262,
    1096147.1690907949
   ],
   "end_xy": [
    2715471.041761756,
    1096146.0552642113
   ]
  },
  "max_10m": {
   "gradient_pct": 31.354431254683277,
   "start_distance_m": 185.0,
   "end_distance_m": 195.0,
   "midpoint_distance_m": 190.0,
   "start_elevation_m": 412.7454417016725,
   "end_elevation_m": 415.88088482714085,
   "start_xy": [
    2715550.535770028,
    1096180.4800580784
   ],
   "end_xy": [
    2715541.2973231566,
    1096176.6523826204
   ]
  },
  "max_20m": {
   "gradient_pct": 25.575869099047566,
   "start_distance_m": 184.0,
   "end_distance_m": 204.0,
   "midpoint_distance_m": 194.0,
   "start_elevation_m": 412.52653688802377,
   "end_elevation_m": 417.6417107078333,
   "start_xy": [
    2715551.4596147146,
    1096180.8628256242
   ],
   "end_xy": [
    2715532.96887767,
    1096173.2412189513
   ]
  },
  "max_25m": {
   "gradient_pct": 25.01501997960645,
   "start_distance_m": 185.0,
   "end_distance_m": 210.0,
   "midpoint_distance_m": 197.5,
   "start_elevation_m": 412.7454417016725,
   "end_elevation_m": 418.99919669657413,
   "start_xy": [
    2715550.535770028,
    1096180.4800580784
   ],
   "end_xy": [
    2715527.4099332923,
    1096170.983313416
   ]
  },
  "max_50m": {
   "gradient_pct": 20.618813661083323,
   "start_distance_m": 166.0,
   "end_distance_m": 216.0,
   "midpoint_distance_m": 191.0,
   "start_elevation_m": 409.8925901833346,
   "end_elevation_m": 420.2019970138763,
   "start_xy": [
    2715567.922195965,
    1096188.1338897168
   ],
   "end_xy": [
    2715521.8509889147,
    1096168.7254078803
   ]
  },
  "max_100m": {
   "gradient_pct": 17.920909006287843,
   "start_distance_m": 119.0,
   "end_distance_m": 219.0,
   "midpoint_distance_m": 169.0,
   "start_elevation_m": 402.7183994415997,
   "end_elevation_m": 420.6393084478875,
   "start_xy": [
    2715613.6638977574,
    1096196.0123401822
   ],
   "end_xy": [
    2715519.071516726,
    1096167.5964551126
   ]
  }
 },
 "window_minima": {
  "min_5m": {
   "gradient_pct": -6.876468129073601,
   "start_distance_m": 243.0,
   "end_distance_m": 248.0,
   "midpoint_distance_m": 245.5,
   "start_elevation_m": 423.2795014712203,
   "end_elevation_m": 422.93567806476665,
   "start_xy": [
    2715497.458622557,
    1096157.2807737628
   ],
   "end_xy": [
    2715493.1132737184,
    1096154.8073260738
   ]
  },
  "min_10m": {
   "gradient_pct": -0.6127114286618962,
   "start_distance_m": 255.0,
   "end_distance_m": 265.0,
   "midpoint_distance_m": 260.0,
   "start_elevation_m": 425.2946602234741,
   "end_elevation_m": 425.23338908060794,
   "start_xy": [
    2715487.029785344,
    1096151.3444993093
   ],
   "end_xy": [
    2715477.865866464,
    1096147.6146214283
   ]
  },
  "min_20m": {
   "gradient_pct": 5.25504063413166,
   "start_distance_m": 230.0,
   "end_distance_m": 250.0,
   "midpoint_distance_m": 240.0,
   "start_elevation_m": 421.93105657405766,
   "end_elevation_m": 422.982064700884,
   "start_xy": [
    2715508.8801187007,
    1096163.4569616308
   ],
   "end_xy": [
    2715491.3751341826,
    1096153.8179469982
   ]
  },
  "min_25m": {
   "gradient_pct": 7.19762335718201,
   "start_distance_m": 225.0,
   "end_distance_m": 250.0,
   "midpoint_distance_m": 237.5,
   "start_elevation_m": 421.1826588615885,
   "end_elevation_m": 422.982064700884,
   "start_xy": [
    2715513.5125723486,
    1096165.338549577
   ],
   "end_xy": [
    2715491.3751341826,
    1096153.8179469982
   ]
  },
  "min_50m": {
   "gradient_pct": 10.117769919948387,
   "start_distance_m": 216.0,
   "end_distance_m": 266.0,
   "midpoint_distance_m": 241.0,
   "start_elevation_m": 420.2019970138763,
   "end_elevation_m": 425.2608819738505,
   "start_xy": [
    2715521.8509889147,
    1096168.7254078803
   ],
   "end_xy": [
    2715476.890994363,
    1096147.3918561116
   ]
  },
  "min_100m": {
   "gradient_pct": 11.413424899947017,
   "start_distance_m": 212.0,
   "end_distance_m": 312.0,
   "midpoint_distance_m": 262.0,
   "start_elevation_m": 419.5530034678242,
   "end_elevation_m": 430.96642836777124,
   "start_xy": [
    2715525.5569518334,
    1096170.2306782373
   ],
   "end_xy": [
    2715436.7270458895,
    1096130.0582772072
   ]
  }
 },
 "diagnostic_window_maxima": {
  "max_2m": {
   "gradient_pct": 53.8729045538048,
   "start_distance_m": 266.0,
   "end_distance_m": 268.0,
   "midpoint_distance_m": 267.0,
   "start_elevation_m": 425.2608819738505,
   "end_elevation_m": 426.33834006492657,
   "start_xy": [
    2715476.890994363,
    1096147.3918561116
   ],
   "end_xy": [
    2715474.9412501603,
    1096146.9463254781
   ]
  },
  "max_3m": {
   "gradient_pct": 46.532653467013084,
   "start_distance_m": 266.0,
   "end_distance_m": 269.0,
   "midpoint_distance_m": 267.5,
   "start_elevation_m": 425.2608819738505,
   "end_elevation_m": 426.65686157786087,
   "start_xy": [
    2715476.890994363,
    1096147.3918561116
   ],
   "end_xy": [
    2715473.9663780592,
    1096146.7235601614
   ]
  }
 },
 "diagnostic_note": "Windows <=3 m are at raster-noise scale (1-sigma raster noise alone is roughly +/-7 pp at 2 m and +/-5 pp at 3 m on a 1 m DTM). Diagnostic use only: never a headline or ranking value.",
 "quality_summary": {
  "structure_suppression": {
   "masked_fraction": 0.022,
   "windows_resited": [
    2.0,
    3.0,
    5.0
   ],
   "windows_unresolved": []
  },
  "excluded_ranges_m": [
   [
    249.0,
    255.0
   ]
  ],
  "review": [],
  "extent": [
   "may_start_earlier",
   "may_continue_beyond_end"
  ]
 },
 "provenance": {
  "analysis_version": "0.1.0",
  "sample_interval_m": 1.0,
  "interpolation": "bilinear",
  "smoothing": "none",
  "gradient_windows_m": [
   5.0,
   10.0,
   20.0,
   25.0,
   50.0,
   100.0
  ],
  "diagnostic_windows_m": [
   2.0,
   3.0
  ],
  "elevation_crs": "EPSG:2056",
  "elevation_resolution_m": 0.5,
  "elevation_tiles": [
   "data/cache/ch/swissalti3d_2022_2715-1096_0.5_2056_5728.tif"
  ],
  "calculated_at": "2026-09-11T03:28:12+00:00",
  "road_source": "OpenStreetMap (local PBF extract)",
  "road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
  "osm_pbf_path": "data/cache/pbf/switzerland-2026-09-10-batch.osm.pbf",
  "osm_snapshot": "",
  "run_id": "ch-run7-260911",
  "elevation_provider": "swisstopo swissALTI3D",
  "elevation_licence": "swisstopo open government data (OGD): free use, attribution '\u00a9 swisstopo' \u2014 https://www.swisstopo.admin.ch/en/terms-and-conditions",
  "elevation_dataset": "swissALTI3D 0.5 m DTM (Federal Office of Topography swisstopo)",
  "elevation_tile_ids": [
   "2715-1096"
  ],
  "climb_origin": "discovered",
  "canopy_check": "unavailable \u2014 no surface model (DSM or point cloud) registered for this coverage",
  "license": "ODbL-1.0",
  "license_url": "https://howsteep.org/licensing"
 },
 "area": {
  "place": "Lugano",
  "county": "Ticino",
  "source": "OpenStreetMap administrative boundaries (\u00a9 OpenStreetMap contributors, ODbL)"
 }
}