description | tags |
---|---|
notepad for the DPWH-RBI dataset mapping challenge |
gov.ph, challenge, draft |
==THIS IS A DRAFT. New content will be moved to the OSM-PH repo, because of new hackmd limitations. Final content will be moved to OSM wiki on project commencement.==
Mapping DPWH bridges on national highways, and conflating attributes and other inferrable data from the DPWH Road & Bridges Inventory (RBI).
[toc]
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.
- improve highway networks and add/review 8,546 bridges, including adding load limit restrictions (i.e. OSM's
max_weight
) for the highway. - add/supplement highway names. dataset includes highway name (i.e. value for
nat_name
, orname
tags, if missing) - improved search results. bridges are local landmarks, and serve as practical proxies for (unmapped) settlements or waterways in the vicinity of the bridge.
- add route number (i.e. OSM's
ref
, if missing) for the highway. - address QA issues, in the course of editing OSM.
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 max_weight key |
Maximum physical load limit. | |
HT_OVER | ? | max_height:physical ? | ||
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 |
-
The current LoCo bridge naming convention is to add the
bridge:name
to the highway name, with exceptions for "historical landmarks" -
==Proposal:== Amend LoCo convention on mapping bridges, to always retain the highway's name, and move all bridge-related values (including the bridge name) to the
man_made=bridge
element outline itself. Usebridge:name=*
if there's no man_made=bridge.:::danger Using both
bridge:name
andman_made=bridge
+name
will return duplicate search results of the same bridge.
-
==Further clarify how "JCT" is used in DPWH highway names==
-
DPWH = "Jct Tablang-Gabaldon Road"
-
OpenStreetMap tagging
nat_name
(andname
, if absent) = "Tablang-Gabaldon Road", without "Jct"- "Jct" for junction, refer to branches of the major regional highway
-
Why not use
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.
- It's been observed that some contributors drop the "City" in highway names (e.g. "Ozamis-Oroquieta Road")
- should we then use
nat_name=Ozamis City-Oroquieta City Road
since this is how the dataset calls the highway, and store the normalized string asname=Ozamis-Oroquieta Road
?
- should we then use
- Normalizing DPWH's "Daang Maharlika (LZ)", "Daang Maharlika (MN)", etc
nat_name = Daang Maharlika
name:en = Maharlika Highway
name:tl = Daang Maharlika
official_name = Daang Maharlika Highway
old_name= Pan-Philippine Highway
- sometimes the parenthesis containers other information, (i.e. bridge structure) or some descriptive text
- example: "Amper Bridge (truss)"
- properly tagged as
name=Amper Bridge
bridge:structure=truss
Following OSM conventions, abbreviations will be spelled out:
- "Sn." - San
- "Sta." - Santa
- "Sto." - Santo
- "Gen." - General
- "Gov." - Governor
- ...
Example: "Santo Borys Bridge V"
Possible object name in OSM:
- "Santo Borys Bridge Ⅴ" (the correct unicode character)
- "Santo Borys Bridge № 5" (search friendly)
- "Santo Borys Bridge 5th" (search friendly)
- "Santo Borys Bridge V" (sic, the letter "V")
Recommendation: practical to display/search using name with arabic numbers, then use name with roman numeral in alt_name. Example:
man_made=bridge
+name=Santo Borys Bridge 5th
+alt_name=Santo Borys Bridge Ⅴ
- Already conventional.
- Values from DPWH
national_primary_road
,national_secondary_road
,national_tertiary_road
- Potential other values:
provincial_road
, orprovincial_*_road
, ormunicipal_road
ormunicipal_*_road
where '*' represent 'primary', 'secondary', or 'tertiary', if known or appropriate
Noted by Maning (i.e. Nangka Bridge between Marikina and San Mateo, IDs: B02865LZ
, B01341LZ
)
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.
max_weight
values are not consistently available. Check street-level imagery (e.g. Mapillary, KartaView, or other OSM-compatible sources) for readable values- Ortographic/Typographic errors on names. Names (of bridge, highway) don't exactly meet expected ortography (i.e. painted on bridges), e.g. Sucat Bridge vs Sukat Bridge.
- inconsistency of extrapolated bridge
lanes
values when used to setlanes
for connected highway. For example, a bridge is built for 4 lanes, but highway only uses 2.
- Is the permission letter from DPWH sufficient in form and substance to make the dataset compatible with OSM?
- Confirm: it's possible to infer an appropriate value for
bridge:structure
andbased on the fields:bridge:support
NUM_ABUTT, NUM_PIER, NUM_SPANBR_TYPE1. - According to the Wiki, it's acceptable to combine place values in
is_in
. In this challenge, is it okay with the LoCo for us to use (cleaned-up) BRGY + MUN values then? - Is there a more suitable option than MapRoulette for hosting this challenge?
- To complete sub-national bridges, do we have region- or province-level LGU contacts to request a similar dataset for their geographic area?
- Is there any risk of data quality degradation of current OSM data? If so, how can they be mitigated?
- For a road name like "Mindoro Oriental/Occidental East Coastal Rd” is this two road names? I.e. Mindoro Oriental Road & Occidental East Coastal Road?
It looks like a road named after two provinces, probably close to their boundaries. Will look into this closely. [name=erwin]
- Looks like there may be some proposed expressways in the dataset. We’ll want to be careful how that information is added or if its added quite yet.
I didn't see this in the dataset. Will check again [name=erwin]
- Also, if bridge name is added, we’ll want to make sure it’s going in the unique bridge name tag. Its not a super common tag so I'm not sure if you are aware of it or not. (https://wiki.openstreetmap.org/wiki/Key:bridge#Naming)
That wiki page/section doesn't mention any requirement for bridge names having to be "unique", or did I misunderstand the q? [name=erwin]
- Vince: This mapping project seems to require a lot of work.
We should have a demo/workflow of how to map and tag the objects to be affected by this. [name=erwin]
- Timmy: Apart from osm.org, what other data consumers support man_made=bridge?
- start page to document apps/data consumers that support man_made=bridge.
during meeting, we quickly verified that Osmand and Organic Maps supports rendering and search for objects tagged with
man_made=bridge
. More tests here. [name=erwin]
- start page to document apps/data consumers that support man_made=bridge.
- on changing bridge mapping convention and exceptions
- Rally: historical bridge exception. keep a list, could be reviewed again after mapping effort
- Timmy: where bridge connects highways with different names, the highway name should take the bridge name
- Rally: the name on man_made=bridge outline can take the DPWH name, but name variants (e.g., loc_name, reg_name, etc) can still be used in the future (i.e. renamed by local authorities)
- What if current bridge name doesn't match/disimilar to DPWH name?
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? [name=erwin]
- RBI lane count is probably outdated versus what's already OSM
- Rally: is there AI to determine whether number of indicated lanes are feasible based on road width?
- On object names:
- maybe nat_name should be as-is from DPWH, and the common name will be clean strings?
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 unlikely. [name=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 [name=erwin]
- To minimize potential data degradation,
nat_name
is being recommended, so mappers don't inadvertently overwrite existingname
tags added by local mappers. The value will only be copied IFname
key is empty. - Example. DPWH: "Dumaguete North Rd (Jct Bais-Kabankalan-Negros Occ Bdry)"
- name=Dumaguete North Road
- nat_name?
- Jct Bais-Kabankalan-Negros Occ Bdry
- Junction Bais-Kabankalan-Negros Occidental Boundary
- Junction Bais-Kabankalan-Negros Occidental Boundary Road
- Dumaguete North Road (Junction Bais-Kabankalan-Negros Occidental Boundary)
- reg_name?
- Bais-Kabankalan-Negros Occidental Boundary Road?
- Example. DPWH: "Ozamis City-Oroquieta City Road"
name
?- Ozamis-Oroquieta Road
nat_name
?- Ozamis City-Oroquieta City Road
- Timmy: we should not duplicate the values for name keys (e.g. name has the same value as nat_name, official_name, etc).
- Erwin: Redundant information doesn't improve value to OSM. Why should
nat_name
be kept as-is to directly correspond with RBI dataset?
- ==This topic should be brought to, and widely discussed with, the OSM community==
- maybe nat_name should be as-is from DPWH, and the common name will be clean strings?
- Inferring
bridge:structure
per Timmy:- if BR_TYPE1=concrete ∴
bridge:structure=beam
- if BR_TYPE1=Steel ∴
bridge:structure=truss
- Is there a civil engineer we can ask to confirm this?
- if BR_TYPE1=concrete ∴
- Using
is_in
on bridges- Rally: what if bridge is located with border disputes, or between admin boundaries?
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
[name=erwin]
- Rally: what if bridge is located with border disputes, or between admin boundaries?