Hong Kong Road Gradient Report

Official road centrelines × DTM 5 m · 100 m segments · directional gradient distribution

Summary

4,448 kmDirectional road length (two-way counted twice)
1.6%Median |gradient|
22.92%above 5% (1,020 km)
8.51%above 10% (379 km)
75,974 mCumulative ascent (directional)

This report uses the Transport Department's official Road Network (2nd Generation) centrelines with the Lands Department 5 m DTM, splitting every road into 100 m segments and computing longitudinal gradients, counted per travel direction (two-way roads once in each direction). All work is in Hong Kong 1980 Grid (EPSG:2326).

Last updated: 2026-09-14 · Road data revision cut-off: 2026-08-27 (Transport Department)

1. Data

LayerSource
Road centrelines (primary)Transport Department Road Network (2nd Generation)CENTERLINE layer, 36,471 features (FGDB). Revision cut-off 2026-08-27
Travel directionTRAVEL_DIRECTION: 1 = both directions; 3 = only in the digitised direction (one-way); 2 = only against it; 4 = not permitted (per TD rdnet_dataspec.pdf)
ElevationLands Department DTM 5 m (12,751 × 9,601 cells, ~302 MB)
CRSHong Kong 1980 Grid (EPSG:2326) — the road data is already in this CRS, so no datum transformation is needed
ValidationTai Mo Shan 958 m, Lantau Peak 933 m, Victoria Peak 552 m — matches official heights
Cross-check datasetOpenStreetMap Hong Kong (Geofabrik), also processed at 100 m segments

Tunnel handling (important)

The DTM only represents the ground surface, so no valid elevation exists for road inside a tunnel (sampling returns the mountain above it, producing bogus gradients). All in-tunnel segments are therefore removed. Only 277 features in the official data are named "…Tunnel" (e.g. Aberdeen Tunnel, Cross-Harbour Tunnel); Tai Lam Tunnel, Eagle's Nest Tunnel, Lung Shan Tunnel, Tseung Kwan O–Lam Tin Tunnel and Nam Wan Tunnel are stored under the connecting road's name, so a name filter cannot find them.

Solution: extract all 3,808 road tunnel geometries from OpenStreetMap (tunnel=yes, railway tunnels excluded), reproject to EPSG:2326, buffer by 15 m, and drop any segment whose midpoint falls inside the mask — 252 km removed, matching OSM's 255.9 km of tunnelled road (a 30 m buffer would have wrongly removed ~125 km of surface roads beside tunnels).

After this step, zero segments remain inside tunnels.

2. Method

2.1 Segmentation and sampling

Each centreline is resampled into 100 m segments (51,498 in total). Elevations at both ends are read from the DTM by bilinear interpolation; gradient = Δelevation ÷ horizontal length × 100%. The long baseline greatly reduces the effect of the DTM's ±5 m vertical accuracy.

To avoid dropping short links, any road or connector shorter than 100 m is kept as a single segment (minimum 10 m), and each road's tail is retained. Total line length is therefore 3,451 km — about 93% of the official network (~3,887 km); strict truncation would cut coverage to roughly 58%.

2.2 Directional counting (two-way counted twice)

Line length 3,451 km becomes 4,448 km directional. The distribution is symmetric (p05 = -10.13%, p95 = 10.07%), confirming the treatment.

2.3 Smoothing and binning

DTM sampled after 25 m NaN-aware box smoothing. Bins are 1% wide, centred on whole percentages (0 = −0.5% to +0.5%); values beyond ±10% are pooled into the two overflow bins.

2.4 Tooling

No QGIS package exists for this ARM64 host, so the GDAL Python stack is used (pyogrio, rasterio, scipy, pyproj) — the same GDAL algorithms QGIS uses internally.

3. Results

3.1 Territory-wide gradient map

Red = uphill, blue = downhill. Two-way roads are coloured by their uphill (positive) gradient; one-way roads keep the sign of the legal direction of travel. Basemap: hillshade of the Lands Department 5 m DTM; water and coastline from OpenStreetMap.

Hong Kong road gradient map (signed)

Download high-resolution version (3000 × 2100 PNG)

3.2 Absolute steepness version (colour scale 0–10%)

Hong Kong road gradient map (absolute, 0–10%)

Download high-resolution version (3000 × 2100 PNG)

3.3 Signed gradient distribution (100 m segments)

Hong Kong signed road gradient distribution (100 m segments)

3.4 Full bin table

Gradient binDirectional length (km)Share
< -10%170.43.83%
-1039.50.89%
-943.40.97%
-855.11.24%
-765.21.47%
-683.51.88%
-5103.72.33%
-4125.92.83%
-3167.83.77%
-2259.45.83%
-1492.911.08%
01,234.627.75%
+1501.411.27%
+2252.35.67%
+3170.63.83%
+4119.42.68%
+599.22.23%
+687.71.97%
+768.71.54%
+854.31.22%
+943.40.98%
+1039.50.89%
> +10%170.33.83%

Negative = downhill, positive = uphill; x labels are bin centres in whole percent.

3.5 Cross-check: official vs OpenStreetMap (both 100 m)

MetricOfficial (Transport Dept)OpenStreetMap
Directional samples66,65362,240
Directional km4,4485,867
Median |grade|1.60%1.41%
p754.82%4.92%
p9010.10%10.53%
p9514.55%14.58%
p9929.29%23.71%
|坡道| > 5%22.92% (1,020 km)23.85%
|坡道| > 10%8.51% (379 km)10.23%
尾部 < −10% / > +10%3.83% / 3.83%4.71% / 4.69%

Two independent road datasets give close results (medians differ by 0.14 percentage points), indicating the findings are robust.

3.6 Exceedance

ThresholdShareLength (km)
|坡道| > 1%58.71%2,612
|坡道| > 2%43.35%1,928
|坡道| > 3%34.16%1,519
|坡道| > 4%27.80%1,237
|坡道| > 5%22.92%1,020
|坡道| > 6%18.60%827
|坡道| > 7%15.19%676
|坡道| > 8%12.51%556
|坡道| > 9%10.39%462
|坡道| > 10%8.51%379

3.7 Steepest roads (official names)

Road (official name)Directional kmMedian |grade|p90
WAN CHAI GAP ROAD1.9924.00%36.91%
CHUN FAI ROAD0.5820.16%28.46%
GLENEALY0.8619.92%43.45%
YAU ON STREET0.5518.39%25.39%
EASTERN STREET0.6516.62%29.76%
TONG BIN LANE0.5116.45%22.42%
POKFIELD ROAD0.7116.12%20.86%
SHA TIN HEIGHTS ROAD0.5015.48%30.40%
CONSORT RISE0.5115.45%23.04%
LEE CHI ROAD0.5115.28%21.14%
SCENIC VILLA DRIVE0.5815.22%19.65%
LOK MAN ROAD0.5814.74%42.13%
BLUFF PATH0.5914.09%19.81%
PAK SHEK TOI ROAD0.5413.98%20.20%
TAI MO SHAN ROAD1.0213.55%16.70%
SHEUNG SZE WAN ROAD1.5013.46%15.03%
KAI YUEN STREET0.5513.18%34.59%
PAK LOK PATH0.7212.93%16.26%
HONG KIN ROAD2.6912.68%28.03%
BELLEVIEW DRIVE0.9512.59%21.44%

4. By road class (OSM supplement — the official data has no class field)

Gradient by road class
Road class (OSM)Directional kmMedian |grade|p90>5%>10%
motorway245.00.95%4.36%8.1%2.0%
trunk69.21.68%6.77%19.1%2.2%
primary188.71.21%6.40%16.3%3.3%
secondary544.41.76%9.73%26.1%9.0%
tertiary489.61.48%8.74%24.7%7.1%
residential690.11.81%11.19%28.0%11.7%
unclassified1,060.91.73%11.16%27.1%11.9%
service2,452.61.15%11.63%23.1%11.8%
motorway_link76.62.08%7.39%20.6%5.3%
primary_link22.81.38%6.81%14.9%3.6%
trunk_link22.02.70%9.00%23.8%7.8%

5. Reference: road speed limit map

For reference, the map below shows the statutory signed speed limits from the Transport Department's Road Network (2nd Generation) SPEED_LIMIT layer:

Hong Kong road speed limit map

Download high-resolution version (3000 × 2100 PNG)

Speed limitSectionsLength (km)Notes
30 km/h30334.5school zones, pedestrian areas, private roads
70 km/h2,204337.5main urban distributor roads
80 km/h1,288340.9major New Territories roads, expressways
100 km/h465120.1expressways (e.g. Tolo Highway)
110 km/h7827.1highest-limit sections, e.g. North Lantau Highway
50 km/hroads without a sign (statutory default)

Speed limits reflect the 2026-08-27 revision and include in-tunnel sections (speed limits are statutory and apply inside tunnels too — unlike the gradient analysis, which must exclude them). Limits can change under temporary traffic arrangements.

6. Limitations

7. Reproducibility

Questions, or want a specific street or district analysed? Contact us.