**THIS IS A DRAFT. New content will be moved to the OSM-PH repo, because of new hackmd limitations for collaborators. Content will be moved to OSM wiki when details are set, or has the consensus of the community. **
Mapping DPWH bridges on national highways, and conflating attributes and other inferrable data from the DPWH Road & Bridges Inventory (RBI).
On 13th January 2022, a Freedom-of-Information request with the Department of Public Works & Highways' Road & Bridges Inventory (RBI) dataset was granted explicit permission for use with OpenStreetMap.
For future reference, the communications with the DPWH is archived and available from the public repo.
maxweight
) for the highway segment of the bridge.nat_name
, or name
tags, designation
, etc.)ref
, if missing) for the highway.Fields | Usable? | man_made=bridge object | highway=* object | notes |
---|---|---|---|---|
coordinates | ✔ | Will be used to display a map marker for a task, to visualize the location of a bridge, or starting point for a vicinity search. | ||
ISLAND | ||||
REGION | ||||
PROVINCE | ||||
DEO | ✔ | for operator key |
||
CONG_DIST | ||||
ROAD_NAME | ✔ | for nat_name , and/or name key |
Proposal: use nat_name key for the RBI highway name, and to name if it's empty. |
|
LOCATION | ||||
BRIDGE_ID | ✔ | for ref key |
||
BR_NAME | ✔ | for name key |
||
BR_LENGTH | ✔ | for length key |
||
BR_TYPE1 | ✔ | for: material (“reinforced concrete”,“steel”); infer bridge:structure |
DPWH "concrete": OSM "reinforced_concrete"; DPWH "metal" : OSM "steel" | |
BR_TYPE2 | ||||
YR_CONST | ||||
ACTUAL_YR | ✔ | for start_date key |
||
CONDITION | ||||
NUM_ABUTT | ||||
NUM_PIER | ||||
NUM_SPAN | ||||
BR_WIDTH | ✔ | for width key |
||
BR_LIFE | ||||
LOAD_LIMIT | ✔ | for maxweight key |
Maximum physical load limit. | |
HT_OVER | ? | Per Mr. Surot of DPWH Central Office, this is the physical height limit for vehicles using a truss-type bridge, measured from the deck to the height of the truss. This is not necessarily the legal height limit (i.e. max_height ) and thererore should be used only for max_height:physical key. |
||
HT_UNDER | ? | |||
L_SDWALK | ? | infer for sidewalk:both ? |
||
R_SDWALK | ? | infer for sidewalk:both ? |
||
NUM_LANES | ? | maybe used for lanes key |
Warning: OSM may already have better data | |
BNR | ||||
CROSSING | use info to describe the task, assist for hard-to-see mapper | |||
BRGY | ✔ | combine with MUN and add to: is_in |
||
MUN | ✔ | combine with BRGY and add to: is_in |
||
REMARKS | ✕ | |||
created_user | ✕ | |||
created_date | ✕ | |||
last_edited_user | ✕ | |||
last_edited_date | ✕ | |||
ROAD_SEC_CLASS | ✔ | infer for designation key |
||
SEC_ID | ✕ | |||
SEC_LENGTH | ✕ | |||
ROUTE_NO | ✔ | for ref key |
||
MaxBRHT | ? | max_height:physical ? | ||
MaxPierHT | ||||
COMMENTS | ✕ | |||
n/a | source=DPWH-RBI |
source=DPWH-RBI |
add or append "DPWH-RBI" as source | |
n/a | overtaking=no |
highways on bridges are never overtaking zones |
bridge:name
to the highway name, with exceptions for "historical landmarks"man_made=bridge
, then add all bridge-related properties to that element. The highway on the bridge will use the name of the connected highways, except when the connected highways have different names AND the boundary between the differently named streets are unknown, thus highway adopts the bridge name. For simple bridge mapping, or very small bridges, add bridge:name
to the highway.
Do not use bridge:name
together wtih man_made=bridge
+ name
, or it will return duplicate search results of the same bridge.
highway=* | man_made=bridge |
---|---|
name | name |
official_name | loc_name |
bridge=cantilever | |
width | |
length | |
… | … |
nat_name
(and name
, if absent) = "Tablang-Gabaldon Road", without "Jct"official_name
for name values? DPWH does not the have the mandate for naming highways. Local Governments have naming rights (which makes them official) for highway sections falling within their jurisdiction.nat_name=Ozamis City-Oroquieta City Road
since this is how the dataset calls the highway, and store the normalized string as name=Ozamis-Oroquieta Road
?nat_name = Daang Maharlika
name:en = Maharlika Highway
name:tl = Daang Maharlika
official_name = Daang Maharlika Highway
old_name= Pan-Philippine Highway
name=Amper Bridge
bridge:structure=truss
Following OSM conventions, abbreviations will be spelled out:
Example: "Santo Borys Bridge V"
Possible object name in OSM:
Recommendation: practical to display/search using name with arabic numbers, then use name with roman numeral in alt_name. Example: object +
name=Santo Borys Bridge 5th
+alt_name=Santo Borys Bridge Ⅴ
designation
keynational_primary_road
, national_secondary_road
, national_tertiary_road
provincial_road
, or provincial_*_road
, or municipal_road
or municipal_*_road
where '*' represent 'primary', 'secondary', or 'tertiary', if known or appropriateNoted by Maning (i.e. Nangka Bridge between Marikina and San Mateo, IDs: B02865LZ
, B01341LZ
)
According to DPWH data
B02865LZ
is on a road with section idS01622LZ.
While bridgeB01341LZ
is on a road section idS03872LZ
.
- Available Mapillary imagery shows the bridge having a 15t weight limit, 45m lenth, which matches the DPWH attributes for
B02865LZ
. There are no physical indications of two separate bridges.- A Mapillary image shows a signage stating that you're leaving the "DPWH regional boundary". Do their engineering district boundaries match with official admin boundaries?
- Possible dupes are hard to verify without street-level imagery (for attribute matching), or that the actual bridge is nearby. erwin
Occassionally, a record may specify the bridge type in the name field, in a parenthesis (e.g. bridge B01118MN, "Medina Bridge(Cantilever)").
Tag as: name=Medina Bridge
+ bridge=cantilever
Some bridge locations are indistinct on aerial imagery. Switching aerial imagery might be helpful but it could also mean the bridge is elsewhere (anywhere between several hundred meter, to a few kilometers), or the location is incorrect.
Recommended action: Check the surrounding area for visual clues. OSM-compatible imagery (i.e., Mapillary, KartaView, WikiMedia, etc.) in the vicinity may be helpful, too. Skip, if no identifiable bridge is found.
Example: Bridge B01144MN is reported by DPWH at 8.2984079, 123.8463154 but is actually found at 8.3015902, 123.8466707, about 350m away.
Sometimes, the bridge name already be in OSM as bridge:name
. Move all bridge-related tags man_made=bridge
.
Use CROSSING to describe the bridge, but don't add to OSM.
maxweight
values are not consistently available. Check street-level imagery (e.g. Mapillary, KartaView, or other OSM-compatible sources) for readable valueslanes
values when used to set lanes
for connected highway. For example, a bridge is built for 4 lanes, but highway only uses 2.bridge:structure
bridge:support
is_in
. In this challenge, is it okay with the LoCo for us to use (cleaned-up) BRGY + MUN values then?It looks like a road named after two provinces, probably close to their boundaries. Will look into this closely. erwin
I didn't see this in the dataset. Will check again erwin
That wiki page/section doesn't mention any requirement for bridge names having to be "unique", or did I misunderstand the q? erwin
We should have a demo/workflow of how to map and tag the objects to be affected by this. erwin
during meeting, we quickly verified that Osmand and Organic Maps supports rendering and search for objects tagged with
man_made=bridge
. More tests here. erwin
May be prefixed with
was:
(e.g.was:name=Tulay XYZ
) lifecycyle prefix for easier review in the future, and/or explain with annotation on object? erwin
I don't think we should keep the DPWH string names "as-is", because they won't comform to accepted OSM conventions for naming objects (e.g. abbreviations, known typos, unnecessary technical text etc.). The likelihood of DPWH using this back in their system is very low. erwin Also, if they wish to conflate any name string cleaning we might do, there are many easier ways to do that with various GIS/scripting tools erwin
nat_name
is being recommended, so mappers don't inadvertently overwrite existing name
tags added by local mappers. The value will only be copied IF name
key is empty.name
?
nat_name
?
nat_name
be kept as-is to directly correspond with RBI dataset?bridge:structure
per Timmy:
bridge:structure=beam
bridge:structure=truss
is_in
on bridges
Boundaries are mostly missing in OSM, and we don't have OSM-compatible boundary layers to determine this. The is_in tag can support multiple place names, so it's possible for disputing LGUs add their respective place names while dispute is unresolved. Example. Bgy X and Bgy Y with boundary dispute. Bridge may have:
is_in=Barangay X;Barangay Y;Municipality
erwin
HT_OVER may then be used for
max_height:physical
ergo,bridge:structure
can be determined from this value? However, random testing of dataset doesn't seem to follow this consistently, nor Timmy's earlier assertion on BR_TYPE1. erwin
Glad that Mr. Surot entertains calls and questions, but I quized him whether any dataset documentation is publicly available, and they said none is available from the DPWH website.
erwinImage Not Showing Possible ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Yes. I believe we have informed consent from DPWH. Comms history with DPWH (available from repo) will show that I explained this in detail in my earlier letters. erwin
We should gather more feedback on this. erwin
Implies that using nat_name is okay, to avoid data loss for OSM highways with names. erwin
maxweight
(not max_weight) keyman_made=bridge
object nodes are connected to the highway segment with shared nodes, terminating for the bridge segment.
Elaborate, add examples on challenge orientation docs. erwin
Might be quicker than initially expected. There's only ~1100 unique road names, and 8547 bridges. erwin