CityofToronto / bdit_volumes

Traffic Volumes Modelling Project
7 stars 6 forks source link

Quality Control on Arterycode matching #5

Closed jwrcoleman closed 7 years ago

jwrcoleman commented 7 years ago

Checks on Segment Matching (e.g. ATR counts)

Case 1 (geography exists in FLOW, matches a centreline segment by fnode tnode pair)

Case 2 (geography exists in FLOW, does not match any centreline segments by node id pair - distance matched)

Case 3 (only one node geocode exists in FLOW, matches with centreline intersection )

Case 4 (only one node geocode exists in FLOW, distance matched constrained by segment azimuth )

Case 5 (no geography in arterycode, streetname & address matched)

Checks on Node Matching (Turning Movement Counts)

Case 6 (point geography exists in FLOW and matches the nodes in centreline)

Case 7 (point geography exists in FLOW, does not match any centreline nodes, snapped onto a centreline node by spatial proximity)

Case 8 (point geography exists in FLOW, does not match any centreline nodes, no centreline nodes within 30m)

sunnyqywang commented 7 years ago

Observation (Case 2): matched 2410 records, manually checked largest 100 distances. most errors result from 1. segment is outside of tcl boundary (i.e. anything that is 'N OF STEELES') 2. length of tcl segment and arterycode segment differs too much (made some judgment calls and left some question marks that need to be revisited later) 3. curving of the road segments mess up the direction comparison 4. geometry does not exist in tcl 5. highways have a directional representation in tcl, need to check up on highways in the end.

sunnyqywang commented 7 years ago

Progress: Manually corrected segments related to midblock tcs and records matched by street name and number.

sunnyqywang commented 7 years ago

Observation (Case 3): about half of the records (total 296) matched are at <4 legged intersections. All correct matches for >4 legs in 10m buffer (not necessarily >4 legged intersections, could be a very small segment so the buffer reaches the next intersection). A very accurate case. Spot-checking is done for <4 legs.

sunnyqywang commented 7 years ago

Observation (Midblock TCS): it's hard to tell what segment of the street the code is referring to in some situations (marked in the xlsx file). for example, 'WESTON RD N/B S OF MIDBLOCK TCS - (PX 1804)'

jwrcoleman commented 7 years ago

You can find the location of all traffic signals (PX codes) with lat/long here: http://www1.toronto.ca/wps/portal/contentonly?vgnextoid=965b868b5535b210VgnVCM1000003dd60f89RCRD&vgnextchannel=7807e03bb8d1e310VgnVCM10000071d60f89RCRD

sunnyqywang commented 7 years ago

Update Midblock TCS: updated information for TCS with PX codes

sunnyqywang commented 7 years ago

Observation after checking both hausdorff and centroid distances: case 2 is not a good matching method because of the difference in length of the tcl and arterycode segments. Error rate is higher than desired. Will consider revise algorithm completely after evaluating point snapping accuracy in turning movement counts.

sunnyqywang commented 7 years ago

string match street names done for case 2 3 4 in total checked 299 records. string match case 1 would add ~1000 more records to look at. Spot checked a few among the ~1000. The accuracy is good even for highway ramps. Made the decision to skip the rest.

aharpalaniTO commented 7 years ago

Added some further checks under Case 6 to identify possibly abnormal intersections. Will quickly check myself.

aharpalaniTO commented 7 years ago

Have come across a number of instances under Case 1 where the artery code description doesn't appear to be aligned with tagged centreline. It appears as if the root issue is in FLOW itself, where the from/to nodes correspond to a segment on the wrong leg of the intersection. These are likely not picked up by the fuzzy match check since the intersection is the same (i.e. Artery 1028 - MAIN ST N/B S OF HAMSTEAD AVE is tagged to Hamstead, W of Main).

sunnyqywang commented 7 years ago

The reason why fuzzy street name match did not pick up the wrong street names in case 1 is that case 1 wasn't checked by street name match. Details are in my last comment.

aharpalaniTO commented 7 years ago

Can we run a street name match using the first word of the Artery Code description vs. centreline.linear_name, excluding ramps, etc. (using centreline.feature_code_desc)? If those return a manageable amount of records, it might be easy to spot check a few.

sunnyqywang commented 7 years ago

street name match done for case 1 when ramps and expressways are taken out. looked at 105 records.