6391.8 m · net rise 285.5 m · total ascent 346.6 m · overall 4.5% · evidence quality B (good) · Ullensvang · Vestland
Shape: stepped — 48% of the climbing sits in a quarter of the distance; longest continuous stretch at 10%+ is 317 m.
Not yet matched against documented climbs — the measurement stands on its own.
Gradient ladder what do windows mean?
| Window | Maximum | Located at | |
|---|---|---|---|
| 2 m (diagnostic) | ≈19% | 3437–3439 m | under overhead cover terrain reads 145.3% at 2973–2975 m across a structure — excluded |
| 3 m (diagnostic) | ≈17% | 3437–3440 m | under overhead cover terrain reads 129.9% at 2972–2975 m across a structure — excluded |
| 5 m | ≈15% | 3435–3440 m | under overhead cover terrain reads 98.5% at 2971–2976 m across a structure — excluded |
| 10 m | ≈13% | 4197–4207 m | under overhead cover terrain reads 54.5% at 2970–2980 m across a structure — excluded |
| 20 m | ≈12.9% | 4188–4208 m | under overhead cover terrain reads 31.7% at 2970–2990 m across a structure — excluded |
| 25 m | ≈12.7% | 4189–4214 m | under overhead cover terrain reads 27.4% at 2970–2995 m across a structure — excluded |
| 50 m | ≈12.2% | 4158–4208 m | under overhead cover terrain reads 19.1% at 2970–3020 m across a structure — excluded |
| 100 m | ≈11.8% | 4127–4227 m | under overhead cover terrain reads 14.9% at 2970–3070 m across a structure — excluded |
may start earlier 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 NVDB, Norway's National Road 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 · Share this climb
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

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).


Measurement card
| Elevation | Kartverket NHM DTM 1 m (laser-covered ground only) — Nasjonal høydemodell (NHM) DTM, 1 m, EPSG:25833, NN2000 (Kartverket), served by the hoydedata.no ImageServer; ground without a laser project is a coarser resampled product and is never measured |
|---|---|
| Resolution / CRS | 1.0 m grid, EPSG:25833; sampled every 1.0 m, bilinear interpolation |
| Tiles | E36500-N6654500, E36500-N6655000, E37000-N6654500, E37000-N6655000, E37000-N6655500, E37500-N6655000, E37500-N6655500, E37500-N6656000, E37500-N6656500, E38000-N6655500, E38000-N6656000, E38000-N6656500, E38000-N6657000, E38000-N6657500, E38000-N6658000, E38000-N6658500, E38000-N6659000, E38000-N6659500, E38500-N6656500, E38500-N6657000, E38500-N6657500, E38500-N6658000, E38500-N6658500, E38500-N6659000, E38500-N6659500 |
| Road centreline | OpenStreetMap (local PBF extract) |
| Quality status | evidence quality B; caveated windows: structure excluded, structure excluded min |
| Analysis | OCL 0.1.0, analysis 0.1.0, run no-b01, calculated 2026-10-03 |
Provenance
{
"analysis_version": "0.1.0",
"run_manifest": {
"manifest_version": "1",
"code_git_sha": "368c60c29e47d4b421849c953b172a04f7694146",
"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.2",
"pyproj": "3.8.0",
"laspy": "2.7.0",
"shapely": "2.1.2",
"pyosmium": "4.3.1",
"libosmium": "2.23.1",
"gdal": "3.12.2",
"proj": "9.8.1",
"run_id": "no-b01",
"road_pbf": "no-b01-block-batch-no-b01.osm.pbf",
"region_key": "norway",
"crs": "EPSG:25833",
"elevation_provider_key": "nhm-no",
"tile_index": "nhm-window",
"authority": "nvdb",
"registry_pbf": "norway-2026-10-01.osm.pbf"
},
"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
],
"scale_correction": "point",
"scale_correction_crs": "EPSG:25833",
"elevation_crs": "EPSG:25833",
"elevation_resolution_m": 1.0,
"elevation_tiles": [
"data/cache/no/nhm-no_dtm_E36500-N6654500_1m.tif",
"data/cache/no/nhm-no_dtm_E36500-N6655000_1m.tif",
"data/cache/no/nhm-no_dtm_E37000-N6654500_1m.tif",
"data/cache/no/nhm-no_dtm_E37000-N6655000_1m.tif",
"data/cache/no/nhm-no_dtm_E37000-N6655500_1m.tif",
"data/cache/no/nhm-no_dtm_E37500-N6655000_1m.tif",
"data/cache/no/nhm-no_dtm_E37500-N6655500_1m.tif",
"data/cache/no/nhm-no_dtm_E37500-N6656000_1m.tif",
"data/cache/no/nhm-no_dtm_E37500-N6656500_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6655500_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6656000_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6656500_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6657000_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6657500_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6658000_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6658500_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6659000_1m.tif",
"data/cache/no/nhm-no_dtm_E38000-N6659500_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6656500_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6657000_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6657500_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6658000_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6658500_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6659000_1m.tif",
"data/cache/no/nhm-no_dtm_E38500-N6659500_1m.tif"
],
"calculated_at": "2026-10-03T19:50:00+00:00",
"road_source": "OpenStreetMap (local PBF extract)",
"road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
"osm_pbf_path": "data/cache/pbf/no-b01-block-batch-no-b01.osm.pbf",
"osm_snapshot": "",
"run_id": "no-b01",
"elevation_provider": "Kartverket NHM DTM 1 m (laser-covered ground only)",
"elevation_licence": "CC BY 4.0 \u2014 \u00a9 Kartverket (https://www.kartverket.no/api-og-data/vilkar-for-bruk)",
"elevation_dataset": "Nasjonal h\u00f8ydemodell (NHM) DTM, 1 m, EPSG:25833, NN2000 (Kartverket), served by the hoydedata.no ImageServer; ground without a laser project is a coarser resampled product and is never measured",
"elevation_vertical_datum": "NN2000",
"elevation_tile_ids": [
"E36500-N6654500",
"E36500-N6655000",
"E37000-N6654500",
"E37000-N6655000",
"E37000-N6655500",
"E37500-N6655000",
"E37500-N6655500",
"E37500-N6656000",
"E37500-N6656500",
"E38000-N6655500",
"E38000-N6656000",
"E38000-N6656500",
"E38000-N6657000",
"E38000-N6657500",
"E38000-N6658000",
"E38000-N6658500",
"E38000-N6659000",
"E38000-N6659500",
"E38500-N6656500",
"E38500-N6657000",
"E38500-N6657500",
"E38500-N6658000",
"E38500-N6658500",
"E38500-N6659000",
"E38500-N6659500"
],
"elevation_blocks": [
"nhm-dtm-1m"
],
"nhm_laser_projects": [
{
"name": "Hardanger 10pkt 2022 Del5",
"year": 2022,
"last_flight_date": "2022-11-20",
"points_per_m2": 10,
"resolution_m": 0.25,
"season": "snow-season"
},
{
"name": "NDH R\u00f8ldal 5pkt 2017",
"year": 2017,
"last_flight_date": "2017-07-06",
"points_per_m2": 5,
"resolution_m": 0.25,
"season": ""
},
{
"name": "NDH Suldalsheiane 2pkt 2019",
"year": 2019,
"last_flight_date": "2019-10-07",
"points_per_m2": 2,
"resolution_m": 0.5,
"season": ""
},
{
"name": "Odda 2011",
"year": 2011,
"last_flight_date": "2013-07-22",
"points_per_m2": 2,
"resolution_m": 0.5,
"season": ""
}
],
"nhm_last_flight_date": "2022-11-20",
"nhm_snow_season_flights": [
"Hardanger 10pkt 2022 Del5"
],
"nhm_laser_fill_fraction_by_cell": {
"E38500-N6656500": 0.00076,
"E38500-N6657000": 0.000332
},
"nhm_retrieved_at": "2026-10-03T19:49:58Z",
"nhm_note": "laser projects overlapping the route's cells; the mosaic draws on them by its own priority and which project supplied which pixel is not recorded",
"climb_origin": "named-pass",
"named_pass": "Ekkjeskaret",
"seam_filled_samples": {
"count": 0,
"distances_m": []
},
"seam_filled_in_maximum": false,
"structure_own_ways": 5,
"tunnel_check": "osm tunnel=* ways on 5 own way(s)",
"tunnel_ranges_m": [],
"underground_fraction": 0.0,
"structure_mask_ranges_m": [
[
2973.0,
2981.4
],
[
5827.7,
5833.5
],
[
0.0,
15.0
]
],
"mask_basin_extension_m": 3.0,
"carriageway": {
"stations": 263,
"stations_resolved": 263,
"width_median_m": 5.25,
"width_p10_m": 4.0,
"width_min_m": 1.75,
"width_max_m": 12.0,
"bounded_share": 0.407,
"unbounded_share": 0.593,
"confidence_median": 0.0,
"width_median_bounded_m": 5.0,
"window_m": [
4189.0,
4214.0
],
"width_at_max25_m": 4.0,
"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": 263,
"stations_resolved": 263,
"width_median_m": 7.5,
"width_p10_m": 4.75,
"width_min_m": 1.0,
"width_max_m": 12.0,
"bounded_share": 0.726,
"unbounded_share": 0.274,
"confidence_median": 1.0,
"width_median_bounded_m": 7.0,
"window_m": [
4189.0,
4214.0
],
"width_at_max25_m": 7.25,
"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
}
},
"license": "ODbL-1.0",
"license_url": "https://howsteep.org/licensing"
}