Automated edits/gogorm
Change Speed Limit from 50km/h to 30km/h on Residential Public Roads within Dún Laoghaire-Rathdown, Dublin, Ireland
Update: the edit has been made - https://www.openstreetmap.org/changeset/168644658
Who is Making the Change?
I am, using my OSM account gogorm.
You can contact me by private message on OSM.
Motivation
In November 2024, new bye-laws[1] came into effect in Dún Laoghaire-Rathdown (DLR), one of the four local council areas in Dublin, Ireland.
One impact of these bye-laws is that a huge quantity of roads which previously had a speed limit of 50km/h, now have a speed limit of 30km/h.
This means there are now a lot of roads in OSM that have an outdated speed limit within the DLR area.
The bye-laws[1] define and apply the 30km/h speed limit in a logical and consistent manner, which makes it easy to update most of the affected roads using a systematic approach as described below.
What is the Change?
Scope
This change will be limited to the administrative boundary of Dún Laoghaire-Rathdown County Council.
In summary, the following objects are affected:
- Ways with
highway=residentialANDmaxspeed=50AND withoutaccess=*
The full criteria are defined in an Overpass Turbo query (shown further down this page).
At the time of writing, there are ~2500 objects to be changed.
Tags to be modified
Replace maxspeed=50 with maxspeed=30.
Remove maxspeed:type=*. At the time of writing, there is 1 affected road (comprising 2 Ways) containing this tag.
How will this change be made?
The output of the Overpass Turbo query will be fed into an editor such as JOSM, and the tags will be modified there.
This will be a one-time change.
Consultation
OpenStreetMap Ireland Telegram group
OpenStreetMap Community Forum - https://community.openstreetmap.org/t/proposed-bulk-edit-50km-h-to-30km-h-in-dun-laoghaire-rathdown/131739
Overpass Turbo Query
This query identifies the objects to be changed (~2500 objects at time of writing):
// @name DLR_missing_30kmh_roads
[out:xml][timeout:25];
/*
What:
Find roads that probably have a 30 km/h speed limit,
but aren't currently mapped as such.
Why:
To help with mapping the 30km/h zone as per
DLR CoCo Road Traffic Special Speed Limit Bye-Laws, 2024
*/
// Define the area where the 30km/h zone applies
area
["name"="Dún Laoghaire-Rathdown"]
["boundary"="administrative"]
["admin_level"="7"]
->.dlr_county;
/*
The bye-laws make exceptions for basically any residential road that hasn't been subsumed into South Dublin's suburban monolith.
So we define also a "rural" area. These townlands together form that area, conveniently.
*/
relation
(id: // filtering on id because name is not always unique here
2222985, // Tiknock
1297904, // Barnacullia
1299608, // Ballyedmonduff
4590432, // Newtown
4590657, // Kiltiernan
4590559, // Ballybetagh
1299713, // Glencullen
3666458, // Brockey
3666459, // Glencullen Mountain
4202774, // Boranaraltry
1309699, // Ballybrack
4142995, // Glendoo
4554456 // Stackstown
)->.rural_townlands;
.rural_townlands;
map_to_area->.rural;
// Find the roads that should be 30km/h
(way
// vast majority of residential roads are now 30km/h, and
// vast majority of non-residential roads are not 30km/h
["highway"="residential"]
// vast majority of 50km/h residential roads changed to 30 km/h, and
// vast majority of non-50km/h residential roads didn't change to 30km/h
["maxspeed"=50]
// only public roads
[!"access"]
// Excluding unwanted matches identified through manual inspection of the maps accompanying the Bye-laws
["name"!="Bishop's Lane"]
["name"!="Stillorgan Road"]
["name"!="Druid's Glen Road"]
["name"!="South Hill Avenue"]
["name"!="Elton Park"]
["name"!="Albert Road Lower"]
["name"!="Albert Road"]
["name"!="Silchester Road"]
["name"!="Churchview Road"]
["name"!="Ardbrugh Road"]
["name"!="Cunningham Road"]
["name"!="Saval Park Road"]
["name"!="St Catherine's Road"]
["name"!="Station Road"]
["name"!="Hyde Road"]
["name"!="Hyde Park"]
["name"!="Ardeevin Road"]
["name"!="Knocknacree Road"]
(area.dlr_county);
// Subtract the "rural" area matches from the results
-way
["highway"="residential"]
["maxspeed"=50]
[!"access"]
(area.rural);
)->.limits_to_be_modified;
// Output the results
(.limits_to_be_modified;>;); out meta;