{
 "ocl_version": "0.1.0",
 "name": "Route du Jorat",
 "slug": "route-du-jorat-5",
 "confidence": "B",
 "reported_claims": [],
 "ladder": [
  {
   "window_m": 2.0,
   "max_gradient_pct": 20.60445817475056,
   "diagnostic": true,
   "flags": [
    "texture_excluded",
    "texture_excluded"
   ],
   "start_distance_m": 4540.0,
   "end_distance_m": 4542.0,
   "start_elevation_m": 1700.9052884184582,
   "end_elevation_m": 1701.3173775819532,
   "min_gradient_pct": -7.631519574181311,
   "suppressed_max_gradient_pct": 24.621426904548116,
   "suppressed_location_m": [
    4038.0,
    4040.0
   ]
  },
  {
   "window_m": 3.0,
   "max_gradient_pct": 20.16058588665904,
   "diagnostic": true,
   "flags": [
    "texture_excluded",
    "texture_excluded"
   ],
   "start_distance_m": 4102.0,
   "end_distance_m": 4105.0,
   "start_elevation_m": 1652.7940292262174,
   "end_elevation_m": 1653.3988468028172,
   "min_gradient_pct": -7.215294494881164,
   "suppressed_max_gradient_pct": 23.45937874357939,
   "suppressed_location_m": [
    4038.0,
    4041.0
   ]
  },
  {
   "window_m": 5.0,
   "max_gradient_pct": 19.677596954643377,
   "diagnostic": false,
   "flags": [
    "texture_excluded",
    "texture_excluded"
   ],
   "start_distance_m": 4100.0,
   "end_distance_m": 4105.0,
   "start_elevation_m": 1652.414966955085,
   "end_elevation_m": 1653.3988468028172,
   "min_gradient_pct": -6.939409137030452,
   "suppressed_max_gradient_pct": 23.024469460829096,
   "suppressed_location_m": [
    4038.0,
    4043.0
   ]
  },
  {
   "window_m": 10.0,
   "max_gradient_pct": 19.074136110866675,
   "diagnostic": false,
   "flags": [
    "texture_excluded",
    "texture_excluded"
   ],
   "start_distance_m": 4097.0,
   "end_distance_m": 4107.0,
   "start_elevation_m": 1651.8431563058898,
   "end_elevation_m": 1653.7505699169765,
   "min_gradient_pct": -6.8626821367706725,
   "suppressed_max_gradient_pct": 22.09840321680531,
   "suppressed_location_m": [
    4034.0,
    4044.0
   ]
  },
  {
   "window_m": 20.0,
   "max_gradient_pct": 18.65394818868367,
   "diagnostic": false,
   "flags": [
    "texture_excluded",
    "texture_excluded"
   ],
   "start_distance_m": 2396.0,
   "end_distance_m": 2416.0,
   "start_elevation_m": 1475.47309489466,
   "end_elevation_m": 1479.2038845323968,
   "min_gradient_pct": -6.233490317932819,
   "suppressed_max_gradient_pct": 20.97439761744681,
   "suppressed_location_m": [
    4024.0,
    4044.0
   ]
  },
  {
   "window_m": 25.0,
   "max_gradient_pct": 18.446075177137573,
   "diagnostic": false,
   "flags": [
    "texture_excluded"
   ],
   "start_distance_m": 2395.0,
   "end_distance_m": 2420.0,
   "start_elevation_m": 1475.3021237726448,
   "end_elevation_m": 1479.9136425669292,
   "min_gradient_pct": -5.992861594916576,
   "suppressed_max_gradient_pct": 20.686660278895943,
   "suppressed_location_m": [
    4019.0,
    4044.0
   ]
  },
  {
   "window_m": 50.0,
   "max_gradient_pct": 17.378666234527373,
   "diagnostic": false,
   "flags": [
    "texture_excluded"
   ],
   "start_distance_m": 3512.0,
   "end_distance_m": 3562.0,
   "start_elevation_m": 1601.4030226413063,
   "end_elevation_m": 1610.09235575857,
   "min_gradient_pct": -5.052974280063154,
   "suppressed_max_gradient_pct": 18.323664911171363,
   "suppressed_location_m": [
    4000.0,
    4050.0
   ]
  },
  {
   "window_m": 100.0,
   "max_gradient_pct": 16.638941992950322,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 3512.0,
   "end_distance_m": 3612.0,
   "start_elevation_m": 1601.4030226413063,
   "end_elevation_m": 1618.0419646342566,
   "min_gradient_pct": -4.235428355625572
  }
 ],
 "shape": {
  "ascent_concentration": 0.284,
  "concentration_window_frac": 0.25,
  "longest_pitch_10pct_m": 509.0,
  "shape_class": "sustained"
 },
 "length_m": 4851.442215386564,
 "start_elevation_m": 1223.274208059062,
 "end_elevation_m": 1725.2115109482443,
 "endpoint_gain_m": 501.9373028891823,
 "overall_gradient_pct": 10.346146168602521,
 "accumulated_ascent_m": 507.72951739467476,
 "window_maxima": {
  "max_5m": {
   "gradient_pct": 19.677596954643377,
   "start_distance_m": 4100.0,
   "end_distance_m": 4105.0,
   "midpoint_distance_m": 4102.5,
   "start_elevation_m": 1652.414966955085,
   "end_elevation_m": 1653.3988468028172,
   "start_xy": [
    2556076.9862504303,
    1119268.6344233176
   ],
   "end_xy": [
    2556074.0068639535,
    1119264.6243572626
   ]
  },
  "max_10m": {
   "gradient_pct": 19.074136110866675,
   "start_distance_m": 4097.0,
   "end_distance_m": 4107.0,
   "midpoint_distance_m": 4102.0,
   "start_elevation_m": 1651.8431563058898,
   "end_elevation_m": 1653.7505699169765,
   "start_xy": [
    2556078.725023724,
    1119271.0791454054
   ],
   "end_xy": [
    2556072.6077155527,
    1119263.195238029
   ]
  },
  "max_20m": {
   "gradient_pct": 18.65394818868367,
   "start_distance_m": 2396.0,
   "end_distance_m": 2416.0,
   "midpoint_distance_m": 2406.0,
   "start_elevation_m": 1475.47309489466,
   "end_elevation_m": 1479.2038845323968,
   "start_xy": [
    2557276.362520201,
    1119512.396565881
   ],
   "end_xy": [
    2557261.214291292,
    1119525.4511201843
   ]
  },
  "max_25m": {
   "gradient_pct": 18.446075177137573,
   "start_distance_m": 2395.0,
   "end_distance_m": 2420.0,
   "midpoint_distance_m": 2407.5,
   "start_elevation_m": 1475.3021237726448,
   "end_elevation_m": 1479.9136425669292,
   "start_xy": [
    2557277.1294334037,
    1119511.7548151084
   ],
   "end_xy": [
    2557258.236623699,
    1119528.1219803614
   ]
  },
  "max_50m": {
   "gradient_pct": 17.378666234527373,
   "start_distance_m": 3512.0,
   "end_distance_m": 3562.0,
   "midpoint_distance_m": 3537.0,
   "start_elevation_m": 1601.4030226413063,
   "end_elevation_m": 1610.09235575857,
   "start_xy": [
    2556507.416443316,
    1119501.0093622853
   ],
   "end_xy": [
    2556485.8184916666,
    1119456.052715787
   ]
  },
  "max_100m": {
   "gradient_pct": 16.638941992950322,
   "start_distance_m": 3512.0,
   "end_distance_m": 3612.0,
   "midpoint_distance_m": 3562.0,
   "start_elevation_m": 1601.4030226413063,
   "end_elevation_m": 1618.0419646342566,
   "start_xy": [
    2556507.416443316,
    1119501.0093622853
   ],
   "end_xy": [
    2556462.9579849388,
    1119411.6622930737
   ]
  }
 },
 "window_minima": {
  "min_5m": {
   "gradient_pct": -6.939409137030452,
   "start_distance_m": 3846.0,
   "end_distance_m": 3851.0,
   "midpoint_distance_m": 3848.5,
   "start_elevation_m": 1639.4391883894032,
   "end_elevation_m": 1639.0922179325516,
   "start_xy": [
    2556282.010031994,
    1119284.9518870437
   ],
   "end_xy": [
    2556277.108828619,
    1119283.962846161
   ]
  },
  "min_10m": {
   "gradient_pct": -6.8626821367706725,
   "start_distance_m": 3844.0,
   "end_distance_m": 3854.0,
   "midpoint_distance_m": 3849.0,
   "start_elevation_m": 1639.5692718219425,
   "end_elevation_m": 1638.8830036082654,
   "start_xy": [
    2556283.970601399,
    1119285.3470663375
   ],
   "end_xy": [
    2556274.167397918,
    1119283.3729443322
   ]
  },
  "min_20m": {
   "gradient_pct": -6.233490317932819,
   "start_distance_m": 3839.0,
   "end_distance_m": 3859.0,
   "midpoint_distance_m": 3849.0,
   "start_elevation_m": 1639.8311567680155,
   "end_elevation_m": 1638.584458704429,
   "start_xy": [
    2556288.871611088,
    1119286.337068293
   ],
   "end_xy": [
    2556269.2649925514,
    1119282.389879115
   ]
  },
  "min_25m": {
   "gradient_pct": -5.992861594916576,
   "start_distance_m": 3836.0,
   "end_distance_m": 3861.0,
   "midpoint_distance_m": 3848.5,
   "start_elevation_m": 1639.9874726190317,
   "end_elevation_m": 1638.4892572203025,
   "start_xy": [
    2556291.8122294,
    1119286.9310075727
   ],
   "end_xy": [
    2556267.303985538,
    1119281.996877705
   ]
  },
  "min_50m": {
   "gradient_pct": -5.052974280063154,
   "start_distance_m": 3831.0,
   "end_distance_m": 3881.0,
   "midpoint_distance_m": 3856.0,
   "start_elevation_m": 1640.168390101607,
   "end_elevation_m": 1637.6419029615754,
   "start_xy": [
    2556296.747559224,
    1119287.7139886941
   ],
   "end_xy": [
    2556247.69393055,
    1119278.06678611
   ]
  },
  "min_100m": {
   "gradient_pct": -4.235428355625572,
   "start_distance_m": 3829.0,
   "end_distance_m": 3929.0,
   "midpoint_distance_m": 3879.0,
   "start_elevation_m": 1640.2315100955852,
   "end_elevation_m": 1635.9960817399597,
   "start_xy": [
    2556298.7323753866,
    1119287.9599658998
   ],
   "end_xy": [
    2556200.2045710483,
    1119271.3231115872
   ]
  }
 },
 "diagnostic_window_maxima": {
  "max_2m": {
   "gradient_pct": 20.60445817475056,
   "start_distance_m": 4540.0,
   "end_distance_m": 4542.0,
   "midpoint_distance_m": 4541.0,
   "start_elevation_m": 1700.9052884184582,
   "end_elevation_m": 1701.3173775819532,
   "start_xy": [
    2555670.2243415536,
    1119145.1732571826
   ],
   "end_xy": [
    2555668.6175545543,
    1119143.9860621837
   ]
  },
  "max_3m": {
   "gradient_pct": 20.16058588665904,
   "start_distance_m": 4102.0,
   "end_distance_m": 4105.0,
   "midpoint_distance_m": 4103.5,
   "start_elevation_m": 1652.7940292262174,
   "end_elevation_m": 1653.3988468028172,
   "start_xy": [
    2556075.827257555,
    1119267.0044739777
   ],
   "end_xy": [
    2556074.0068639535,
    1119264.6243572626
   ]
  }
 },
 "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": {
  "texture_suppression": {
   "masked_fraction": 0.011,
   "windows_resited": [
    2.0,
    3.0,
    5.0,
    10.0,
    20.0
   ],
   "windows_unresolved": []
  },
  "texture_windows": {
   "rounds": 2,
   "windows_masked": [
    {
     "window_m": 25.0,
     "start_m": 4019.0,
     "end_m": 4044.0,
     "raw_pct": 20.69,
     "reason": "hump"
    },
    {
     "window_m": 20.0,
     "start_m": 4674.0,
     "end_m": 4694.0,
     "raw_pct": 18.96,
     "reason": "hump"
    }
   ],
   "advisory": [],
   "unresolved": []
  },
  "excluded_ranges_m": [
   [
    4017.0,
    4046.0
   ],
   [
    4672.0,
    4696.0
   ]
  ],
  "review": [],
  "extent": [
   "may_start_earlier"
  ]
 },
 "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_2024_2555-1118_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2555-1119_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2556-1119_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2557-1119_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2557-1120_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2558-1119_0.5_2056_5728.tif",
   "data/cache/ch/swissalti3d_2024_2558-1120_0.5_2056_5728.tif"
  ],
  "calculated_at": "2026-09-11T23:49:47+00:00",
  "road_source": "OpenStreetMap (local PBF extract)",
  "road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
  "osm_pbf_path": "output/texture-ch-ch/batch-switzerland-rchunk01.pbf",
  "osm_snapshot": "",
  "run_id": "texture-ch-ch-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": [
   "2555-1118",
   "2555-1119",
   "2556-1119",
   "2557-1119",
   "2557-1120",
   "2558-1119",
   "2558-1120"
  ],
  "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": "Troistorrents",
  "county": "Valais/Wallis",
  "source": "OpenStreetMap administrative boundaries (\u00a9 OpenStreetMap contributors, ODbL)"
 }
}