LIVING SURVEY — measurements are reviewed continuously as new data and local evidence arrive. Seen a sign, a gate, or a better name? Submit an update no account needed · photos welcome via GitHub

← all climbs

Col de Castillon from Sospel

Paved · ranked

5599.2 m · net rise 305.4 m · total ascent 335.2 m · overall 5.5% · evidence quality B (good) · Sospel · Alpes-Maritimes

Shape: sustained — 28% of the climbing sits in a quarter of the distance; longest continuous stretch at 10%+ is 19 m.

Not yet matched against documented climbs — the measurement stands on its own.

≈ Overhead cover (tree canopy or structures) spans 11% of this route — detected by comparing the surface model (DSM, treetops and rooftops) against the terrain model (DTM, bare ground). Under cover the bare-ground model is built from fewer laser returns, so metre-scale readings can wobble; maxima whose window sits in a covered zone are marked ≈ below — less certain — the flag does not say whether the true value is higher or lower. Longer windows average over more clean ground and are steadier.

Col de Castillon from Sospel (Sospel, Alpes-Maritimes) is 5599.2 m long at 5.5% overall; its steepest 25 m averages ≈7.7% and its steepest 100 m ≈6.7%, measured from IGN's LiDAR HD 0.5 m laser surveys along the mapped road centreline.

Gradient ladder what do windows mean?

WindowMaximumLocated at
2 m (diagnostic)≈21%1556–1558 munder overhead cover terrain reads 310.2% at 1840–1842 m across a structure — excluded
3 m (diagnostic)≈18%1555–1558 munder overhead cover terrain reads 276.0% at 1840–1843 m across a structure — excluded
5 m≈13%1553–1558 munder overhead cover terrain reads 180.5% at 1839–1844 m across a structure — excluded
10 m≈10%1550–1560 munder overhead cover terrain reads 92.7% at 1838–1848 m across a structure — excluded
20 m≈8.1%898–918 munder overhead cover terrain reads 48.0% at 1838–1858 m across a structure — excluded
25 m≈7.7%841–866 munder overhead cover terrain reads 39.1% at 1839–1864 m across a structure — excluded
50 m≈6.9%3719–3769 munder overhead cover terrain reads 22.1% at 1839–1889 m across a structure — excluded
100 m≈6.7%3691–3791 munder overhead cover terrain reads 13.6% at 1839–1939 m across a structure — excluded

may continue beyond end Extent detection suggests reviewing where this climb starts/ends.

Map

Check this route yourself: Google Maps route via their router · Street View at the base where coverage exists · geojson.io our exact measured line · OpenTopoMap

This climb's data: OCL JSON — the full gradient ladder, quality flags and provenance in the OpenClimb Ladder format.

Surface: paved throughout, according to BD TOPO®, IGN's national topographic database.

Measured, not vetted. This page records what the laser record shows about the road's shape — nothing more. Nobody has necessarily ridden or inspected this road for the survey, and a page here is not a recommendation and no guarantee that the road is open, surfaced, rideable or safe. Gates, private sections, missing rights of way and hazards do not show up in elevation data. Check access and conditions on the ground and make your own judgment.

Ridden it, or know better? Submit data for this climb no account needed ·

Route colour = gradient over a 25 m window: <10% 10–20% 20–25% ≥25%

Route line = the road surface as the LiDAR survey finds it. Basemap roads are for orientation and may sit a few metres off.

  © OpenStreetMap contributors · topo tiles © OpenTopoMap (CC-BY-SA) · vector tiles OpenFreeMap · aerial imagery © IGN, BD ORTHO® (Licence Ouverte Etalab 2.0)

Col de Castillon from Sospel LiDAR hillshade map with contours

Profile

The map, profile and gradient chart share one position — move your pointer over them and the marker follows. Colors are the gradient bands; the shaded span is the steepest 25 m. Any 25 m figure is good to about a point either way (why).

Col de Castillon from Sospel elevation profile
Col de Castillon from Sospel rolling gradient profile
 

Measurement card

ElevationIGN LiDAR HD MNT 0.5 m — LiDAR HD — MNT (sol) et MNS (surface), 0,50 m (Institut national de l'information géographique et forestière), RGF93 / Lambert-93 EPSG:2154, altitudes IGN69
Resolution / CRS0.5 m grid, EPSG:2154; sampled every 1.0 m, bilinear interpolation
TilesE1057-N6315, E1057-N6316, E1057-N6317, E1057-N6318, E1058-N6314, E1058-N6315, E1058-N6316
Road centrelineOpenStreetMap (local PBF extract)
Quality statusevidence quality B; caveated windows: canopy or structure, structure excluded, structure excluded min
AnalysisOCL 0.1.0, analysis 0.1.0, run remeasure-260929c-fr, calculated 2026-09-29

Provenance

{
  "analysis_version": "0.1.0",
  "run_manifest": {
    "manifest_version": "1",
    "code_git_sha": "1c1dcd6ab03c87d3448f21732228db610cfcad7e",
    "code_git_dirty": "false",
    "analysis_version": "0.1.0",
    "analysis_config_digest": "sha256:8c94015b54267da4",
    "python": "3.14.4",
    "numpy": "2.5.3",
    "rasterio": "1.5.1",
    "pyproj": "3.8.0",
    "laspy": "2.7.0",
    "shapely": "2.1.2",
    "pyosmium": "4.3.1",
    "libosmium": "2.23.1",
    "gdal": "3.12.4",
    "proj": "9.8.1",
    "run_id": "remeasure-260929c-fr",
    "road_pbf": "batch-france-chunk003.pbf",
    "region_key": "france",
    "crs": "EPSG:2154",
    "elevation_provider_key": "ign-lidarhd",
    "tile_index": "wms-grid",
    "authority": "bdtopo",
    "registry_pbf": "france-vosges-2026-09-16.osm.pbf",
    "tile_index_snapshot": "sha256:5dd112ac67572377"
  },
  "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:2154",
  "elevation_resolution_m": 0.5,
  "elevation_tiles": [
    "data/cache/fr/ign-lidarhd_dtm_E1057-N6315_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1057-N6316_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1057-N6317_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1057-N6318_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1058-N6314_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1058-N6315_0m5@21LHD8SP-2025-06-20.tif",
    "data/cache/fr/ign-lidarhd_dtm_E1058-N6316_0m5@21LHD8SP-2025-06-20.tif"
  ],
  "calculated_at": "2026-09-29T14:46:35+00:00",
  "road_source": "OpenStreetMap (local PBF extract)",
  "road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
  "osm_pbf_path": "output/remeasure-260929c-alpsS/fr/batch-france-chunk003.pbf",
  "osm_snapshot": "",
  "run_id": "remeasure-260929c-fr",
  "elevation_provider": "IGN LiDAR HD MNT 0.5 m",
  "elevation_licence": "Licence Ouverte / Open Licence 2.0 (Etalab) \u2014 \u00a9 IGN, LiDAR HD (MNT/MNS), data.geopf.fr; reproduction autoris\u00e9e avec mention de la source et de la date",
  "elevation_dataset": "LiDAR HD \u2014 MNT (sol) et MNS (surface), 0,50 m (Institut national de l'information g\u00e9ographique et foresti\u00e8re), RGF93 / Lambert-93 EPSG:2154, altitudes IGN69",
  "elevation_vertical_datum": "IGN69",
  "elevation_tile_ids": [
    "E1057-N6315",
    "E1057-N6316",
    "E1057-N6317",
    "E1057-N6318",
    "E1058-N6314",
    "E1058-N6315",
    "E1058-N6316"
  ],
  "elevation_blocks": [
    "21LHD8SP@2025-06-20"
  ],
  "ign_dalles": [
    "LHD_FXX_1057_6316_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1057_6317_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1057_6318_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1057_6319_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1058_6315_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1058_6316_MNT_O_0M50_LAMB93_IGN69",
    "LHD_FXX_1058_6317_MNT_O_0M50_LAMB93_IGN69"
  ],
  "ign_missions": [
    "21LHD8SP"
  ],
  "ign_editions": [
    "2025-06-20"
  ],
  "ign_dsm_edition": {
    "LHD_FXX_1057_6316_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1057_6317_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1057_6318_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1057_6319_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1058_6315_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1058_6316_MNT_O_0M50_LAMB93_IGN69": "2025-06-20",
    "LHD_FXX_1058_6317_MNT_O_0M50_LAMB93_IGN69": "2025-06-20"
  },
  "climb_origin": "named-pass",
  "seam_filled_samples": {
    "count": 0,
    "distances_m": []
  },
  "seam_filled_in_maximum": false,
  "structure_own_ways": 5,
  "structure_own_ways_source": "map-matched to the road network: the entry carried no way list, so the ways the route runs along were found by geometry (ukclimb.batch.own_ways_by_geometry)",
  "structure_mask_ranges_m": [
    [
      4331.0,
      4342.9
    ],
    [
      750.8,
      791.5
    ],
    [
      5468.7,
      5498.7
    ],
    [
      5491.2,
      5521.2
    ]
  ],
  "prior_doc": {
    "slug": "col-de-castillon-from-sospel",
    "calculated_at": "2026-09-17T02:18:23+00:00",
    "code_git_sha": null,
    "analysis_version": "0.1.0",
    "run_id": "fr-alps4",
    "path": "output/remeasure-260929c-alpsS/fr/priors/col-de-castillon-from-sospel/col-de-castillon-from-sospel.json",
    "spans": 5,
    "sources": [
      "excluded_ranges_m"
    ]
  },
  "carriageway": {
    "stations": 230,
    "stations_resolved": 230,
    "width_median_m": 6.0,
    "width_p10_m": 4.75,
    "width_min_m": 1.75,
    "width_max_m": 12.0,
    "bounded_share": 0.757,
    "unbounded_share": 0.243,
    "confidence_median": 0.934,
    "width_median_bounded_m": 6.0,
    "window_m": [
      841.0,
      866.0
    ],
    "width_at_max25_m": 5.75,
    "window_stations": 7,
    "single_track": false,
    "single_track_rule": "PROVISIONAL (2026-09-15): width_p10_m <= 3.0 m with bounded_share >= 0.6; recorded, not a rule",
    "status": "ok",
    "source": "dtm",
    "station_m": 25.0,
    "window_station_m": 5.0,
    "halfwidth_m": 6.0,
    "step_m": 0.25,
    "level_tol_m": 0.12,
    "break_min_m": 0.3,
    "stations_failed": 0,
    "hedge_to_hedge": {
      "stations": 230,
      "stations_resolved": 230,
      "width_median_m": 5.75,
      "width_p10_m": 1.0,
      "width_min_m": 0.5,
      "width_max_m": 11.25,
      "bounded_share": 0.943,
      "unbounded_share": 0.057,
      "confidence_median": 1.0,
      "width_median_bounded_m": 5.5,
      "window_m": [
        841.0,
        866.0
      ],
      "width_at_max25_m": 1.0,
      "window_stations": 7,
      "status": "ok",
      "source": "dsm",
      "station_m": 25.0,
      "window_station_m": 5.0,
      "halfwidth_m": 6.0,
      "step_m": 0.25,
      "level_tol_m": 0.5,
      "break_min_m": 0.3,
      "stations_failed": 0
    }
  },
  "remeasured": {
    "on": "2026-09-29",
    "why": "block-extract cache sweep: fold the fallers, risers held published (standing rulings)",
    "published_max25_pct": 7.85,
    "max25_pct": 7.67
  },
  "license": "ODbL-1.0",
  "license_url": "https://howsteep.org/licensing"
}