Import/Maine E911 Roads
This is a draft |
See also:
Goal
Improve Routing in Maine.
- Add missing roads
- Fix details of existing roads (geometry, names, class, surface)
- Verify route relations, ref tags
- This will not fix one-way tags, I can't find useful data.
Status
Planning, seeking collaborators and consensus.
Data Sources
Primary Data Source: Road Details and Geometry
- Maine Data Catalog
- Maine Roads - NG911 select the green rectangle for a shape file
- I have verified that the license is compatible with OSM
- Islands are included as "roads"
- Has the following interesting fields:
SPEED is too unreliable to useONEWAY is too unreliable to use- PREDIR, STREETNAME, POSTDIR, SUFFIX =>
name
- Has no punctuation, sometimes conflicts with street signs, abbreviations need expanding.
- RDCLASS
RDCLASS=Vehicular Trail
=>highway=road
RDCLASS=Service
=>highway=service
RDCLASS=Alley
=>highway=alley
RDCLASS=Crossover
=>highway=service
,access=private
,emergency=designated
RDCLASS=Trail
=>highway=track
RDCLASS=Private
=>highway=?
,ownership=private
RDCLASS=Gated
=>highway=service
,access=private
RDCLASS=Local
=>highway=?
RDCLASS=Secondary
=>highway=?
RDCLASS=Ramp
=>highway=?_link
RDCLASS=Primary
=>highway=?
RDCLASS=Walkway
,RDCLASS=Paper Street
,RDCLASS=Other
Exclude these, they are islands or planned streets.
- ROUTE_NUM (sample values: "", "0", "100A", "11/100/139", "Route 1") There's no indication if there are ME or US?
- RDNAME used as a foreign key to in
MEDOT Public Roads
.strtname
- MEDOT Public Roads
- Contains only public roads (a subset of E911)
- Has the following interesting fields
- strtname (as a foreign key to RDNAME in E911)
- num_lanes
- surfc_type (Flexible, Unimproved, Gravel, Other, High rigid, Water, Port cement comp)
- speed_lim (This seems more accurate?)
- speedsrc (Posted, Unposted)
- faadt (daily traffic)
- capacity (hourly design capacity)
- fedfunccls (Interstate, Local, Major Collector, Minor Arterial, Minor Collector, Other Freeway or Expressway, Other Principal Arterial)
- Maine Roads - NG911 select the green rectangle for a shape file
Secondary Data Sources: Alignment
- Strava Heatmap
- Bing Satellite Imagery
- Bing & Mapillary Street Side imagery
Translation
Open in JOSM, convert .shp to .osm, use this script with this tool to perform these changes:
Click on BOLD tags to see exact translation.
- RDCLASS ᐅ highway=*, service=*, access=*, ownership=*, emergency=*
- highway=residential may be secondary, tertiary, or residential
- highway=road might not be a highway at all
- PREDIR + STREETNAME + SUFFIX + POSTDIR ᐅ name=*
- ONEWAY ᐅ oneway=yes oneway is sometimes missing
- ROUTE_NUM ᐅ ref=*, alt_name=*
- OBJECTID ᐅ Gets stashed in the 'User' metadata field
SPEED + ' mph' ᐅ maxspeed=*speed is unreliable in E911 data, so not included
Then "simplify" and "dissolve" the result.
Act 1: Repair Missing or Misnamed Roads
- Get an OSM extract
- Either from https://osm-internal.download.geofabrik.de/north-america/us/maine.html (daily)
- Or https://protomaps.com/extracts (minutely)
- Use OSM pipeline to Create a file of "missing" public roads.
- Should I include private roads too? Clearly public roads are more important
- Find all E911 Road Nodes which don't have any similarly named OSM Road Nodes near them.
- Slice it into manageable pieces with upload=never
- Distribute the missing roads file somehow? The whole file really isn't that big. But how do you keep multiple mappers from stepping on toes?
- Use Task Manager (somehow?) to coordinate mappers?
- Manual review with JOSM, maybe with a session file?
- OSM Maine snapshot?
- Translated E911_Maine_Roads
- OSMInspector Address validation
- Strava Layer (for geometry)
- Bing Imagery
- Commits will include specific tags, and messages? A link to this site?
- Using these changeset tags
osm_wiki_documentation_page=https://wiki.openstreetmap.org/wiki/Import/Maine_E911_Addresses
source=Maine_E911_Addresses_Roads_PSAP
Act 2: Fix Geometry and details of existing roads
Could suggest a highway tag based on context: straightness, length, connectivity, Ref tags, membership in a relation, Highlight extreme differences
Find another source for speed limits? (E911 isn't accurate)
Highlight one-way differences between the data source and OSM
Remove these Tiger tags
- name_* (should become alt_name)
- tiger:county
- tiger:name_base*
- tiger:name_type
- tiger:zip_left*
- tiger:zip_right*
- tiger:reviewed
- tiger:source
- tiger:upload_uuid
- tiger:cfcc
- tiger:separated
- source
- created_by
- oneway=yes
Maybe keep these tags:
- tiger:tlid (for reference?)
Act 3: Repair Routes
Relations and ref tags
This has official names of ME routes: https://en.wikipedia.org/wiki/Module:Road_data/strings/USA/ME https://en.wikipedia.org/wiki/List_of_United_States_Numbered_Highways
https://en.wikipedia.org/wiki/List_of_state_routes_in_Maine
Route relations should have wikidata or wikipedia tags.
Route relations should have a network tag.
Act 4: Validation
- All highway={motorway, trunk, primary, secondary, tertiary, residential} should have a name= or noname=, or should be changed to a service road
- There shouldn't be any severe jumps between connected highway types. (No Motorway should touch a residential road)
Data sources
- As a result of the address import, it is easy to find roads with missing names or wrong names usig GeoFabrik's Address validation layer.
- In iD: go to Background Settings -> Custom -> https://tools.geofabrik.de/osmi/tiles/addresses/{zoom}/{x}/{y}.png
- There is street level view from Bing maps
- In iD: go to Map Data -> Photo Overlays -> Bing Streetside.
- There is a tools that highlights missing road names http://qa.poole.ch/#
- In iD: go to Background Settings -> Custom -> https://tile2.poole.ch/noname/{zoom}/{x}/{y}.png
- Maine has an E911 road layer GIS data (Warning, road names are missing punctuation)
- In iD: use this iD fork. But it would need for the schema to be translated.
- There is also recent Tiger data available.
- In iD: go to Background Settings -> Overlays -> TIGER Roads 2019 (or most recent)
Possible Collaborators
Please add your username to this list if you want to plan, implement, or validate this project.
- blackboxlogic
- tmerc58
- Alan Bragg
- vorpalblade
- aweech
- ZeLonewolf (maybe just municipal boundaries)
- pokey
- St Pauls
- emulsi
- mtc
Questions that need to be answered
What should happen to tiger:reviewed=no tags? Is Maine's data source enough to claim that it is reviewed.
How to slice Maine into manageable chunks? I've set up taskmanager for Franklin County. "Draft" is at https://tasks.openstreetmap.us/admin/edit-project/208
Who is going to be doing work?
Which roads should get noname tags?
Should I generate josm session files? What should they have in them? Should I include subject data, or will it get stale?
Should I trust max_speed? NO. Not from E911. Maybe from MEDOT? Should I include source:maxspeed?
Should alt_names be "Route 302" or "State Route 302" or "Maine State Route 302"? Should it be "US Route 1", or "U.S. Route 1"? "Route 1A" or "Route 1 Bypass"?
There are some "roads" that are lakes, there are some "roads" that are islands
Do people have github accounts? Could that: Track issues, track progress, distribute files.
What to do when there is a naming conflict between osm and E911 data